In my experience, the LCD driver runs great w/ a panel attached or not- you 
can probe the signals. tilcdc driver should be loading and you should see 
an /dev/fb0.

Not sure what
blue-and-red-wiring = "straight";
is but that shouldn't be a big deal.

I've checked your DT against mine, it's basically the same. I vaguely 
remember that error, but I can't remember if I got rid of it or what.

That being said, can I see your lcd_pins node ("pinctrl-0") to make sure 
it's the same as mine? Mine' s called "bb_lcd_lcd_pins" but it's this:

 
bb_lcd_lcd_pins: pinmux_bb_lcd_lcd_pins {
    pinctrl-single,pins= <
     0x0A0 (((1 << 3)) | 0)
     0x0A4 (((1 << 3)) | 0)
     0x0A8 (((1 << 3)) | 0)
     0x0AC (((1 << 3)) | 0)
     0x0B0 (((1 << 3)) | 0)
     0x0B4 (((1 << 3)) | 0)
     0x0B8 (((1 << 3)) | 0)
     0x0BC (((1 << 3)) | 0)
     0x0C0 (((1 << 3)) | 0)
     0x0C4 (((1 << 3)) | 0)
     0x0C8 (((1 << 3)) | 0)
     0x0CC (((1 << 3)) | 0)
     0x0D0 (((1 << 3)) | 0)
     0x0D4 (((1 << 3)) | 0)
     0x0D8 (((1 << 3)) | 0)
     0x0DC (((1 << 3)) | 0)

     0x0E0 (((1 << 3)) | 0)
     0x0E4 (((1 << 3)) | 0)
     0x0E8 (((1 << 3)) | 0)
     0x0EC (((1 << 3)) | 0)
    >;
   };

I also have "lcdc" in exclusive use.

On Tuesday, October 9, 2018 at 9:38:22 AM UTC-4, David M wrote:
>
>
> Hello,
>
> I designed a custom board based off of the OSD335x-SM. So, from the kernel 
> perspective, the board looks a lot like the pocket beaglebone. In order to 
> get the board to boot I did the following:
>
>
>    - I reprogrammed the EEPROM so that U-Boot would boot
>    - Installed the latest Beaglebone image 
>    <https://beagleboard.org/latest-images> on an SDCard
>    - Configured the DTS to behave like a pocket beaglebone
>    - Modified uEnv.txt to not load capes dynamically and use my DTS file
>
>
> The board booted fine.
>
> I used Kernel build repo 
> <https://github.com/RobertCNelson/ti-linux-kernel-dev> developed by 
> Robert C Nelson to get a build-able version of the kernel. I can now create 
> a custom version of the kernel DTS.
>
> *Now I want to get the LCD screen working*
>
> I have an 5 Inch New Haven LCD screen 
> <http://www.newhavendisplay.com/specs/NHD-5.0-800480TF-ATXL-CTP.pdf> 
> attached to the board and I've connected only 16 of the 24-bit color in an 
> RGB565 format.
>
> I've modified my DTS file to include support for the LCD Panel following 
> the instructions in: 
>
>
>    - 
>    <Kernel>/Documentation/devicetree/bindings/display/tilcdc/tilcdc.txt, 
>    - <Kernel>/Documentation/devicetree/bindings/display/tilcdc/panel.txt
>    - New Havel 5 Inch LCD Cape DTS File 
>    <http://www.cembsoft.com/user/lcdCape/nh5cape/BB-BONE-NH5C-02-A0.dts>
>
>
> The relevant portions of my DTS file are here:
>
>
> / {
>
>   lcd_backlight: backlight {
>     status = "okay";
>     compatible = "gpio-backlight";
>     //brightness-levels = <0 51 53 56 62 75 101 152 255>;
>     //default-brightness-level = <8>;
>     //default-brightness-level = <0>;
>     pinctrl-names = "default";
>     pinctrl-0 = <&backlight_pin>;
>     gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
>     //default-on;
>     //default-off;
>   };
>
>
>   lcd0:panel {
>     compatible = "ti,tilcdc,panel";
>         pinctrl-names = "default";
>     pinctrl-0 = <&lcd_pins>;
>     enable-gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>;
>     backlight = <&lcd_backlight>;
>     status = "okay";
>
>     panel-info {
>       ac-bias           = <255>;
>       ac-bias-intrpt    = <0>;
>       dma-burst-sz      = <16>;
>       bpp               = <16>;
>       fdd               = <0x80>;
>       sync-edge         = <0>;
>       sync-ctrl         = <1>;
>       raster-order      = <0>;
>       fifo-th           = <0>;
>       //invert-pxl-clk;
>     };
>
>     display-timings {
>       native-mode=<&timing0>;
>       timing0: 800x480 {
>         clock-frequency = <45000000>;
>         hactive         = <800>;
>         vactive         = <480>;
>
>         hfront-porch    = <40>;
>         hback-porch     = <40>;
>         hsync-len       = <48>;
>
>         vfront-porch    = <13>;
>         vback-porch     = <29>;
>         vsync-len       = <3>;
>
>         hsync-active    = <0>;
>         vsync-active    = <0>;
>         //de-active       = <1>;
>         //pixelclk-active = <1>;
>       };
>     };
>   };
> };
>
> &lcdc {
>   status = "okay";
>   blue-and-red-wiring = "straight";
> };
>
>
>
>
> *Results:*
>
>    - I do not see anything on the LCD screen
>    - I do not see a fb0 in /dev directory
>    - I have verified that the devicetree has been read correctly by 
>    looking into /proc/devicetree/ocp/lcdc@4830e000 as well as 
>    /proc/devicetree/panel/ and everything looks correct.
>
> Here is a dump of, what I think, is the most relevant parts of the kernel 
> boot dmesg output (I've added some extra messages within 
> <kernel>/driver/gpu/tilcdc_drv.c to help me debug this:
>
> ...
> [    2.056859] [drm] Initialized vgem 1.0.0 20120112 for virtual device on 
> minor 0
> [    2.064449] usbcore: registered new interface driver udl
> [    2.071783] OF: graph: no port node found in /ocp/lcdc@4830e000
> [    2.077961] OF: graph: no port node found in /ocp/lcdc@4830e000
> [    2.084831] tilcdc 4830e000.lcdc: Check if componentized
> [    2.090258] tilcdc 4830e000.lcdc: Not componentized
> [    2.095191] tilcdc 4830e000.lcdc: Look for remote node
> [    2.100384] OF: graph: no port node found in /ocp/lcdc@4830e000
> [    2.106356] tilcdc 4830e000.lcdc: Return 0!
> [    2.110583] tilcdc 4830e000.lcdc: no encoders/connectors found, failed 
> to initialize
> ...
> [    2.713767] panel panel: found backlight
> ...
> [    2.745671] panel panel: found enable GPIO
> ...
>
>
>
> (I can attach the full dmesg if requested)
>
> *Analysis:*
>
> It looks like the tilcdc which is the driver that, I think, should create 
> the /dev/fb0 fails because it finds no 'encoder/connectors' I'm not sure 
> what this means and I can't find documentation on this.
>
> Within the 
> <Kernel>/Documentation/devicetree/bindings/display/tilcdc/tilcdc.txt it 
> makes a mention of the remote port but all the examples I've seen only make 
> reference to HDMI as a remote endpoint, so I do not think I need to add a 
> remote endpoint to the &lcdc entry. I've tried to add a remote port to my 
> panel but it just causes a kernel panic. It seems like the tilcdc should 
> automatically detect the panel and create an /dev/fb0.
>
> Is there something I'm doing wrong?
> Should the tilcdc be initialized after the panel. Perhaps using something 
> like a deferred probe?
>
> Any help would be greatly appreciated.
>
> Dave
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/f4e27d9b-b916-43b1-adb1-401ebaf8653a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to