imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
Subsystems (2)
PATCH v2 1/1 imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
A little background is probably appropriate for this patch.
Since "the beginning" of usage of the SABRE Lite and Nitrogen6x boards, DVI detection has been somewhat broken.
Some (most) DVI monitors don't produce the "HPD" bit in the PHY_STAT0 register, but do show proper toggling of the RX_SENSE0..3 bits.
Creating a new the bit-mask to include all five bits and modifying the 'hdmidet' command and internal detection routines allows these monitors to function properly in U-Boot.
A related patch to our kernels allows things to work under Linux:
https://github.com/boundarydevices/linux-imx6/commit/7d8752905c118af9063738a533227de0b2f6ecd4
---
Change from v1:
- Use Eric Nelson's description as commit message
arch/arm/imx-common/cmd_hdmidet.c | 3 +-- arch/arm/include/asm/arch-mx6/mxc_hdmi.h | 3 +++ board/boundary/nitrogen6x/nitrogen6x.c | 2 +- board/freescale/mx6qsabrelite/mx6qsabrelite.c | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-)
arch/arm/imx-common/cmd_hdmidet.c +1 -2
@@ -27,8 +27,7 @@static int do_hdmidet (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) {struct hdmi_regs *hdmi = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR ; -u8 reg =readb (&hdmi->phy_stat0) &HDMI_PHY_HPD ; -return (reg&HDMI_PHY_HPD ) ?0 :1 ; +return (readb (&hdmi->phy_stat0) &HDMI_DVI_STAT ) ?0 :1 ; } U_BOOT_CMD(hdmidet, 1, 1, do_hdmidet,
arch/arm/include/asm/arch-mx6/mxc_hdmi.h +3 -0
@@ -896,6 +896,9 @@ enum {HDMI_PHY_HPD =0x02 ,HDMI_PHY_TX_PHY_LOCK =0x01 , +/* Convenience macro RX_SENSE | HPD */ +HDMI_DVI_STAT =0xF2 , +/* PHY_I2CM_SLAVE_ADDR field values */ HDMI_PHY_I2CM_SLAVE_ADDR_PHY_GEN2 =0x69 , HDMI_PHY_I2CM_SLAVE_ADDR_HEAC_PHY = 0x49,
board/boundary/nitrogen6x/nitrogen6x.c +1 -1
@@ -477,7 +477,7 @@ struct display_info_t {static int detect_hdmi (struct display_info_t const *dev) {struct hdmi_regs *hdmi = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR ; -return readb (&hdmi->phy_stat0) &HDMI_PHY_HPD ; +return readb (&hdmi->phy_stat0) &HDMI_DVI_STAT ; }static void enable_hdmi (struct display_info_t const *dev)
board/freescale/mx6qsabrelite/mx6qsabrelite.c +1 -1
@@ -449,7 +449,7 @@ struct display_info_t {static int detect_hdmi (struct display_info_t const *dev) {struct hdmi_regs *hdmi = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR ; -return readb (&hdmi->phy_stat0) &HDMI_PHY_HPD ; +return readb (&hdmi->phy_stat0) &HDMI_DVI_STAT ; }static void enable_hdmi (struct display_info_t const *dev)
Signature · 1 line
1.8.3.2
PATCH v2 1/1 imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
arch/arm/imx-common/cmd_hdmidet.c line 31
Quoted 10 lines · Robert Winkler
arch/arm/imx-common/cmd_hdmidet.c +1
-2@@ -27,8 +27,7 @@static int do_hdmidet (cmd_tbl_t *cmdtp,int flag,int argc,char *const argv[]) {struct hdmi_regs *hdmi = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR ; -u8 reg =readb (&hdmi->phy_stat0) &HDMI_PHY_HPD ; -return (reg&HDMI_PHY_HPD ) ?0 :1 ; +return (readb (&hdmi->phy_stat0) &HDMI_DVI_STAT ) ?0 :1 ; }
Does this depends on other boards to do similar commit in their kernel trees?
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
PATCH v2 1/1 imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
Quoted 14 lines · Otavio Salvador
arch/arm/imx-common/cmd_hdmidet.c line 27
Quoted 4 lines · Robert Winkler
arch/arm/imx-common/cmd_hdmidet.c +0
-0@@ -27,8 +27,7 @@ static int do_hdmidet(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
arch/arm/imx-common/cmd_hdmidet.c line 31
Quoted 6 lines
arch/arm/imx-common/cmd_hdmidet.c +1
-2{struct hdmi_regs *hdmi = (struct hdmi_regs *)HDMI_ARB_BASE_ADDR ; -u8 reg =readb (&hdmi->phy_stat0) &HDMI_PHY_HPD ; -return (reg&HDMI_PHY_HPD ) ?0 :1 ; +return (readb (&hdmi->phy_stat0) &HDMI_DVI_STAT ) ?0 :1 ; }
Quoted 3 lines
Does this depends on other boards to do similar commit in their kernel trees?
This change only affects people who enable and use the hdmidet command. This has nothing to do with the kernel.
The kernel patch mentioned in the commit message just fixes the same problem for the kernel.
Incidentally, I just grepped for CONFIG_CMD_HDMIDETECT and I don't see it documented anywhere. It should probably be added to the README
Quoted 6 lines
--
Otavio SalvadorO.S. Systems
http://www.ossystems.com.br http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
Robert
Fabio Estevam
reviewerPATCH v2 1/1 imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
Quoted 2 lines · Robert Winkler
Incidentally, I just grepped for
CONFIG_CMD_HDMIDETECTand I don't see it documented anywhere. It should probably be added to the README
Yes, looks like a good idea.
PATCH v2 1/1 imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
In reply to Robert WinklerHi Robert,
Quoted 2 lines · Robert Winkler
Incidentally, I just grepped for
CONFIG_CMD_HDMIDETECTand I don't see it documented anywhere. It should probably be added to the README
Right - but let's do it in a separate patch. For this one:
Regards,
Stefano
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
PATCH v2 1/1 imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
Stefano,
Quoted 8 lines · Stefano Babic
Hi Robert,
Quoted 2 lines · Robert Winkler
Incidentally, I just grepped for
CONFIG_CMD_HDMIDETECTand I don't see it documented anywhere. It should probably be added to the READMERight - but let's do it in a separate patch.
Both the bmode command and the hdmidet command are undocumented and both are imx specific. Bmode is used for imx6 and 53 currently so I know those are at least supported which is what Troy's original commit message said. Eric tells me that hdmidet is imx6 specific.
So the documentation shuld probably go both in doc/README.imx5 and imx6 files?
Here's a rough draft of what I'd actually say
CONFIG_CMD_HDMIDETECT
Add the 'hdmidet' command; returns true if an HDMI monitor is detected.
CONFIG_CMD_BMODE
Add the 'bmode' (bootmode) command for forcing a boot from other media. This is useful for forcing the ROM's usb downloader to activate upon a watchdog reset
which is nice when iterating on U-Boot. Using the reset button or running bmode normal
will set it back to normal
Quoted 14 lines
For this one:
Acked-by Stefano Babic <[email protected]>Regards,
Stefano--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
PATCH v2 1/1 imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
Quoted 28 lines · Robert Winkler
Stefano,
Quoted 9 lines · Stefano Babic
Hi Robert,
Quoted 2 lines · Robert Winkler
Incidentally, I just grepped for
CONFIG_CMD_HDMIDETECTand I don't see it documented anywhere. It should probably be added to the READMERight - but let's do it in a separate patch.
Both the bmode command and the hdmidet command are undocumented and both are imx specific. Bmode is used for imx6 and 53 currently so I know those are at least supported which is what Troy's original commit message said. Eric tells me that hdmidet is imx6 specific.
So the documentation shuld probably go both in doc/README.imx5 and imx6 files?
Here's a rough draft of what I'd actually say
CONFIG_CMD_HDMIDETECT
Add the 'hdmidet' command; returns true if an HDMI monitor is detected.
Quoted 7 lines
CONFIG_CMD_BMODE
Add the 'bmode' (bootmode) command for forcing a boot from other media. This is useful for forcing the ROM's usb downloader to activate upon a watchdog reset
which is nice when iterating on U-Boot. Using the reset button or running bmode normal
will set it back to normal
I think it should be together with commands and in the documentation you could say it is specific.
--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
PATCH v2 1/1 imx: nitrogen6x: mx6qsabrelite: Add support for DVI monitors
In reply to Robert WinklerQuoted 13 lines · Robert Winkler
A little background is probably appropriate for this patch.
Since "the beginning" of usage of the SABRE Lite and Nitrogen6x boards, DVI detection has been somewhat broken.
Some (most) DVI monitors don't produce the "HPD" bit in the
PHY_STAT0register, but do show proper toggling of the RX_SENSE0..3 bits.Creating a new the bit-mask to include all five bits and modifying the 'hdmidet' command and internal detection routines allows these monitors to function properly in U-Boot.
Quoted 6 lines
A related patch to our kernels allows things to work under Linux:
https://github.com/boundarydevices/linux-imx6/commit/7d8752905c118af9063738a533227de0b2f6ecd4Signed-off-by Robert Winkler <[email protected]>---
Applied to u-boot-imx, thanks.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================