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

Interfacing (DSI, CSI, I2C, etc.) • Re: CM4 DSI1 + SN65DSI83 Bridge based display (6.1.x kernel)

$
0
0
I get some parts from i2c0-overlay

Code:

/* * vc4-kms-dsi-ti-sn65dsi83-somepanel-overlay.dts *//dts-v1/;/plugin/;/ {    compatible = "brcm,bcm2835";    /* PWM0 function */    fragment@0 {        target = <&gpio>;        __overlay__ {            pwm_pins: pwm_pins {                brcm,pins = <12>;                brcm,function = <4>;                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 12 */            backlight_lvds: backlight {                compatible = "pwm-backlight";                pwms = <&pwm 0 5000000 0>; /* Period of 5000000ns means 200Hz */                brightness-levels = <0  1000>;                num-interpolated-steps = <1000>;                default-brightness-level = <800>;                /*enable-gpios = <&gpio 22 0>;  Backlight enable... */            };            panel: panel {                compatible = "panel-lvds";                backlight = <&backlight_lvds>;                /* Physical dimensions of active area */                width-mm = <217>;                height-mm = <136>;                data-mapping = "vesa-24";            panel-timing {                clock-frequency = <66300000 69300000 78900000>;                de-active = <1>;                hactive = <1280 1280 1280>;                hback-porch = <64 64 64>;                hfront-porch = <16 16 16>;                hsync-active = <0>;                hsync-len = <24 24 24>;                pixelclk-active = <1>;                vactive = <800 800 800>;                vback-porch = <24 24 24>;                vfront-porch = <8 8 8>;                vsync-active = <0>;                vsync-len = <8 8 8>;            };                port {                    panel_in_lvds: endpoint {                        remote-endpoint = <&bridge_out>;                    };                };            };        };    };    fragment@3 {        target = <&i2c0if>;        __overlay__ {            #gpio-cells = <2>;            #address-cells = <1>;            #size-cells = <0>;            pinctrl-names = "default";            pinctrl-0 = <&i2c0_pins>;            status = "okay";            bridge@2c {                compatible = "ti,sn65dsi83";                reg = <0x2c>;                enable-gpios = <&gpio 22 0>;                ports {                    #address-cells = <1>;                    #size-cells = <0>;                    port@0 {                        reg = <0>;                        bridge_in: endpoint {                            remote-endpoint = <&dsi_out_port>;                            data-lanes = <0 1 2 3>;                        };                    };                    port@2 {                        reg = <2>;                        bridge_out: endpoint {                            remote-endpoint = <&panel_in_lvds>;                        };                    };                };            };        };    };    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 2 3>;                };            };        };    };    fragment@5 {        target = <&i2c0_pins>;        pins1: __overlay__ {            brcm,pins = <0 1>;            brcm,function = <4>; /* alt0 */        };    };    fragment@6 {        target = <&i2c0>;        __dormant__ {            compatible = "brcm,bcm2708-i2c";        };    };    fragment@7 {        target = <&i2c0mux>;        __overlay__ {            status = "ok";        };    };    fragment@8 {        target-path = "/aliases";        __overlay__ {            i2c0 = "/soc/i2c@7e205000";        };    };    fragment@9 {        target-path = "/__symbols__";        __overlay__ {            i2c0 = "/soc/i2c@7e205000";        };    };};

Code:

raspi-gpio getBANK0 (GPIO 0 to 27):GPIO 0: level=1 alt=0 func=SDA0 pull=UPGPIO 1: level=1 alt=0 func=SCL0 pull=UPGPIO 2: level=1 alt=0 func=SDA1 pull=UPGPIO 3: level=1 alt=0 func=SCL1 pull=UPGPIO 4: level=0 alt=4 func=TXD3 pull=NONEGPIO 5: level=1 alt=4 func=RXD3 pull=UPGPIO 6: level=0 func=OUTPUT pull=UPGPIO 7: level=1 func=INPUT pull=UPGPIO 8: level=1 func=OUTPUT pull=UPGPIO 9: level=0 alt=0 func=SPI0_MISO pull=DOWNGPIO 10: level=0 alt=0 func=SPI0_MOSI pull=DOWNGPIO 11: level=0 alt=0 func=SPI0_SCLK pull=DOWNGPIO 12: level=0 alt=0 func=PWM0_0 pull=NONEGPIO 13: level=0 alt=3 func=SPI5_MISO pull=DOWNGPIO 14: level=1 alt=3 func=SPI5_MOSI pull=NONEGPIO 15: level=0 alt=3 func=SPI5_SCLK pull=UPGPIO 16: level=0 func=INPUT pull=DOWNGPIO 17: level=0 func=INPUT pull=DOWNGPIO 18: level=0 alt=0 func=PCM_CLK pull=DOWNGPIO 19: level=0 alt=0 func=PCM_FS pull=DOWNGPIO 20: level=1 func=INPUT pull=DOWNGPIO 21: level=0 alt=0 func=PCM_DOUT pull=DOWNGPIO 22: level=0 func=OUTPUT pull=DOWNGPIO 23: level=1 func=INPUT pull=DOWNGPIO 24: level=1 func=INPUT pull=DOWNGPIO 25: level=0 func=INPUT pull=DOWNGPIO 26: level=1 func=OUTPUT pull=DOWNGPIO 27: level=1 func=OUTPUT pull=DOWNBANK1 (GPIO 28 to 45):GPIO 28: level=1 alt=5 func=RGMII_MDIO pull=UPGPIO 29: level=0 alt=5 func=RGMII_MDC pull=DOWNGPIO 30: level=1 func=INPUT pull=UPGPIO 31: level=1 func=INPUT pull=NONEGPIO 32: level=1 func=INPUT pull=DOWNGPIO 33: level=1 func=INPUT pull=DOWNGPIO 34: level=1 alt=3 func=SD1_CLK pull=NONEGPIO 35: level=1 alt=3 func=SD1_CMD pull=UPGPIO 36: level=1 alt=3 func=SD1_DAT0 pull=UPGPIO 37: level=1 alt=3 func=SD1_DAT1 pull=UPGPIO 38: level=1 alt=3 func=SD1_DAT2 pull=UPGPIO 39: level=1 alt=3 func=SD1_DAT3 pull=UPGPIO 40: level=1 func=INPUT pull=DOWNGPIO 41: level=1 func=INPUT pull=DOWNGPIO 42: level=1 func=OUTPUT pull=DOWNGPIO 43: level=1 func=INPUT pull=DOWNGPIO 44: level=1 func=INPUT pull=NONEGPIO 45: level=1 func=INPUT pull=NONEBANK2 (GPIO 46 to 53):GPIO 46: level=0 func=INPUT pull=UPGPIO 47: level=0 func=INPUT pull=UPGPIO 48: level=0 alt=0 func=SD0_CLK pull=DOWNGPIO 49: level=0 alt=0 func=SD0_CMD pull=DOWNGPIO 50: level=0 alt=0 func=SD0_DAT0 pull=DOWNGPIO 51: level=0 alt=0 func=SD0_DAT1 pull=DOWNGPIO 52: level=0 alt=0 func=SD0_DAT2 pull=DOWNGPIO 53: level=0 alt=0 func=SD0_DAT3 pull=DOWN
with this I get

Code:

[    0.279642] bcm2708_fb: probe of soc:fb failed with error -2[    1.517921] sn65dsi83 0-002c: supply vcc not found, using dummy regulator
and black screen without backlight.
Is it possible create VCC supply in device tree (with GPIO22 enable pin) and delete line enable-gpios = <&gpio 22 0>; for pwm and bridge? (I can't control separately enable pin for PWM and for display, there is only common pin for switch display power)

Code:

i2cdetect -y 0     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f00:                         -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --  

Statistics: Posted by Kuzma30 — Fri Mar 01, 2024 12:57 pm



Viewing all articles
Browse latest Browse all 5273

Trending Articles