IMX8MM DTS ENABLE LVDS DUAL CHANNEL

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

IMX8MM DTS ENABLE LVDS DUAL CHANNEL

469件の閲覧回数
massa
Contributor I

Hi

How can I enable dual channel in DTS in split-mode?
 
 
&panel_lvds {
compatible = "panel-lvds";
data-mapping = "jeida-24";
width-mm = <154>;
height-mm = <87>;
backlight = <&backlight>;
 
panel-timing {
clock-frequency = <75000000>;
hactive = <1024>;
vactive = <768>;
hback-porch = <40>;
hfront-porch = <40>;
vback-porch = <29>;
vfront-porch = <13>;
hsync-len = <48>;
vsync-len = <3>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};
};
...
...
 
i2c@30a20000 {
compatible = "fsl,imx8mm-i2c\0fsl,imx21-i2c";
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x30a20000 0x10000>;
interrupts = <0x00 0x23 0x04>;
clocks = <0x02 0xa4>;
status = "okay";
clock-frequency = <0x186a0>;
pinctrl-names = "default\0gpio";
pinctrl-0 = <0x2a>;
pinctrl-1 = <0x2b>;
scl-gpios = <0x2c 0x0e 0x00>;
sda-gpios = <0x2c 0x0f 0x00>;
 
sn65dsi84@2c {
compatible = "ti,sn65dsi84";
reg = <0x2c>;
enable-gpios = <0x22 0x0b 0x00>;
pinctrl-names = "default";
pinctrl-0 = <0x2d>;
ti,dsi-lanes = <0x04>;
ti,lvds-format = <0x03>;
ti,lvds-bpp = <0x18>;
status = "okay";
 
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
 
 
 
port@2 {
reg = <0x02>;
 
endpoint {
remote-endpoint = <0x2e>;
data-lanes = <0x01 0x02 0x03 0x04>;
phandle = <0x5b>;
};
};
};
};
 
0 件の賞賛
3 返答(返信)

437件の閲覧回数
AldoG
NXP TechSupport
NXP TechSupport

Hello,

For the configuration of that you may refer to the bindings documentation:
https://github.com/nxp-imx/linux-imx/blob/lf-6.6.y/Documentation/devicetree/bindings/display/bridge/...

Best regards/Saludos,
Aldo.

0 件の賞賛

432件の閲覧回数
massa
Contributor I
Hi Aldo,

First of all, thank you for responding. I'm new to Yocto on the i.MX8MM systems. I'm using the module provided by Variscite with the Kirkstone kernel (kernel 5.15.60), and in its DTS, the following configuration is present:

arduino
Copy code
&panel_lvds {
compatible = "panel-lvds";
data-mapping = "jeida-24";
width-mm = <154>;
height-mm = <87>;

panel-timing {
clock-frequency = <39000000>;
hactive = <800>;
vactive = <480>;
hback-porch = <40>;
hfront-porch = <40>;
vback-porch = <29>;
vfront-porch = <13>;
hsync-len = <48>;
vsync-len = <3>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};
};

...

panel_lvds: panel-lvds {
compatible = "panel-lvds";

ports {
#address-cells = <1>;
#size-cells = <0>;

port@0 {
reg = <0>;
dual-lvds-odd-pixels;
panel_in_bridge: endpoint {
remote-endpoint = <&bridge_out_panel>;
};
};

port@1 {
reg = <1>;
dual-lvds-even-pixels;
panel_in2_bridge: endpoint {
remote-endpoint = <&bridge_out2_panel>;
};
};
};
};

...

&i2c1 {
clock-frequency = <100000>;
pinctrl-names = "default", "gpio";
pinctrl-0 = <&pinctrl_i2c1>;
pinctrl-1 = <&pinctrl_i2c1_gpio>;
scl-gpios = <&gpio5 14 GPIO_ACTIVE_HIGH>;
sda-gpios = <&gpio5 15 GPIO_ACTIVE_HIGH>;
status = "okay";

dsi_lvds_bridge: sn65dsi84@2c {
compatible = "ti,sn65dsi84";
reg = <0x2c>;
enable-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lvds>;
status = "okay";

ports {
#address-cells = <1>;
#size-cells = <0>;

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

port@2 {
reg = <2>;
dual-lvds-odd-pixels;
bridge_out_panel: endpoint {
remote-endpoint = <&panel_in_bridge>;
};
};
};
};
};
This is what came out, and I modified some parameters, but unfortunately, it doesn't work. Some time ago, I used an older kernel, Hardknott (kernel 5.10.72), and the DTS configuration was different:

lua
Copy code
dsi_lvds_bridge: sn65dsi84@2c {
compatible = "ti,sn65dsi83";
reg = <0x2c>;
ti,dsi-lanes = <1>;
ti,lvds-format = <1>;
ti,lvds-bpp = <24>;
ti,width-mm = <154>;
ti,height-mm = <87>;
enable-gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lvds>;
status = "okay";

display-timings {
lvds {
clock-frequency = <33000000>;
hactive = <800>;
vactive = <480>;
hback-porch = <40>;
hfront-porch = <40>;
vback-porch = <29>;
vfront-porch = <13>;
hsync-len = <48>;
vsync-len = <3>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};
};
...
};
Where I just had to add double the frequency, ti,lvds-channels = <2>, and split-mode to use my LVDS panel with dual-channel.

This is the display I'm using: "P280IVN01.1 28.0" – 1920x360 – LVDS.

Please help me, I don't know what to do.
0 件の賞賛

415件の閲覧回数
AldoG
NXP TechSupport
NXP TechSupport

Hello,

Please note that the device tree bindings tend to change between kernel versions, this is why I recommend to take a look to the correct binding configuration in the documentation.

This should be enough on what should be changed to work correctly.

Best regards/Saludos,
Aldo.

0 件の賞賛