Other Parts Discussed in Thread: TVP5151, TVP5150, AM4372
I have a custom board with AM4378 connected to tvp5151.
I changed device tree and enabled the support for tvp5151 in the kernel.
A driver of tvp5151 was successfully loaded. But I got vpfe error message during the booting as follows.
[ 1.454108] tvp5150 1-005c: tvp5151 (1.0) chip found @ 0xb8 (OMAP I2C adapter)
[ 1.461372] tvp5150 1-005c: tvp5151 detected.
...
[ 9.016213] vpfe 48326000.vpfe: Invalid bus width.
[ 9.021079] vpfe 48326000.vpfe: No platform data
[ 9.168483] vpfe: probe of 48326000.vpfe failed with error -22
The schematic is attached.
The relevant parts of device tree is as follows
&am43xx_pinmux {
vpfe0_pins_default: vpfe0_pins_default {
pinctrl-single,pins = <
AM4372_IOPAD(0x9b0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_hd mode 0*/
AM4372_IOPAD(0x9b4, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_vd mode 0*/
AM4372_IOPAD(0x9c0, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_pclk mode 0*/
AM4372_IOPAD(0xa08, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data0 mode 0*/
AM4372_IOPAD(0xa0c, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data1 mode 0*/
AM4372_IOPAD(0xa10, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data2 mode 0*/
AM4372_IOPAD(0xa14, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data3 mode 0*/
AM4372_IOPAD(0xa18, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data4 mode 0*/
AM4372_IOPAD(0xa1c, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data5 mode 0*/
AM4372_IOPAD(0xa20, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data6 mode 0*/
AM4372_IOPAD(0xa24, PIN_INPUT_PULLUP | MUX_MODE0) /* cam0_data7 mode 0*/
>;
};
vpfe0_pins_sleep: vpfe0_pins_sleep {
pinctrl-single,pins = <
AM4372_IOPAD(0x9b0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_hd mode 0*/
AM4372_IOPAD(0x9b4, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_vd mode 0*/
AM4372_IOPAD(0x9c0, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_pclk mode 0*/
AM4372_IOPAD(0xa08, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data0 mode 0*/
AM4372_IOPAD(0xa0c, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data1 mode 0*/
AM4372_IOPAD(0xa10, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data2 mode 0*/
AM4372_IOPAD(0xa14, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data3 mode 0*/
AM4372_IOPAD(0xa18, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data4 mode 0*/
AM4372_IOPAD(0xa1c, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data5 mode 0*/
AM4372_IOPAD(0xa20, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data6 mode 0*/
AM4372_IOPAD(0xa24, DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) /* cam0_data7 mode 0*/
>;
};
};
&i2c1 {
tvp5150: tvp5150@5c {
compatible = "ti,tvp5150";
reg = <0x5c>;
port {
tvp5150_0: endpoint {
remote-endpoint = <&vpfe0_ep>;
};
};
};
};
&vpfe0 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&vpfe0_pins_default>;
pinctrl-1 = <&vpfe0_pins_sleep>;
port {
#address-cells = <1>;
#size-cells = <0>;
vpfe0_ep: endpoint {
slave-mode;
remote-endpoint = <&tvp5150_0>;
ti,am437x-vpfe-interface = <1>;
hsync-active = <1>;
vsync-active = <1>;
pclk-sample = <0>;
};
};
};
SDK Version is 06.03.00.106.
Kernel Version is 4.19.94+
root@am437x-evm:~# uname -a
Linux am437x-evm 4.19.94+ #3 PREEMPT Sat Aug 1 17:22:24 KST 2020 armv7l GNU/Linux
The followings are dmesg logs.
root@am437x-evm:~# echo 0xffff > /sys/class/video4linux/video1/dev_debug
-sh: /sys/class/video4linux/video1/dev_debug: No such file or directory
root@am437x-evm:~# echo 0xffff > /sys/module/am437x_vpfe/parameters/debug
root@am437x-evm:~# cd /sys/module/am437x_vpfe/parameters
root@am437x-evm:/sys/module/am437x_vpfe/parameters# cat debug
65535
To solve the problem, What do I have to do?
Thanks, kihan.