Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 4988

Interfacing (DSI, CSI, I2C, etc.) • Re: how to use drm bridge icn6211

$
0
0
Hello, I followed along to this post on a ICN6211 design I have. I've downloaded and compiled a new kernel based on 6.6.
I added a chipone-icn6211.dts file and added it to the Makefile in /linux/arch/arm64/boot/dts/overlays.

Code:

/dts-v1/;/plugin/;//#include <dt-bindings/gpio/gpio.h>//#include <dt-bindings/pinctrl/bcm2835.h>/ {        compatible = "brcm,bcm2835";        /* PWM0 function */        fragment@0 {                target = <&gpio>;                __overlay__ {                        pwm_pins: pwm_pins {                                brcm,pins = <18>;                                brcm,function = <2>;                                brcm,pull = <0>;                        };                };        };        fragment@1 {                target = <&pwm>;                frag1: __overlay__ {                        pinctrl-names = "default";                        pinctrl-0 = <&pwm_pins>;                        assigned-clock-rates = <100000000>;                        status = "okay";                };        };        fragment@2 {                target-path = "/";                __overlay__ {                        //#gpio-cells = <2>;                        /* Panel backlight through PWM0 on GPIO 19 */                        backlight: backlight {                                compatible = "pwm-backlight";                                pwms = <&pwm 1 5000000>; /* Period of 5000000ns means 200Hz */                                brightness-levels = <0  1000>;                                num-interpolated-steps = <1000>;                                default-brightness-level = <800>;                                enable-gpios = <&gpio 16 0>; /* Backlight enable... */                        };                        panel: panel {                                compatible = "panel-dpi";                                backlight = <&backlight>;                                /* Physical dimensions of active area */                                width-mm = <120>;                                height-mm = <68>;                                panel-timing {                                        clock-frequency = <24284160>;                                        hactive = <800>;                                        hfront-porch = <8>;                                        hsync-len = <4>;                                        hback-porch = <8>;                                        vactive = <480>;                                        vfront-porch = <8>;                                        vsync-len = <4>;                                        vback-porch = <8>;                                };                                port {                                        panel_in: endpoint {                                                remote-endpoint = <&bridge_out>;                                        };                                };                        };                };        };        fragment@3 {                target = <&i2c_csi_dsi>;                __overlay__ {                        #gpio-cells = <2>;                        #address-cells = <1>;                        #size-cells = <0>;                        status = "okay";  bridge@2c {                                compatible = "chipone,icn6211";                                reg = <0x2c>;                                enable-gpios = <&gpio 15 0>;                                ports {                                        #address-cells = <1>;                                        #size-cells = <0>;                                        port@0 {                                                reg = <0>;                                                bridge_in: endpoint {                                                        remote-endpoint = <&dsi_out_port>;                                                        data-lanes = <0 1>;                                                };                                        };                                        port@2 {                                                reg = <2>;                                                bridge_out: endpoint {                                                        remote-endpoint = <&panel_in_dpi>;                                                };                                        };                                };                        };                };        };        fragment@4 {                target = <&dsi1>;                __overlay__ {                        #address-cells = <1>;                        #size-cells = <0>;                        status = "okay";                        port {                                dsi_out_port: endpoint {                                        remote-endpoint = <&bridge_in>;                                        data-lanes = <0 1>;                                };                        };                };        };};
I added chipone-icn6211.o to the Makefile in /linux/drivers/gpu/drm/bridge/ to make sure the output files were compiled.

I then used make menuconfig at /linux/ and added the Chipone-ICN6211 bridge driver.
menuconfig.PNG
At this point, I added dtoverlay=chipone-icn6211 to my config.txt and I was not getting the module to load at boot.

Are there any extra steps I need to take to enable the driver to load at boot?
dmesg error.PNG

Statistics: Posted by ncarley — Wed Mar 20, 2024 2:42 am



Viewing all articles
Browse latest Browse all 4988

Trending Articles