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

Interfacing (DSI, CSI, I2C, etc.) • Re: Connecting a Display via DSI with ICN6211 Bridge - Troubleshooting Help Needed

$
0
0
Hi

Were you able to run this display eventually? Struggling to find the proper configuration for ICN6211 as well.
Followed your advice and connected I2C to the bridge - still no image. The I2C signal looks as expected.

Unfortunately I dont think I can share the datasheet, but yes it is a simple 24-bit RGB display.
This is the current overlay. Tried a bunch of different display timings, both from my datasheet and from an online calculator.
Code: Select all

// icn6211-overlay.dts
// abugsworstnightmare
/dts-v1/;
/plugin/;

/ {
compatible = "brcm,bcm2712";

fragment@0 {
target = <&rp1_gpio>;
__overlay__ {
pwm_pins: pwm_pins {
pins = "gpio12";
function = "pwm0";
};
};
};

fragment@1 {
target = <&rp1_pwm0>;
frag1: __overlay__ {
pinctrl-names = "default";
pinctrl-0 = <&pwm_pins>;
assigned-clock-rates = <50000000>;
status = "okay";
};
};

/* === Fragment 2: Configure the ICN6211 Bridge === */
fragment@2 {
target = <&i2c_csi_dsi>;
__overlay__ {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;

bridge: bridge@2c {
compatible = "chipone,icn6211";
reg = <0x2c>;
enable-gpios = <&gpio 6 0>;
ports {
#address-cells = <1>;
#size-cells = <0>;

port@0 {
reg = <0>;
bridge_in_dsi: endpoint {
remote-endpoint = <&dsi_out_port>;
data-lanes = <1 2>;
};
};

port@1 {
reg = <1>;
bridge_out_panel: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
};

};
};

/* === Fragment 3: Configure the Display Panel === */
fragment@3 {
target-path = "/";
__overlay__ {
backlight_dpi: backlight {
compatible = "pwm-backlight";
pwms = <&rp1_pwm0 0 1000000 0>;
brightness-levels = <0 1000>;
num-interpolated-steps = <1000>;
default-brightness-level = <800>;
};

panel: panel {
compatible = "panel-dpi";
backlight = <&backlight_dpi>;

/* for bus-format refer to
* /home/pi/linux/include/uapi/linux/media-bus-format.h
* used format is MEDIA_BUS_FMT_BGR666_1X24_CPADHI
*/
bus-format = <0x100e>;


/* Physical dimensions of active area */
width-mm = <120>;
height-mm = <68>;

/* display timing */
panel-timing {
clock-frequency = <25000000>;
hactive = <800>;
hfront-porch = <48>;
hsync-len = <32>;
hback-porch = <80>;

vactive = <480>;
vfront-porch = <3>;
vsync-len = <7>;
vback-porch = <6>;

hsync-active = <0>;
vsync-active = <0>;

de-active = <1>;
pixelclk-active = <1>;
};

port {
panel_in: endpoint {
remote-endpoint = <&bridge_out_panel>;
};
};
};
};
};

fragment@4 {
target = <&dsi1>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
port {
dsi_out_port: endpoint {
remote-endpoint = <&bridge_in_dsi>;
data-lanes = <1 2>;
};
};
};
};

fragment@5 {
target = <&i2c0if>;
__overlay__ {
status = "okay";
};
};

fragment@6 {
target = <&i2c0mux>;
__overlay__ {
status = "okay";
};
};
};

I am currently using DS1 as you can see.

I have an official 7-inch display that I got to work on a RP IO board using DSI0, but not on DSI1. I connected the jumpers as the instructions on the board says. However - it seems I have the same issue as reported in this thread. I tried with your suggestions but it still did not boot.

Do DSI0 and DSI1 differ somehow?

Unfortunately I have no easy way of testing my bridge and panel with the DSI0 port, I am stuck with DSI1 unless I redo the design.

Statistics: Posted by valera.valera — Sun Aug 10, 2025 3:19 pm



Viewing all articles
Browse latest Browse all 8151

Trending Articles