主题中讨论的其他器件:AM62A7、
工具与软件:
尊敬的 TI:
我使用了 SDK 10.01并希望启用 LT9211将相机数据从相机密码传输到电路板。
但现在看来 LT9211 dtsi 的端口,管道和桥接是不对的。
我是否有编写 LT9211 DTSI 的示例?
这是我的 dtsi、如何纠正?
谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
尊敬的 TI:
我使用了 SDK 10.01并希望启用 LT9211将相机数据从相机密码传输到电路板。
但现在看来 LT9211 dtsi 的端口,管道和桥接是不对的。
我是否有编写 LT9211 DTSI 的示例?
这是我的 dtsi、如何纠正?
谢谢!
您好!
根据您的方框图、LT9211只是一个连接到 AM62A7的4通道 CSI-2传感器。 因此、应通过地址0x71处的 I2C 开关连接到 AM62A。
git.ti.com/.../k3-am62x-sk-csi2-imx219.dtso
此致、
建中
似乎0x71是 imx219摄像机。
0x71是 I2C 开关地址。 如果您通过22引脚柔性连接器将 LT9211连接到 AM62A 板、则需要使用此按钮。
您需要为 LT9211修改此部分: git.ti.com/.../k3-am62x-sk-csi2-imx219.dtso
我错了、0x71是 I2C 开关地址。 但现在相机和 LT9211不在同一 I2Cbus 上。 摄像头位于 I2C2上、LT9211位于 I2C3上。
这个 dtsi 的端点似乎相机的 mipi 直接连接到 am62a7的 mipi 端口,但我的硬件,相机的 mipi 首先连接到 LT9211和 LT9211的输出 mipi 连接到 am62a7。
所以我想知道如何配置 LT9211的 dtsi。 我在案例上发布了我的最后一个 dtsi、但似乎 LT9211的驱动程序无法改变桥接器/
。 但现在我发现在 dt_prase 中发生了错误。 drm_of_find_panel_or_bridge 无法返回右。
所以我认为 DTS 可能有问题。 但我不知道在哪里。也许你可以帮助检查它。
#include <dt-bindings/gpio/gpio.h> &{/} { clk_imx728_fixed: imx728-xclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <24000000>; }; }; &main_i2c2 { #address-cells = <1>; #size-cells = <0>; status = "okay"; imx728: camera@1a { compatible = "sony,imx728"; reg = <0x1A>; clocks = <&clk_imx728_fixed>; clock-names = "xclk"; reset-gpios = <&main_gpio0 90 GPIO_ACTIVE_HIGH>; err-gpios = <&main_gpio1 1 GPIO_ACTIVE_LOW>; port { csi2_cam0: endpoint { remote-endpoint = <<9211_a>; link-frequencies = /bits/ 64 <307500000>; clock-lanes = <0>; data-lanes = <1 2 3 4>; }; }; }; }; &main_i2c3 { #address-cells = <1>; #size-cells = <0>; status = "okay"; lt9211@29 { compatible = "lontium,lt9211"; reg = <0x29>; reset-gpios = <&main_gpio1 5 GPIO_ACTIVE_HIGH>; /*interrupts-extended = <&tlmm 84 IRQ_TYPE_EDGE_FALLING>;*/ /*vccio-supply = <&main_gpio1 6 GPIO_ACTIVE_HIGH>;*/ ports { #address-cells = <1>; #size-cells = <0>; port@1 { reg = <1>; lt9211_a:endpoint { remote-endpoint = <&csi2_cam0>;/*csi2_cam0*/ }; }; port@2 { reg = <2>; lt9211_out:endpoint { remote-endpoint = <&csi2rx0_in_sensor>;/*csi2rx0_in_sensor*/ }; }; }; }; }; &csi0_port0 { status = "okay"; csi2rx0_in_sensor: endpoint { remote-endpoint = <<9211_out>; bus-type = <4>; clock-lanes = <0>; data-lanes = <1 2 3 4>; }; }; &ti_csi2rx0 { status = "okay"; }; &dphy0 { status = "okay"; };
int drm_of_find_panel_or_bridge(const struct device_node *np, int port, int endpoint, struct drm_panel **panel, struct drm_bridge **bridge) { int ret = -EPROBE_DEFER; struct device_node *remote; if (!panel && !bridge) return -EINVAL; if (panel) *panel = NULL; /* * of_graph_get_remote_node() produces a noisy error message if port * node isn't found and the absence of the port is a legit case here, * so at first we silently check whether graph presents in the * device-tree node. */ if (!of_graph_is_present(np)) return -ENODEV; remote = of_graph_get_remote_node(np, port, endpoint); if (!remote){ return -ENODEV; } if (panel) { *panel = of_drm_find_panel(remote); if (!IS_ERR(*panel)){ ret = 0; } else{ printk("TXHXTHXTHXpanel2222"); *panel = NULL; } } /* No panel found yet, check for a bridge next. */ if (bridge) { if (ret) { printk("TXHXTHXTHXpanel33333"); *bridge = of_drm_find_bridge(remote); if (*bridge){ ret = 0; } } else { *bridge = NULL; } } of_node_put(remote); printk("TXHXTHXTHXpanel666"); return ret; }
在 drm_of_find_panel_or_bridge 中发生错误、无法通过我的 lt9211 dts 找到右侧面板或桥接。
我想 TI 可以给我一个示例、说明如何在 DTS 文件中配置9211的 mipi 桥接器。
正确的 DTS 样片或许可以纠正该问题。
谢谢!