IMX8MM DTS ENABLE LVDS DUAL CHANNEL

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

IMX8MM DTS ENABLE LVDS DUAL CHANNEL

1,086 次查看
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 项奖励
回复
4 回复数

598 次查看
Stefano_Radaelli
Contributor I

Hi,

did you solve this topic?
I have the same problem.

Thank you,

Stefano

0 项奖励
回复

1,054 次查看
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 项奖励
回复

1,049 次查看
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 项奖励
回复

1,032 次查看
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 项奖励
回复