On Thu, Aug 18, 2016 at 04:34:38PM -0400, Ian Sutton wrote:
> On Sat, Aug 06, 2016 at 04:26:27AM -0400, Ian Sutton wrote:
> > Interestingly, the am335x SoC does not have a HDMI/DP/etc transmitter on
> > silicon -- the BBB has its LCDC pins wired to a TDA19988 HDMI
> > transmitter which is additionally backwired to one of the am335x's i2c
> > ports:
> > 
> > "nxp,tda998x" at iic0 addr 0x70 not configured
> > 
> > Without a TDA19988 driver we are unable to probe for an attached
> > display's EDID bits thus unable to tailor timing/videomode parameters
> > on a per-display basis.
> 
> The following patch adds the nxptda(4) i2c driver:
> 
>       nxptda0 at iic0 addr 0x70: rev 0x0301
> 
> It correctly ascertains the EDID bits of displays connected to the
> beaglebone black:
> 
>         nxptda0 at iic0 addr 0x70                   
>         nxptda0: set page to 0x00
>         nxptda0: read  0x31 from 0x00 on page 0x00, result: 0
>         nxptda0: read  0x03 from 0x02 on page 0x00, result: 0
>         nxptda0: rev 0x0301                                  
>         nxptda0: read  0x00 from 0x0a on page 0x00, result: 0
>         nxptda0: wrote 0x03  to  0x0a on page 0x00, result: 0
>         nxptda0: read  0x03 from 0x0a on page 0x00, result: 0
>         nxptda0: wrote 0x00  to  0x0a on page 0x00, result: 0
> 
>               <snip>
>         
>         nxptda0: read  0x02 from 0x11 on page 0x00, result: 0
>         nxptda0: EDID-ready IRQ fired                        
>         nxptda0: set page to 0x09    
>         nxptda0: ------------- EDID -------------
>         nxptda0: 00ffffffffffff0022f05b2801010101
>         nxptda0: 1b15010380261e8ceef6b0a3554c9b25
>         nxptda0: 115054a1080081808140010101010101
>         nxptda0: 010101010101302a009851002a403070
>         nxptda0: 13007c2c1100001e000000fd00324c18
>         nxptda0: 530e000a202020202020000000fc004c
>         nxptda0: 41313935310a202020202020000000ff
>         nxptda0: 00434e43313237504c56420a20200022
>         nxptda0: --------------------------------
>                        ^--matches EDID bits from `xrandr --verbose`
> 
> 
> This will be important for upcoming display support on armv7 (see
> amdisplay(4) threads on this list[1]). The following code is
> review-ready to some degree, however, I imagine further register
> fiddling will be needed to communicate the intended timings perhaps
> implicating more externally callable functions.
> 
> Speaking of which:
> 
> I am apprehensive of nxptda(4)'s current external interface model. I
> currently have the lone nxptda_refresh_edid() function declared in
> nxptdavar.h header in sys/dev/i2c/, meant to be included by other drivers
> which need the EDID information it provides. No other such foo_var.h
> headers appear in that directory which makes me think I am doing
> something wrong. nxptda(4) is an i2c driver and must attach to the MI
> iic(4) driver precluding a direct attachment interface. Is there a
> better way of doing this?

Have you considered directly attaching the i2c bus to your other
driver without creating a new driver and using drm_edid.c ?

Perhaps even handle the modesetting ioctls and use the modesetting
driver with xorg?

I do wonder what you are using as an input device though without usb
working yet.

Reply via email to