I haven't worked on this since dynamic loading of overlays were a thing, but loading the device tree I _believe_ loaded the driver for me.
I didn't use capemanager, I used ` /sys/kernel/config/device-tree/overlays/` I thought dynamic dtbo's were a thing of the past? Kernel just isn't set up for that type of thing. I'm not 100%. Other commands involved in this process were: `/usr/local/bin/config-pin overlay cape-universaln` and then I'd echo the path to the `.dtbo` to a path similar to the `/sys/kernel/config` I've been trying despite sickness/work-catch-up to do a live-stream on twitch/youtube of basically this exact process with my own lightweight GUI framework (UXmux), although I don't know exactly what systems I'll use (spi, rgb, etc). What commands are you using to load drivers? 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/434a66ac-d0e1-49ee-a49c-6435ea8968d9%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
