Other Parts Discussed in Thread: TMDSEVM572X
Hello Team,
I am using TMDSEVM572X board for development.
As I mentioned earlier in my previous thread that I want to get data from 80x80 thermal
sensor where pixels info are :-
8bit raw - monochrome , 1pixel = 2byte.
Sensor gives hsync , vsync , pclk (sourced by external crystal:- 750khz) and 8 bit parallel data.
Data shall be captured on falling edge of pclk and sampled on rising edge of pclk.
I was looping in a problem regarding v4l2-sub driver since last two weeks, but I resolved this
by using ov490 driver instead of using my custom v4l2 sub-driver.
In ov490.c file , I comment in all the i2c transfer (reg_write) function from where it sends to actual ov490 sensor.
I only configure below parameters according to vip documentation.
get_fmt()
set_fmt()
enum_mbus_code()
enum_frames_sizes()
s_steram()
I also make separate .dtso file for ov490 in arch/arm/boot/dts/ti, where I wrote
&i2c5 {
status = "okay";
clock-frequency = <50000>;
ov490@14 {
compatible = "ovti,ov490";
reg = <0x14>;
port {
csi2_cam0: endpoint@0 {
bus-type = <0>;
bus-width = <8>;
hsync-active = <1>;
// input-clock-freq = <32000000>;
pclk-sample = <1>;
pixel-clock-freq = <750000>; //750khZ
channels = <1>;
vsync-active = <1>;
data-shift = <0>;
remote-endpoint = <&csi2_phy0>;
};
};
};
};
&vip2 {
status = "okay";
};
&vin3a {
csi2_phy0: endpoint@0 {
bus-type = <0>;
bus-width = <8>;
hsync-active = <1>;
channels = <1>;
pclk-sample = <1>;
vsync-active = <1>;
data-shift = <0>;
remote-endpoint = <&csi2_cam0>;
};
};
the generated .dtb file is getting copied to /rootfs/boot/
I am getting the /dev/video1 instance when I type on terminal
dmesg | grep video
videodev: linux video capture interface: v2.00
vpe: 489d0000.vpe: Device registered as /dev/video0
vin3a-0: device registered as video1
dmesg | grep ov490
vin3a: Port a: using subdev ov490 4-0014 for capture.
the sensor is getting initialized by separate user space i2c test application,
data lines , pclk, hsync ,vsync are verified on DSO.
I have downloaded the yavta test application from github.
when the application gets run, the buffers get created for enqueue but dequeue
operation not performed it get stucked in ioctl(dev->fd, VIDIOC_DQBUF, &buf);
by the command defined in documentation
cat /proc/interrupts | grep vip
getting nothing , no interrupts found.
In vip documentation.
Why I am not seeing any interrupt generated from the sensor?
Not getting any interrupts usually means the module is not receiving/detecting video data. To proceed with debugging, probe the pclk, vysnc and hsync signal at the connector. If they look as what you are expecting, then verify the pinmux.
I think already 24 bit pinmux is defined in mux_data.h file
const struct pad_conf_entry core_padconf_array_essential_x15[] = {
{GPMC_AD0, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad0.vin3a_d0 */
{GPMC_AD1, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad1.vin3a_d1 */
{GPMC_AD2, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad2.vin3a_d2 */
{GPMC_AD3, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad3.vin3a_d3 */
{GPMC_AD4, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad4.vin3a_d4 */
{GPMC_AD5, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad5.vin3a_d5 */
{GPMC_AD6, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad6.vin3a_d6 */
{GPMC_AD7, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad7.vin3a_d7 */
{GPMC_AD8, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad8.vin3a_d8 */
{GPMC_AD9, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad9.vin3a_d9 */
{GPMC_AD10, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad10.vin3a_d10 */
{GPMC_AD11, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad11.vin3a_d11 */
{GPMC_AD12, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad12.vin3a_d12 */
{GPMC_AD13, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad13.vin3a_d13 */
{GPMC_AD14, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad14.vin3a_d14 */
{GPMC_AD15, (M2 | PIN_INPUT | MANUAL_MODE)}, /* gpmc_ad15.vin3a_d15 */
{GPMC_A0, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a0.vin3a_d16 */
{GPMC_A1, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a1.vin3a_d17 */
{GPMC_A2, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a2.vin3a_d18 */
{GPMC_A3, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a3.vin3a_d19 */
{GPMC_A4, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a4.vin3a_d20 */
{GPMC_A5, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a5.vin3a_d21 */
{GPMC_A6, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a6.vin3a_d22 */
{GPMC_A7, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a7.vin3a_d23 */
{GPMC_A8, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a8.vin3a_hsync0 */
{GPMC_A9, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a9.vin3a_vsync0 */
{GPMC_A10, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a10.vin3a_de0 */
{GPMC_A11, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_a11.vin3a_fld0 */
{GPMC_A12, (M14 | PIN_INPUT_PULLUP)}, /* gpmc_a12.gpio2_2 */
{GPMC_A13, (M14 | PIN_INPUT_PULLDOWN)}, /* gpmc_a13.gpio2_3 */
{GPMC_A14, (M14 | PIN_INPUT_PULLUP)}, /* gpmc_a14.gpio2_4 */
{GPMC_A15, (M14 | PIN_INPUT_PULLDOWN)}, /* gpmc_a15.gpio2_5 */
{GPMC_A16, (M14 | PIN_INPUT_PULLDOWN)}, /* gpmc_a16.gpio2_6 */
{GPMC_A17, (M14 | PIN_INPUT_PULLDOWN)}, /* gpmc_a17.gpio2_7 */
{GPMC_A18, (M14 | PIN_INPUT_PULLUP)}, /* gpmc_a18.gpio2_8 */
{GPMC_A19, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a19.mmc2_dat4 */
{GPMC_A20, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a20.mmc2_dat5 */
{GPMC_A21, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a21.mmc2_dat6 */
{GPMC_A22, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a22.mmc2_dat7 */
{GPMC_A23, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a23.mmc2_clk */
{GPMC_A24, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a24.mmc2_dat0 */
{GPMC_A25, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a25.mmc2_dat1 */
{GPMC_A26, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a26.mmc2_dat2 */
{GPMC_A27, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_a27.mmc2_dat3 */
{GPMC_CS1, (M1 | PIN_INPUT_PULLUP)}, /* gpmc_cs1.mmc2_cmd */
{GPMC_CS0, (M14 | PIN_INPUT_PULLDOWN)}, /* gpmc_cs0.gpio2_19 */
{GPMC_CS2, (M14 | PIN_INPUT_PULLUP)}, /* gpmc_cs2.gpio2_20 */
{GPMC_CS3, (M2 | PIN_INPUT_PULLDOWN | MANUAL_MODE)}, /* gpmc_cs3.vin3a_clk0 */
{GPMC_CLK, (M9 | PIN_INPUT_PULLDOWN)}, /* gpmc_clk.dma_evt1 */
{GPMC_ADVN_ALE, (M14 | PIN_INPUT_PULLUP)}, /* gpmc_advn_ale.gpio2_23 */
{GPMC_OEN_REN, (M14 | PIN_INPUT_PULLUP)}, /* gpmc_oen_ren.gpio2_24 */
{GPMC_WEN, (M14 | PIN_INPUT_PULLUP)}, /* gpmc_wen.gpio2_25 */
{GPMC_BEN0, (M9 | PIN_INPUT_PULLDOWN)}, /* gpmc_ben0.dma_evt3 */
{GPMC_BEN1, (M9 | PIN_INPUT_PULLDOWN)}, /* gpmc_ben1.dma_evt4 */
{GPMC_WAIT0, (M14 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* gpmc_wait0.gpio2_28 */
{VIN1B_CLK1, (M14 | PIN_INPUT_SLEW)}, /* vin1b_clk1.gpio2_31 */
{VIN1A_D2, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d2.gpio3_6 */
{VIN1A_D3, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d3.gpio3_7 */
{VIN1A_D4, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d4.gpio3_8 */
{VIN1A_D5, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d5.gpio3_9 */
{VIN1A_D6, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d6.gpio3_10 */
{VIN1A_D7, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d7.gpio3_11 */
{VIN1A_D8, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d8.gpio3_12 */
{VIN1A_D10, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d10.gpio3_14 */
{VIN1A_D11, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d11.gpio3_15 */
{VIN1A_D12, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d12.gpio3_16 */
{VIN1A_D14, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d14.gpio3_18 */
{VIN1A_D16, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d16.gpio3_20 */
{VIN1A_D19, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d19.gpio3_23 */
{VIN1A_D20, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d20.gpio3_24 */
{VIN1A_D22, (M14 | PIN_INPUT_PULLDOWN)}, /* vin1a_d22.gpio3_26 */
{VIN2A_CLK0, (M14 | PIN_INPUT_PULLDOWN)}, /* vin2a_clk0.gpio3_28 */
{VIN2A_DE0, (M14 | PIN_INPUT_PULLDOWN)}, /* vin2a_de0.gpio3_29 */
{VIN2A_FLD0, (M14 | PIN_INPUT_PULLDOWN)}, /* vin2a_fld0.gpio3_30 */
{VIN2A_HSYNC0, (M11 | PIN_INPUT_PULLUP)}, /* vin2a_hsync0.pr1_uart0_cts_n */
{VIN2A_VSYNC0, (M11 | PIN_OUTPUT_PULLUP)}, /* vin2a_vsync0.pr1_uart0_rts_n */
{VIN2A_D0, (M11 | PIN_INPUT_PULLUP)}, /* vin2a_d0.pr1_uart0_rxd */
{VIN2A_D1, (M11 | PIN_OUTPUT)}, /* vin2a_d1.pr1_uart0_txd */
{VIN2A_D2, (M8 | PIN_INPUT_PULLUP)}, /* vin2a_d2.uart10_rxd */
{VIN2A_D3, (M8 | PIN_OUTPUT)}, /* vin2a_d3.uart10_txd */
{VIN2A_D4, (M8 | PIN_INPUT_PULLUP)}, /* vin2a_d4.uart10_ctsn */
{VIN2A_D5, (M8 | PIN_OUTPUT_PULLUP)}, /* vin2a_d5.uart10_rtsn */
{VIN2A_D6, (M14 | PIN_INPUT_PULLDOWN)}, /* vin2a_d6.gpio4_7 */
{VIN2A_D7, (M14 | PIN_INPUT_PULLDOWN)}, /* vin2a_d7.gpio4_8 */
{VIN2A_D8, (M14 | PIN_INPUT_PULLDOWN)}, /* vin2a_d8.gpio4_9 */
{VIN2A_D9, (M14 | PIN_INPUT_PULLDOWN)}, /* vin2a_d9.gpio4_10 */
{VIN2A_D10, (M10 | PIN_OUTPUT_PULLDOWN)}, /* vin2a_d10.ehrpwm2B */
{VIN2A_D11, (M10 | PIN_INPUT_PULLDOWN)}, /* vin2a_d11.ehrpwm2_tripzone_input */
{VIN2A_D12, (M3 | PIN_OUTPUT | MANUAL_MODE)}, /* vin2a_d12.rgmii1_txc */
{VIN2A_D13, (M3 | PIN_OUTPUT | MANUAL_MODE)}, /* vin2a_d13.rgmii1_txctl */
{VIN2A_D14, (M3 | PIN_OUTPUT | MANUAL_MODE)}, /* vin2a_d14.rgmii1_txd3 */
{VIN2A_D15, (M3 | PIN_OUTPUT | MANUAL_MODE)}, /* vin2a_d15.rgmii1_txd2 */
{VIN2A_D16, (M3 | PIN_OUTPUT | MANUAL_MODE)}, /* vin2a_d16.rgmii1_txd1 */
{VIN2A_D17, (M3 | PIN_OUTPUT | MANUAL_MODE)}, /* vin2a_d17.rgmii1_txd0 */
{VIN2A_D18, (M3 | PIN_INPUT | MANUAL_MODE)}, /* vin2a_d18.rgmii1_rxc */
{VIN2A_D19, (M3 | PIN_INPUT | MANUAL_MODE)}, /* vin2a_d19.rgmii1_rxctl */
{VIN2A_D20, (M3 | PIN_INPUT | MANUAL_MODE)}, /* vin2a_d20.rgmii1_rxd3 */
{VIN2A_D21, (M3 | PIN_INPUT | MANUAL_MODE)}, /* vin2a_d21.rgmii1_rxd2 */
{VIN2A_D22, (M3 | PIN_INPUT | MANUAL_MODE)}, /* vin2a_d22.rgmii1_rxd1 */
{VIN2A_D23, (M3 | PIN_INPUT | MANUAL_MODE)}, /* vin2a_d23.rgmii1_rxd0 */
{VOUT1_FLD, (M14 | PIN_INPUT)}, /* vout1_fld.gpio4_21 */
{MDIO_MCLK, (M0 | PIN_OUTPUT | SLEWCONTROL)}, /* mdio_mclk.mdio_mclk */
{MDIO_D, (M0 | PIN_INPUT | SLEWCONTROL)}, /* mdio_d.mdio_d */
{RMII_MHZ_50_CLK, (M14 | PIN_INPUT_PULLUP)}, /* RMII_MHZ_50_CLK.gpio5_17 */
{UART3_RXD, (M14 | PIN_INPUT_SLEW)}, /* uart3_rxd.gpio5_18 */
{UART3_TXD, (M14 | PIN_INPUT_SLEW)}, /* uart3_txd.gpio5_19 */
{RGMII0_TXC, (M0 | PIN_OUTPUT | MANUAL_MODE)}, /* rgmii0_txc.rgmii0_txc */
{RGMII0_TXCTL, (M0 | PIN_OUTPUT | MANUAL_MODE)}, /* rgmii0_txctl.rgmii0_txctl */
{RGMII0_TXD3, (M0 | PIN_OUTPUT | MANUAL_MODE)}, /* rgmii0_txd3.rgmii0_txd3 */
{RGMII0_TXD2, (M0 | PIN_OUTPUT | MANUAL_MODE)}, /* rgmii0_txd2.rgmii0_txd2 */
{RGMII0_TXD1, (M0 | PIN_OUTPUT | MANUAL_MODE)}, /* rgmii0_txd1.rgmii0_txd1 */
{RGMII0_TXD0, (M0 | PIN_OUTPUT | MANUAL_MODE)}, /* rgmii0_txd0.rgmii0_txd0 */
{RGMII0_RXC, (M0 | PIN_INPUT | MANUAL_MODE)}, /* rgmii0_rxc.rgmii0_rxc */
{RGMII0_RXCTL, (M0 | PIN_INPUT | MANUAL_MODE)}, /* rgmii0_rxctl.rgmii0_rxctl */
{RGMII0_RXD3, (M0 | PIN_INPUT | MANUAL_MODE)}, /* rgmii0_rxd3.rgmii0_rxd3 */
{RGMII0_RXD2, (M0 | PIN_INPUT | MANUAL_MODE)}, /* rgmii0_rxd2.rgmii0_rxd2 */
{RGMII0_RXD1, (M0 | PIN_INPUT | MANUAL_MODE)}, /* rgmii0_rxd1.rgmii0_rxd1 */
{RGMII0_RXD0, (M0 | PIN_INPUT | MANUAL_MODE)}, /* rgmii0_rxd0.rgmii0_rxd0 */
{USB1_DRVVBUS, (M0 | PIN_OUTPUT | SLEWCONTROL)}, /* usb1_drvvbus.usb1_drvvbus */
{USB2_DRVVBUS, (M0 | PIN_OUTPUT_PULLDOWN | SLEWCONTROL)}, /* usb2_drvvbus.usb2_drvvbus */
{GPIO6_14, (M10 | PIN_INPUT_PULLUP)}, /* gpio6_14.timer1 */
{GPIO6_15, (M10 | PIN_INPUT_PULLUP)}, /* gpio6_15.timer2 */
{GPIO6_16, (M10 | PIN_INPUT_PULLUP)}, /* gpio6_16.timer3 */
{XREF_CLK0, (M9 | PIN_OUTPUT_PULLDOWN)}, /* xref_clk0.clkout2 */
{XREF_CLK1, (M14 | PIN_INPUT_PULLDOWN)}, /* xref_clk1.gpio6_18 */
{XREF_CLK2, (M14 | PIN_INPUT_PULLDOWN)}, /* xref_clk2.gpio6_19 */
{XREF_CLK3, (M9 | PIN_OUTPUT_PULLDOWN)}, /* xref_clk3.clkout3 */
{MCASP1_ACLKX, (M10 | PIN_INPUT_PULLUP)}, /* mcasp1_aclkx.i2c3_sda */
{MCASP1_FSX, (M10 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* mcasp1_fsx.i2c3_scl */
{MCASP1_ACLKR, (M10 | PIN_INPUT_PULLUP)}, /* mcasp1_aclkr.i2c4_sda */
{MCASP1_FSR, (M10 | PIN_INPUT_PULLUP)}, /* mcasp1_fsr.i2c4_scl */
{MCASP1_AXR0, (M10 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* G12 mcasp1_axr0.i2c5_sda */
{MCASP1_AXR1, (M10 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* F12 mcasp1_axr1.i2c5_scl */
{MCASP1_AXR2, (M14 | PIN_INPUT_PULLDOWN)}, /* mcasp1_axr2.gpio5_4 */
{MCASP1_AXR3, (M14 | PIN_INPUT_PULLDOWN)}, /* mcasp1_axr3.gpio5_5 */
{MCASP1_AXR4, (M14 | PIN_INPUT_PULLDOWN)}, /* mcasp1_axr4.gpio5_6 */
{MCASP1_AXR5, (M14 | PIN_INPUT_PULLDOWN)}, /* mcasp1_axr5.gpio5_7 */
{MCASP1_AXR6, (M14 | PIN_INPUT_PULLDOWN)}, /* mcasp1_axr6.gpio5_8 */
{MCASP1_AXR7, (M14 | PIN_INPUT_PULLDOWN)}, /* mcasp1_axr7.gpio5_9 */
{MCASP1_AXR8, (M14 | PIN_INPUT | SLEWCONTROL)}, /* mcasp1_axr8.gpio5_10 */
{MCASP1_AXR9, (M14 | PIN_OUTPUT | SLEWCONTROL)}, /* mcasp1_axr9.gpio5_11 */
{MCASP1_AXR10, (M14 | PIN_OUTPUT | SLEWCONTROL)}, /* mcasp1_axr10.gpio5_12 */
{MCASP1_AXR11, (M14 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* mcasp1_axr11.gpio4_17 */
{MCASP1_AXR12, (M1 | PIN_INPUT_SLEW | VIRTUAL_MODE10)}, /* mcasp1_axr12.mcasp7_axr0 */
{MCASP1_AXR13, (M1 | PIN_INPUT_SLEW | VIRTUAL_MODE10)}, /* mcasp1_axr13.mcasp7_axr1 */
{MCASP1_AXR14, (M1 | PIN_INPUT_SLEW | VIRTUAL_MODE10)}, /* mcasp1_axr14.mcasp7_aclkx */
{MCASP1_AXR15, (M1 | PIN_INPUT_SLEW | VIRTUAL_MODE10)}, /* mcasp1_axr15.mcasp7_fsx */
{MCASP3_ACLKX, (M0 | PIN_INPUT_PULLDOWN)}, /* mcasp3_aclkx.mcasp3_aclkx */
{MCASP3_FSX, (M0 | PIN_INPUT_SLEW)}, /* mcasp3_fsx.mcasp3_fsx */
{MCASP3_AXR0, (M0 | PIN_INPUT_SLEW)}, /* mcasp3_axr0.mcasp3_axr0 */
{MCASP3_AXR1, (M0 | PIN_INPUT_SLEW)}, /* mcasp3_axr1.mcasp3_axr1 */
{MCASP4_ACLKX, (M3 | PIN_INPUT_PULLUP)}, /* mcasp4_aclkx.uart8_rxd */
{MCASP4_FSX, (M3 | PIN_OUTPUT)}, /* mcasp4_fsx.uart8_txd */
{MCASP4_AXR0, (M3 | PIN_INPUT_PULLUP)}, /* mcasp4_axr0.uart8_ctsn */
{MCASP4_AXR1, (M3 | PIN_OUTPUT_PULLUP)}, /* mcasp4_axr1.uart8_rtsn */
{MCASP5_ACLKX, (M3 | PIN_INPUT_PULLUP)}, /* mcasp5_aclkx.uart9_rxd */
{MCASP5_FSX, (M3 | PIN_OUTPUT)}, /* mcasp5_fsx.uart9_txd */
{MCASP5_AXR0, (M3 | PIN_INPUT_PULLUP)}, /* mcasp5_axr0.uart9_ctsn */
{MCASP5_AXR1, (M3 | PIN_OUTPUT_PULLUP)}, /* mcasp5_axr1.uart9_rtsn */
{MMC1_CLK, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_clk.mmc1_clk */
{MMC1_CMD, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_cmd.mmc1_cmd */
{MMC1_DAT0, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_dat0.mmc1_dat0 */
{MMC1_DAT1, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_dat1.mmc1_dat1 */
{MMC1_DAT2, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_dat2.mmc1_dat2 */
{MMC1_DAT3, (M0 | PIN_INPUT_PULLUP)}, /* mmc1_dat3.mmc1_dat3 */
{MMC1_SDCD, (M14 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* mmc1_sdcd.gpio6_27 */
{GPIO6_10, (M10 | PIN_OUTPUT_PULLDOWN)}, /* gpio6_10.ehrpwm2A */
{GPIO6_11, (M0 | PIN_INPUT_PULLUP)}, /* gpio6_11.gpio6_11 */
{MMC3_CLK, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* mmc3_clk.mmc3_clk */
{MMC3_CMD, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* mmc3_cmd.mmc3_cmd */
{MMC3_DAT0, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* mmc3_dat0.mmc3_dat0 */
{MMC3_DAT1, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* mmc3_dat1.mmc3_dat1 */
{MMC3_DAT2, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* mmc3_dat2.mmc3_dat2 */
{MMC3_DAT3, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* mmc3_dat3.mmc3_dat3 */
{MMC3_DAT4, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* mmc3_dat4.mmc3_dat4 */
{MMC3_DAT5, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* mmc3_dat5.mmc3_dat5 */
{MMC3_DAT6, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* mmc3_dat6.mmc3_dat6 */
{MMC3_DAT7, (M0 | PIN_INPUT_PULLUP | MANUAL_MODE)}, /* mmc3_dat7.mmc3_dat7 */
{SPI1_SCLK, (M14 | PIN_INPUT_PULLDOWN)}, /* spi1_sclk.gpio7_7 */
{SPI1_D1, (M14 | PIN_INPUT_PULLDOWN)}, /* spi1_d1.gpio7_8 */
{SPI1_D0, (M14 | PIN_INPUT_PULLDOWN)}, /* spi1_d0.gpio7_9 */
{SPI1_CS0, (M14 | PIN_INPUT)}, /* spi1_cs0.gpio7_10 */
{SPI1_CS1, (M14 | PIN_INPUT)}, /* spi1_cs1.gpio7_11 */
{SPI1_CS2, (M14 | PIN_INPUT_SLEW)}, /* spi1_cs2.gpio7_12 */
{SPI1_CS3, (M6 | PIN_INPUT | SLEWCONTROL)}, /* spi1_cs3.hdmi1_cec */
{SPI2_SCLK, (M14 | PIN_INPUT_PULLDOWN)}, /* spi2_sclk.gpio7_14 */
{SPI2_D1, (M14 | PIN_INPUT_SLEW)}, /* spi2_d1.gpio7_15 */
{SPI2_D0, (M14 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* spi2_d0.gpio7_16 */
{SPI2_CS0, (M14 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* spi2_cs0.gpio7_17 */
{DCAN1_TX, (M0 | PIN_OUTPUT | SLEWCONTROL)}, /* dcan1_tx.dcan1_tx */
{DCAN1_RX, (M0 | PIN_INPUT | SLEWCONTROL)}, /* dcan1_rx.dcan1_rx */
{UART1_RXD, (M0 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* uart1_rxd.uart1_rxd */
{UART1_TXD, (M0 | PIN_OUTPUT | SLEWCONTROL)}, /* uart1_txd.uart1_txd */
{UART1_CTSN, (M14 | PIN_INPUT_PULLDOWN)}, /* uart1_ctsn.gpio7_24 */
{UART1_RTSN, (M14 | PIN_INPUT)}, /* uart1_rtsn.gpio7_25 */
{UART2_RXD, (M14 | PIN_INPUT_PULLDOWN)}, /* uart2_rxd.gpio7_26 */
{UART2_TXD, (M14 | PIN_INPUT_PULLDOWN)}, /* uart2_txd.gpio7_27 */
{UART2_CTSN, (M2 | PIN_INPUT_PULLUP)}, /* uart2_ctsn.uart3_rxd */
{UART2_RTSN, (M1 | PIN_OUTPUT)}, /* uart2_rtsn.uart3_txd */
{I2C1_SDA, (M0 | PIN_INPUT_PULLUP)}, /* i2c1_sda.i2c1_sda */
{I2C1_SCL, (M0 | PIN_INPUT_PULLUP)}, /* i2c1_scl.i2c1_scl */
{I2C2_SDA, (M1 | PIN_INPUT_PULLUP)}, /* i2c2_sda.hdmi1_ddc_scl */
{I2C2_SCL, (M1 | PIN_INPUT_PULLUP)}, /* i2c2_scl.hdmi1_ddc_sda */
{WAKEUP0, (M0 | PIN_INPUT)}, /* Wakeup0.Wakeup0 */
{WAKEUP1, (M0 | PIN_INPUT)}, /* Wakeup1.Wakeup1 */
{WAKEUP2, (M0 | PIN_INPUT)}, /* Wakeup2.Wakeup2 */
{WAKEUP3, (M0 | PIN_INPUT)}, /* Wakeup3.Wakeup3 */
{ON_OFF, (M0 | PIN_OUTPUT)}, /* on_off.on_off */
{RTC_PORZ, (M0 | PIN_INPUT)}, /* rtc_porz.rtc_porz */
{TMS, (M0 | PIN_INPUT_PULLUP)}, /* tms.tms */
{TDI, (M0 | PIN_INPUT_PULLUP | SLEWCONTROL)}, /* tdi.tdi */
{TDO, (M0 | PIN_OUTPUT)}, /* tdo.tdo */
{TCLK, (M0 | PIN_INPUT_PULLDOWN)}, /* tclk.tclk */
{TRSTN, (M0 | PIN_INPUT)}, /* trstn.trstn */
{RTCK, (M0 | PIN_OUTPUT)}, /* rtck.rtck */
{EMU0, (M0 | PIN_INPUT)}, /* emu0.emu0 */
{EMU1, (M0 | PIN_INPUT)}, /* emu1.emu1 */
{NMIN_DSP, (M0 | PIN_INPUT)}, /* nmin_dsp.nmin_dsp */
{RSTOUTN, (M0 | PIN_OUTPUT)}, /* rstoutn.rstoutn */
};
My question is should I do pinmux in dts too or only u-boot side?
I am attaching the kernal log file and ov490.c modified driver file.
Please look into this and provide an appropriate solution.
Thank you .
Regards
Krishna Vashistha
Accurate Optoelectronics Pvt. Ltd.
// SPDX-License-Identifier: GPL-2.0 /* * OmniVision OV490 Camera Driver * * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/ * Author: Nikhil Devshatwar <nikhil.nd@ti.com> */ #include <linux/delay.h> #include <linux/i2c.h> #include <linux/gpio.h> #include <linux/init.h> #include <linux/module.h> #include <linux/regmap.h> #include <linux/slab.h> #include <linux/v4l2-mediabus.h> #include <linux/videodev2.h> #include <linux/mutex.h> #include <linux/delay.h> #include <media/soc_camera.h> #include <media/v4l2-async.h> #include <media/v4l2-common.h> #include <linux/gpio/consumer.h> #include <linux/of.h> #include <linux/of_device.h> #include <linux/of_graph.h> #include <media/v4l2-fwnode.h> #include <media/v4l2-event.h> #include <media/v4l2-subdev.h> /* Register definitions */ #define OV490_PID 0x300a #define OV490_VER 0x300b #define OV490_BANK_HIGH 0xfffd #define OV490_BANK_LOW 0xfffe #define OV490_MIPI_TX_LANE_CTRL2 0x8029202D #define OV490_MIPI_TX_LANE_CTRL0 0x80292015 #define OV490_SC_RESET1 0x80800011 #define OV490_FW_VER_HIGH 0x80800102 #define OV490_FW_VER_LOW 0x80800103 #define OV490_IMAGE0_CTRL 0x8082000a #define OV490_IMAGE0_BYTE_INVERT BIT(7) #define OV490_IMAGE0_BYTE_SEQUENCE GEN_MASK(6, 4) #define OV490_IMAGE0_BYTE_SEQUENCE_1 BIT(4) #define OV490_IMAGE0_FORMAT_SELECT GEN_MASK(3, 0) #define OV490_IMAGE0_FORMAT_PURE_RAW12 0x0 #define OV490_IMAGE0_FORMAT_3X12_RAW 0x2 #define OV490_IMAGE0_FORMAT_2X12_RAW 0x3 #define OV490_IMAGE0_FORMAT_20_COMBINED_RAW 0x4 #define OV490_IMAGE0_FORMAT_16_COMPRESSED_RAW 0x5 #define OV490_IMAGE0_FORMAT_12_COMPRESSED_RAW 0x6 #define OV490_IMAGE0_FORMAT_2X12_COMPRESSED_RAW 0x7 #define OV490_IMAGE0_FORMAT_12_SELECTED_RAW 0x8 #define OV490_IMAGE0_FORMAT_12_YUV422 0xf /* IDs */ #define OV490_VERSION_REG 0x0490 #define OV490_VERSION(pid, ver) (((pid) << 8) | ((ver) & 0xff)) #define OV490_MAX_WIDTH 160 #define OV490_MAX_HEIGHT 160 #define MAX_NUM_GPIOS 10 /* Host Command Flow */ #define OV490_STATUS_ADDR (0x80195ffc) #define OV490_HOST_CMD_PARA_ADDR (0x80195000) #define OV490_HOST_CMD_RESULT_ADDR (0x80195000) #define OV490_HOST_INT_ADDR (0x808000c0) #define OV490_STATUS_FINISH (0x99) #define OV490_STATUS_ERROR (0x55) /* Host Command List */ #define OV490_CMD_BRIGHTNESS_SET (0xf1) #define OV490_CMD_SATURATION_SET (0xf3) #define OV490_CMD_HUE_SET (0xf5) #define OV490_CMD_FRAMERATE_SET (0xf7) #define OV490_CMD_GAMMA_SET (0xf9) #define OV490_CMD_SHARPNESS_SET (0xfb) #define OV490_CMD_CONTRAST_SET (0xfd) #define OV490_CMD_GROUPWRITE_SET (0xe1) #define OV490_CMD_STREAMING_CTRL (0xe2) #define OV490_CMD_CONTEXT_SWITCH_CONFIG (0xe3) #define OV490_CMD_CONTEXT_SWITCH_CTRL (0xe4) #define OV490_CMD_MULT_CMD (0xe5) #define OV490_CMD_GPIO_SET (0xe6) #define OV490_CMD_GPIO_GET (0xe7) #define OV490_CMD_FORMAT_SET (0xe8) #define OV490_CMD_TEMP_GET (0xe9) #define OV490_CMD_EXPOSURE_GAIN_SET (0xea) #define OV490_CMD_AWBGAIN_SET (0xeb) #define OV490_CMD_DENOISE_SET (0xec) #define OV490_CMD_TONECURVE_SET (0xed) #define OV490_CMD_COMB_WEIGHT_SET (0xee) #define OV490_CMD_AEC_WEIGHT_SET (0xd2) #define OV490_CMD_AWB_ROI_SET (0xd3) #define OV490_CMD_TONEMAPPING_ROI_SET (0xd4) #define OV490_CMD_STAT_ROI_SET (0xd5) #define OV490_CMD_TESTPATTERN_SET (0xd6) #define OV490_CMD_MTF_SET (0xd7) #define OV490_CMD_LENC_SET (0xd8) #define OV490_CMD_BLC_SET (0xd9) #define OV490_CMD_GROUPWRITE_LAUNCH (0xda) #define OV490_CMD_EMBLINE_CTRL (0xdb) #define OV490_CMD_MIRRFLIP_CTRL (0xdc) #define OV490_CMD_EXTRA_VTS_SET (0xde) #define OV490_CMD_SNR_REG_ACCESS (0xc1) #define OV490_CMD_POSTAWBGAIN_SET (0xc2) #define OV490_CMD_CROP_SET (0xc3) #define OV490_CMD_FRAMESYNC (0xc4) #define OV490_CMD_BANDING_SET (0xc5) #define OV490_CMD_TOPEMB_SET (0xc7) #define OV490_CMD_FWREG_ACCESS (0x35) #define OV490_CMD_FADE_CTRL (0x37) #define OV490_CMD_INIT_CTRL (0x39) #define OV490_CMD_RESET_CTRL (0x3a) /* * = fvco / pixel_width * num_lanes * = 804,000,000 / 16 bits * 4 lanes */ #define OV490_PIXEL_RATE_PER_LANE 50250000 static u8 ov490_init_param[] = { 0x31, /* [3:0]input port, [7:4] input format */ 0x01, /* [3:0]output port, [7:4] output format */ 0x05, /* in width: 1288 */ 0x08, 0x04, /* in height:1080 */ 0x40, 0x05, /* out width: 1288 */ 0x08, 0x04, /* out height:1080 */ 0x40, 0x00, }; struct ov490_color_format { u32 code; u32 colorspace; u32 coplaner; u32 fourcc; }; struct ov490_priv { struct v4l2_subdev subdev; struct v4l2_async_subdev asd; const struct ov490_color_format *cfmt; int width; int height; int num_lanes; struct regmap *regmap; struct gpio_descs *mux_gpios; struct v4l2_ctrl_handler handler; struct v4l2_ctrl *pixel_rate; }; /* Main access control */ DEFINE_MUTEX(ov490_lock); static int ov490_init_gpios(struct i2c_client *client); /* * supported color format list */ static const struct ov490_color_format ov490_cfmts[] = { { .code = MEDIA_BUS_FMT_SGBRG8_1X8, .colorspace = V4L2_COLORSPACE_SMPTE170M, .coplaner = 0, .fourcc = V4L2_PIX_FMT_SGBRG8, }, }; static struct ov490_priv *to_ov490(const struct i2c_client *client) { return container_of(i2c_get_clientdata(client), struct ov490_priv, subdev); } static struct v4l2_subdev *ctrl_to_sd(struct v4l2_ctrl *ctrl) { return &container_of(ctrl->handler, struct ov490_priv, handler)->subdev; } static int ov490_reg_write32(struct regmap *map, u32 reg, u8 val) { u8 bank_high = (reg >> 24) & 0xff; u8 bank_low = (reg >> 16) & 0xff; u16 reg_addr = reg & 0xffff; int ret = 0; /* For writing a register with 32 bit address, First set the bank * address by writing to two BANK address registers. Then access * the register using 16LSB bits. */ ret = regmap_write(map, OV490_BANK_HIGH, bank_high); if (!ret) ret = regmap_write(map, OV490_BANK_LOW, bank_low); if (!ret) ret = regmap_write(map, reg_addr, val); return ret; } static int ov490_reg_read32(struct regmap *map, u32 reg, u8 *val) { u8 bank_high = (reg >> 24) & 0xff; u8 bank_low = (reg >> 16) & 0xff; u16 reg_addr = reg & 0xffff; int ret = 0; u32 tval = 0; /* * For reading a register with 32 bit address, First set the bank * address by writing to two BANK address registers. Then access * the register using 16LSB bits. */ ret = regmap_write(map, OV490_BANK_HIGH, bank_high); if (!ret) ret = regmap_write(map, OV490_BANK_LOW, bank_low); if (!ret) ret = regmap_read(map, reg_addr, &tval); *val = (u8)tval; return ret; } static int ov490_host_control_set(struct regmap *map, u8 host_cmd, u8 *param, u16 number) { int i, ret; u8 status = 0; /* Host reset OV490_status_register */ ret = ov490_reg_write32(map, OV490_STATUS_ADDR, 0); if (ret) return ret; for (i = 0; i < number; i++) { ret = ov490_reg_write32(map, OV490_HOST_CMD_PARA_ADDR + i, *(param + i)); if (ret) return ret; } ret = ov490_reg_write32(map, OV490_HOST_INT_ADDR, host_cmd); if (ret) return ret; for (i = 500; i && status != OV490_STATUS_FINISH; i--) { ret = ov490_reg_read32(map, OV490_STATUS_ADDR, &status); if (ret) return ret; usleep_range(500, 1000); } if (!i) return -ETIMEDOUT; return 0; } static int __maybe_unused ov490_host_control_get(struct regmap *map, u8 host_cmd, u8 *param, u16 number) { int i, ret; u8 status = 0; /* Host reset OV490_status_register */ ret = ov490_reg_write32(map, OV490_STATUS_ADDR, 0); if (ret) return ret; ret = ov490_reg_write32(map, OV490_HOST_INT_ADDR, host_cmd); if (ret) return ret; for (i = 500; i && status != OV490_STATUS_FINISH; i--) { ret = ov490_reg_read32(map, OV490_STATUS_ADDR, &status); if (ret) return ret; usleep_range(500, 1000); } if (!i) return -ETIMEDOUT; for (i = 0; i < number; i++) { ret = ov490_reg_read32(map, OV490_HOST_CMD_PARA_ADDR + i, (param + i)); if (ret) return ret; } return 0; } static int ov490_get_fw_version(struct regmap *map, u16 *id) { u8 hi, lo; int ret; ret = ov490_reg_read32(map, OV490_FW_VER_HIGH, &hi); if (ret) return ret; ret = ov490_reg_read32(map, OV490_FW_VER_LOW, &lo); if (ret) return ret; *id = hi << 8 | lo; return 0; } /* Start/Stop streaming from the device */ static int ov490_s_stream(struct v4l2_subdev *sd, int enable) { struct i2c_client *client = v4l2_get_subdevdata(sd); struct ov490_priv *priv = to_ov490(client); struct regmap *map = priv->regmap; int ret, val; u8 streaming; /* mutex_lock(&ov490_lock); ret = ov490_init_gpios(client); if (ret) { dev_err(&client->dev, "Failed to request gpios"); goto unlock; } if (!enable) { streaming = 0; /* Stop Streaming / ret = ov490_host_control_set(map, OV490_CMD_STREAMING_CTRL, &streaming, 1); if (ret) goto unlock; ret = ov490_reg_write32(map, OV490_MIPI_TX_LANE_CTRL0, 0xa0); if (ret) goto unlock; /* Put MIPI_TX in reset ret = ov490_reg_write32(map, OV490_SC_RESET1, 0x80); goto unlock; } /* Take MIPI_TX out of reset ret = ov490_reg_write32(map, OV490_SC_RESET1, 0x00); if (ret) goto unlock; ret = ov490_reg_write32(map, OV490_MIPI_TX_LANE_CTRL0, 0x80); if (ret) goto unlock; /* Initialize slave ret = ov490_host_control_set(map, OV490_CMD_INIT_CTRL, ov490_init_param, ARRAY_SIZE(ov490_init_param)); if (ret) goto unlock; ret = ov490_reg_write32(map, OV490_IMAGE0_CTRL, OV490_IMAGE0_BYTE_INVERT | OV490_IMAGE0_BYTE_SEQUENCE_1 | OV490_IMAGE0_FORMAT_3X12_RAW); if (ret) goto unlock; /* Set number of data lane to use val = priv->num_lanes == 2 ? 0x03 : priv->num_lanes == 4 ? 0x0F : 0x0F; ret = ov490_reg_write32(map, OV490_MIPI_TX_LANE_CTRL2, val); if (ret) goto unlock; /* Start Streaming streaming = 0x1; ret = ov490_host_control_set(map, OV490_CMD_STREAMING_CTRL, &streaming, 1); unlock: mutex_unlock(&ov490_lock); */ return ret; } static int ov490_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *cfg, struct v4l2_subdev_format *fmt) { struct i2c_client *client = v4l2_get_subdevdata(sd); struct ov490_priv *priv = to_ov490(client); struct v4l2_mbus_framefmt *mf = &fmt->format; mf->width = priv->width; mf->height = priv->height; mf->code = priv->cfmt->code; mf->colorspace = priv->cfmt->colorspace; mf->field = V4L2_FIELD_NONE; return 0; } /* Fixed format - no configurability */ static int ov490_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *cfg, struct v4l2_subdev_format *fmt) { struct i2c_client *client = v4l2_get_subdevdata(sd); struct ov490_priv *priv = to_ov490(client); struct v4l2_mbus_framefmt *mf = &fmt->format; mf->width = priv->width; mf->height = priv->height; mf->code = priv->cfmt->code; mf->colorspace = priv->cfmt->colorspace; mf->field = V4L2_FIELD_NONE; return 0; } static int ov490_enum_code(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *cfg, struct v4l2_subdev_mbus_code_enum *code) { struct i2c_client *client = v4l2_get_subdevdata(sd); struct ov490_priv *priv = to_ov490(client); if (code->index >= ARRAY_SIZE(ov490_cfmts)) return -EINVAL; code->code = ov490_cfmts[0].code; dev_info(&client->dev, "enum code set!"); return 0; } static int ov490_enum_size(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *cfg, struct v4l2_subdev_frame_size_enum *fse) { int cam_width[] = { OV490_MAX_WIDTH }; int cam_height[] = { OV490_MAX_HEIGHT }; if (fse->index >= ARRAY_SIZE(cam_width)) return -EINVAL; fse->min_width = cam_width[fse->index]; fse->max_width = fse->min_width; fse->min_height = cam_height[fse->index]; fse->max_height = fse->min_height; return 0; } static int ov490_s_ctrl(struct v4l2_ctrl *ctrl) { struct v4l2_subdev *sd = ctrl_to_sd(ctrl); struct i2c_client *client = v4l2_get_subdevdata(sd); /* If the board has programmable pixel clock, set it here */ if (ctrl->id == V4L2_CID_PIXEL_RATE) dev_info(&client->dev, "Pixel rate set to %d\n", ctrl->val); return 0; } static int ov490_init_gpios(struct i2c_client *client) { struct ov490_priv *priv = to_ov490(client); int ret = 0; /* Request the gpio lines and set the values * then release them so that other drivers can use them * This allows changing common board muxes which are * controlled by multiple drivers */ priv->mux_gpios = gpiod_get_array(&client->dev, "mux", GPIOD_OUT_HIGH); if (IS_ERR(priv->mux_gpios)) goto done; gpiod_put_array(priv->mux_gpios); done: return ret; } static int ov490_video_probe(struct i2c_client *client) { struct ov490_priv *priv = i2c_get_clientdata(client); u32 pid, ver; int ret; u16 version; /* check and show product ID and manufacturer ID */ /* ret = regmap_read(priv->regmap, OV490_PID, &pid); if (ret) return ret; ret = regmap_read(priv->regmap, OV490_VER, &ver); if (ret) return ret; if (OV490_VERSION(pid, ver) != OV490_VERSION_REG) { dev_err(&client->dev, "Product ID error %02x:%02x\n", pid, ver); return -ENODEV; } dev_info(&client->dev, "ov490 Product ID %02x Manufacturer ID %02x\n", pid, ver); ret = ov490_get_fw_version(priv->regmap, &version); if (ret) return ret; */ dev_info(&client->dev, "lte80 driver registered"); return 0; } static const struct v4l2_subdev_video_ops ov490_video_ops = { .s_stream = ov490_s_stream, }; static const struct v4l2_subdev_core_ops ov490_core_ops = { .log_status = v4l2_ctrl_subdev_log_status, .subscribe_event = v4l2_ctrl_subdev_subscribe_event, .unsubscribe_event = v4l2_event_subdev_unsubscribe, }; static const struct v4l2_subdev_pad_ops ov490_pad_ops = { .enum_mbus_code = ov490_enum_code, .enum_frame_size = ov490_enum_size, .get_fmt = ov490_get_fmt, .set_fmt = ov490_set_fmt, }; static const struct v4l2_subdev_ops ov490_subdev_ops = { .video = &ov490_video_ops, .core = &ov490_core_ops, .pad = &ov490_pad_ops, }; static const struct v4l2_ctrl_ops ov490_ctrl_ops = { .s_ctrl = ov490_s_ctrl, }; static const struct regmap_config ov490_regmap_config = { .reg_bits = 16, .val_bits = 8, }; /* * i2c_driver function */ static int ov490_of_probe(struct i2c_client *client, struct device_node *node) { struct ov490_priv *priv = to_ov490(client); struct v4l2_fwnode_endpoint endpoint = {}; struct device_node *ep; int num_lanes = 0; ep = of_graph_get_next_endpoint(node, NULL); if (ep) { v4l2_fwnode_endpoint_parse(of_fwnode_handle(ep), &endpoint); if (endpoint.bus_type == V4L2_MBUS_PARALLEL) { dev_info(&client->dev, "parallel bus found!\n"); } else { dev_err(&client->dev, "Endpoint bus is not CSI bus!"); } } dev_info(&client->dev, "Using %d data lanes\n", priv->num_lanes); return 0; } static int ov490_probe(struct i2c_client *client, const struct i2c_device_id *did) { struct device_node *node = client->dev.of_node; struct v4l2_ctrl_handler *hdl; struct ov490_priv *priv; struct v4l2_subdev *sd; int ret = 0; priv = devm_kzalloc(&client->dev, sizeof(*priv), GFP_KERNEL); if (!priv) return -ENOMEM; i2c_set_clientdata(client, priv); //priv->num_lanes = 4; priv->cfmt = &ov490_cfmts[0]; priv->width = OV490_MAX_WIDTH; priv->height = OV490_MAX_HEIGHT; /* priv->regmap = devm_regmap_init_i2c(client, &ov490_regmap_config); if (IS_ERR(priv->regmap)) return PTR_ERR(priv->regmap);*/ ret = ov490_video_probe(client); if (ret) goto err; ret = ov490_of_probe(client, node); if (ret) goto err; sd = &priv->subdev; v4l2_i2c_subdev_init(sd, client, &ov490_subdev_ops); hdl = &priv->handler; sd->ctrl_handler = hdl; v4l2_ctrl_handler_init(hdl, 1); /* priv->pixel_rate = v4l2_ctrl_new_std(hdl, &ov490_ctrl_ops, V4L2_CID_PIXEL_RATE, 1, INT_MAX, 1, OV490_PIXEL_RATE_PER_LANE * priv->num_lanes); if (hdl->error) { dev_err(&client->dev, "Failed to add controls"); ret = hdl->error; goto err; } ret = ov490_init_gpios(client); if (ret) { dev_err(&client->dev, "Failed to request gpios"); goto err; } */ sd->dev = &client->dev; ret = v4l2_async_register_subdev(sd); err: return ret; } static int ov490_remove(struct i2c_client *client) { struct ov490_priv *priv = i2c_get_clientdata(client); v4l2_device_unregister_subdev(&priv->subdev); v4l2_ctrl_handler_free(&priv->handler); return 0; } static const struct i2c_device_id ov490_id[] = { { "ov490", 0 }, { } }; MODULE_DEVICE_TABLE(i2c, ov490_id); static const struct of_device_id ov490_dt_id[] = { { .compatible = "ovti,ov490", }, { } }; MODULE_DEVICE_TABLE(of, ov490_dt_id); static struct i2c_driver ov490_i2c_driver = { .driver = { .name = "ov490", .of_match_table = ov490_dt_id, }, .probe = ov490_probe, .remove = ov490_remove, .id_table = ov490_id, }; module_i2c_driver(ov490_i2c_driver); MODULE_DESCRIPTION("SoC Camera driver for OmniVision OV490"); MODULE_AUTHOR("Nikhil Devshatwar <nikhil.nd@ti.com>"); MODULE_LICENSE("GPL v2");
[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.19.79-g77dfab56c6 (root@krishna-desktop) (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #1 SMP PREEMPT Fri Oct 16 18:07:20 IST 2020 [ 0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7), cr=30c5387d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache [ 0.000000] OF: fdt: Machine model: TI AM5728 EVM [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] efi: Getting EFI parameters from FDT: [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created CMA memory pool at 0x0000000095800000, size 56 MiB [ 0.000000] OF: reserved mem: initialized node ipu2-memory@95800000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created CMA memory pool at 0x0000000099000000, size 64 MiB [ 0.000000] OF: reserved mem: initialized node dsp1-memory@99000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created DMA memory pool at 0x000000009d000000, size 32 MiB [ 0.000000] OF: reserved mem: initialized node ipu1-memory@9d000000, compatible id shared-dma-pool [ 0.000000] Reserved memory: created CMA memory pool at 0x000000009f000000, size 8 MiB [ 0.000000] OF: reserved mem: initialized node dsp2-memory@9f000000, compatible id shared-dma-pool [ 0.000000] cma: Reserved 24 MiB at 0x00000000fe400000 [ 0.000000] OMAP4: Map 0x00000000ffd00000 to (ptrval) for dram barrier [ 0.000000] On node 0 totalpages: 465920 [ 0.000000] DMA zone: 1728 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 139008 pages, LIFO batch:31 [ 0.000000] HighMem zone: 326912 pages, LIFO batch:63 [ 0.000000] DRA752 ES2.0 [ 0.000000] random: get_random_bytes called from start_kernel+0xb4/0x470 with crng_init=0 [ 0.000000] percpu: Embedded 15 pages/cpu s32396 r8192 d20852 u61440 [ 0.000000] pcpu-alloc: s32396 r8192 d20852 u61440 alloc=15*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 464192 [ 0.000000] Kernel command line: console=ttyS2,115200n8 root=PARTUUID=c022d921-02 rw rootfstype=ext4 rootwait [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Memory: 1672964K/1863680K available (10240K kernel code, 335K rwdata, 2800K rodata, 2048K init, 269K bss, 35068K reserved, 155648K cma-reserved, 1283072K highmem) [ 0.000000] Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0xf0800000 - 0xff800000 ( 240 MB) lowmem : 0xc0000000 - 0xf0000000 ( 768 MB) pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) modules : 0xbf000000 - 0xbfe00000 ( 14 MB) .text : 0x(ptrval) - 0x(ptrval) (12256 kB) .init : 0x(ptrval) - 0x(ptrval) (2048 kB) .data : 0x(ptrval) - 0x(ptrval) ( 336 kB) .bss : 0x(ptrval) - 0x(ptrval) ( 270 kB) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] Tasks RCU enabled. [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] GIC: Using split EOI/Deactivate mode [ 0.000000] OMAP clockevent source: timer1 at 32786 Hz [ 0.000000] arch_timer: cp15 timer(s) running at 6.14MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x16af5adb9, max_idle_ns: 440795202250 ns [ 0.000005] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 4398046511023ns [ 0.000018] Switching to timer-based delay loop, resolution 162ns [ 0.000295] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns [ 0.000305] OMAP clocksource: 32k_counter at 32768 Hz [ 0.000821] Console: colour dummy device 80x30 [ 0.000865] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.29 BogoMIPS (lpj=61475) [ 0.000883] pid_max: default: 32768 minimum: 301 [ 0.001009] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.001024] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.001589] CPU: Testing write buffer coherency: ok [ 0.001627] CPU0: Spectre v2: using ICIALLU workaround [ 0.001844] /cpus/cpu@0 missing clock-frequency property [ 0.001866] /cpus/cpu@1 missing clock-frequency property [ 0.001879] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000 [ 0.059871] Setting up static identity map for 0x80200000 - 0x80200060 [ 0.079875] rcu: Hierarchical SRCU implementation. [ 0.100062] EFI services will not be available. [ 0.119926] smp: Bringing up secondary CPUs ... [ 0.200300] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001 [ 0.200306] CPU1: Spectre v2: using ICIALLU workaround [ 0.200429] smp: Brought up 1 node, 2 CPUs [ 0.200440] SMP: Total of 2 processors activated (24.59 BogoMIPS). [ 0.200449] CPU: All CPU(s) started in HYP mode. [ 0.200457] CPU: Virtualization extensions available. [ 0.201017] devtmpfs: initialized [ 0.221101] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0 [ 0.221362] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.221381] futex hash table entries: 512 (order: 3, 32768 bytes) [ 0.224011] pinctrl core: initialized pinctrl subsystem [ 0.224536] DMI not present or invalid. [ 0.224815] NET: Registered protocol family 16 [ 0.225960] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.226909] omap_hwmod: l3_main_2 using broken dt data from ocp [ 0.330224] wkupaon_cm:clk:0068:0: failed to disable [ 0.429361] cpuidle: using governor ladder [ 0.429397] cpuidle: using governor menu [ 0.440472] gpio gpiochip0: (gpio-0-31): added GPIO chardev (254:0) [ 0.440544] gpiochip_setup_dev: registered GPIOs 0 to 31 on device: gpiochip0 (gpio-0-31) [ 0.440586] OMAP GPIO hardware version 0.1 [ 0.441219] gpio gpiochip1: (gpio-32-63): added GPIO chardev (254:1) [ 0.441290] gpiochip_setup_dev: registered GPIOs 32 to 63 on device: gpiochip1 (gpio-32-63) [ 0.441924] gpio gpiochip2: (gpio-64-95): added GPIO chardev (254:2) [ 0.441990] gpiochip_setup_dev: registered GPIOs 64 to 95 on device: gpiochip2 (gpio-64-95) [ 0.442623] gpio gpiochip3: (gpio-96-127): added GPIO chardev (254:3) [ 0.442688] gpiochip_setup_dev: registered GPIOs 96 to 127 on device: gpiochip3 (gpio-96-127) [ 0.443317] gpio gpiochip4: (gpio-128-159): added GPIO chardev (254:4) [ 0.443382] gpiochip_setup_dev: registered GPIOs 128 to 159 on device: gpiochip4 (gpio-128-159) [ 0.444036] gpio gpiochip5: (gpio-160-191): added GPIO chardev (254:5) [ 0.444108] gpiochip_setup_dev: registered GPIOs 160 to 191 on device: gpiochip5 (gpio-160-191) [ 0.444730] gpio gpiochip6: (gpio-192-223): added GPIO chardev (254:6) [ 0.444796] gpiochip_setup_dev: registered GPIOs 192 to 223 on device: gpiochip6 (gpio-192-223) [ 0.445432] gpio gpiochip7: (gpio-224-255): added GPIO chardev (254:7) [ 0.445497] gpiochip_setup_dev: registered GPIOs 224 to 255 on device: gpiochip7 (gpio-224-255) [ 0.466855] No ATAGs? [ 0.466929] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. [ 0.466944] hw-breakpoint: maximum watchpoint size is 8 bytes. [ 0.467799] OMAP DMA hardware revision 0.0 [ 0.479649] edma 43300000.edma: memcpy is disabled [ 0.483066] edma 43300000.edma: TI EDMA DMA engine driver [ 0.490189] omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver (LinkedList1/2/3 supported) [ 0.490619] of_get_named_gpiod_flags: parsed 'gpio' property of node '/fixedregulator-mmcwl[0]' - status (0) [ 0.490906] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-com_3v6[0]' [ 0.491330] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-main_12v0[0]' [ 0.491559] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-evm_5v0[0]' [ 0.491583] evm_5v0: supplied by main_12v0 [ 0.491840] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-vdd_3v3[0]' [ 0.491981] com_3v6: supplied by evm_5v0 [ 0.492143] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator-aic_dvdd[0]' [ 0.492401] of_get_named_gpiod_flags: parsed 'gpio' property of node '/fixedregulator-vtt[0]' - status (0) [ 0.495128] omap-iommu 40d01000.mmu: 40d01000.mmu registered [ 0.495314] omap-iommu 40d02000.mmu: 40d02000.mmu registered [ 0.495562] omap-iommu 58882000.mmu: 58882000.mmu registered [ 0.495796] omap-iommu 55082000.mmu: 55082000.mmu registered [ 0.496178] omap-iommu 41501000.mmu: 41501000.mmu registered [ 0.496356] omap-iommu 41502000.mmu: 41502000.mmu registered [ 0.496647] iommu: Adding device 58820000.ipu to group 1 [ 0.496732] iommu: Adding device 55020000.ipu to group 2 [ 0.496865] iommu: Adding device 40800000.dsp to group 0 [ 0.497105] iommu: Adding device 41000000.dsp to group 3 [ 0.498388] SCSI subsystem initialized [ 0.499461] palmas 0-0058: Irq flag is 0x00000008 [ 0.523380] palmas 0-0058: Muxing GPIO 2f, PWM 0, LED 0 [ 0.524965] SMPS12: supplied by regulator-dummy [ 0.526569] SMPS3: supplied by regulator-dummy [ 0.528136] SMPS45: supplied by regulator-dummy [ 0.529864] SMPS6: supplied by regulator-dummy [ 0.531219] SMPS7: supplied by regulator-dummy [ 0.532548] SMPS8: supplied by regulator-dummy [ 0.533750] SMPS9: supplied by regulator-dummy [ 0.534411] LDO1: supplied by regulator-dummy [ 0.534673] random: fast init done [ 0.551230] LDO2: supplied by regulator-dummy [ 0.571099] LDO3: supplied by regulator-dummy [ 0.591113] LDO4: supplied by regulator-dummy [ 0.611139] LDO5: supplied by regulator-dummy [ 0.611811] LDO6: supplied by regulator-dummy [ 0.612477] LDO7: supplied by regulator-dummy [ 0.613145] LDO8: supplied by regulator-dummy [ 0.613818] LDO9: supplied by regulator-dummy [ 0.631176] LDOLN: supplied by regulator-dummy [ 0.651189] LDOUSB: supplied by regulator-dummy [ 0.672808] gpiochip_find_base: found new base at 504 [ 0.672967] gpio gpiochip8: (48070000.i2c:tps659038@58:tps659038_gpio): added GPIO chardev (254:8) [ 0.673036] gpiochip_setup_dev: registered GPIOs 504 to 511 on device: gpiochip8 (48070000.i2c:tps659038@58:tps659038_gpio) [ 0.673604] omap_i2c 48070000.i2c: bus 0 rev0.12 at 400 kHz [ 0.674226] omap_i2c 48060000.i2c: bus 2 rev0.12 at 400 kHz [ 0.674719] omap_i2c 4807c000.i2c: bus 4 rev0.12 at 50 kHz [ 0.674930] media: Linux media interface: v0.10 [ 0.674973] videodev: Linux video capture interface: v2.00 [ 0.675046] pps_core: LinuxPPS API ver. 1 registered [ 0.675055] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.675076] PTP clock support registered [ 0.675105] EDAC MC: Ver: 3.0.0 [ 0.675922] omap-mailbox 48840000.mailbox: omap mailbox rev 0x400 [ 0.676172] omap-mailbox 48842000.mailbox: omap mailbox rev 0x400 [ 0.690775] Advanced Linux Sound Architecture Driver Initialized. [ 0.691563] clocksource: Switched to clocksource arch_sys_counter [ 0.699962] NET: Registered protocol family 2 [ 0.700542] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes) [ 0.700570] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.700843] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.700971] TCP: Hash tables configured (established 8192 bind 8192) [ 0.701045] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.701079] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.701212] NET: Registered protocol family 1 [ 0.721654] RPC: Registered named UNIX socket transport module. [ 0.721664] RPC: Registered udp transport module. [ 0.721673] RPC: Registered tcp transport module. [ 0.721681] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.721693] PCI: CLS 0 bytes, default 64 [ 0.722767] hw perfevents: no interrupt-affinity property for /pmu, guessing. [ 0.722957] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available [ 0.723959] Initialise system trusted keyrings [ 0.724087] workingset: timestamp_bits=14 max_order=19 bucket_order=5 [ 0.729214] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.739710] NFS: Registering the id_resolver key type [ 0.739740] Key type id_resolver registered [ 0.739749] Key type id_legacy registered [ 0.739789] ntfs: driver 2.1.32 [Flags: R/O]. [ 0.741447] Key type asymmetric registered [ 0.741459] Asymmetric key parser 'x509' registered [ 0.741510] bounce: pool size: 64 pages [ 0.741544] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245) [ 0.741582] io scheduler noop registered [ 0.741591] io scheduler deadline registered [ 0.741688] io scheduler cfq registered (default) [ 0.741699] io scheduler mq-deadline registered [ 0.741709] io scheduler kyber registered [ 0.747695] pinctrl-single 4a003400.pinmux: 282 pins, size 1128 [ 0.752408] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.1 [ 0.752579] dra7-pcie 51000000.pcie: GPIO lookup for consumer (null) [ 0.752587] dra7-pcie 51000000.pcie: using device tree for GPIO lookup [ 0.752620] of_get_named_gpiod_flags: parsed 'gpios' property of node '/ocp/axi@0/pcie@51000000[0]' - status (0) [ 0.752653] gpio gpiochip1: Persistence not supported for GPIO 8 [ 0.752669] dra7-pcie 51000000.pcie: WA for Errata i870 not applied [ 0.752774] dra7-pcie 51000000.pcie: host bridge /ocp/axi@0/pcie@51000000 ranges: [ 0.752817] dra7-pcie 51000000.pcie: IO 0x20003000..0x20012fff -> 0x00000000 [ 0.752845] dra7-pcie 51000000.pcie: MEM 0x20013000..0x2fffffff -> 0x20013000 [ 1.753109] dra7-pcie 51000000.pcie: Phy link never came up [ 1.753247] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00 [ 1.753261] pci_bus 0000:00: root bus resource [bus 00-ff] [ 1.753273] pci_bus 0000:00: root bus resource [io 0x0000-0xffff] [ 1.753284] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff] [ 1.753319] pci 0000:00:00.0: [104c:8888] type 01 class 0x060400 [ 1.753353] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff 64bit] [ 1.753417] pci 0000:00:00.0: supports D1 [ 1.753425] pci 0000:00:00.0: PME# supported from D0 D1 D3hot [ 1.759896] PCI: bus0: Fast back to back transfers disabled [ 1.766084] PCI: bus1: Fast back to back transfers enabled [ 1.766129] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff 64bit] [ 1.766150] pci 0000:00:00.0: PCI bridge to [bus 01-ff] [ 1.766478] pcieport 0000:00:00.0: Signaling PME with IRQ 175 [ 1.766609] pcieport 0000:00:00.0: AER enabled with IRQ 175 [ 1.767490] pwm-backlight backlight: GPIO lookup for consumer enable [ 1.767497] pwm-backlight backlight: using device tree for GPIO lookup [ 1.767513] of_get_named_gpiod_flags: can't parse 'enable-gpios' property of node '/backlight[0]' [ 1.767527] of_get_named_gpiod_flags: can't parse 'enable-gpio' property of node '/backlight[0]' [ 1.767536] pwm-backlight backlight: using lookup tables for GPIO lookup [ 1.767544] pwm-backlight backlight: No GPIO consumer enable found [ 1.767583] pwm-backlight backlight: backlight supply power not found, using dummy regulator [ 1.767649] pwm-backlight backlight: Linked as a consumer to regulator.0 [ 1.771011] vdd_3v3: supplied by regen1 [ 1.771259] aic_dvdd_fixed: supplied by vdd_3v3 [ 1.771329] vtt_fixed: supplied by smps3 [ 1.822011] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled [ 1.825734] console [ttyS2] disabled [ 1.825787] 48020000.serial: ttyS2 at MMIO 0x48020000 (irq = 45, base_baud = 3000000) is a 8250 [ 2.938811] console [ttyS2] enabled [ 2.943268] 48422000.serial: ttyS7 at MMIO 0x48422000 (irq = 46, base_baud = 3000000) is a 8250 [ 2.954245] omap_rng 48090000.rng: Random Number Generator ver. 20 [ 2.954457] hwrng: no data available [ 2.964241] omapdss_dss 58000000.dss: Linked as a consumer to regulator.24 [ 2.971327] omapdss_dss 58000000.dss: Dropping the link to regulator.24 [ 2.979321] tpd12s015 encoder: GPIO lookup for consumer (null) [ 2.979329] tpd12s015 encoder: using device tree for GPIO lookup [ 2.979358] of_get_named_gpiod_flags: parsed 'gpios' property of node '/encoder[0]' - status (0) [ 2.979375] gpio gpiochip6: Persistence not supported for GPIO 10 [ 2.979385] tpd12s015 encoder: GPIO lookup for consumer (null) [ 2.979391] tpd12s015 encoder: using device tree for GPIO lookup [ 2.979415] of_get_named_gpiod_flags: parsed 'gpios' property of node '/encoder[1]' - status (0) [ 2.979428] gpio gpiochip1: Persistence not supported for GPIO 30 [ 2.979437] tpd12s015 encoder: GPIO lookup for consumer (null) [ 2.979443] tpd12s015 encoder: using device tree for GPIO lookup [ 2.979468] of_get_named_gpiod_flags: parsed 'gpios' property of node '/encoder[2]' - status (0) [ 2.979480] gpio gpiochip6: Persistence not supported for GPIO 12 [ 2.980249] connector-hdmi connector: GPIO lookup for consumer hpd [ 2.980256] connector-hdmi connector: using device tree for GPIO lookup [ 2.980272] of_get_named_gpiod_flags: can't parse 'hpd-gpios' property of node '/connector[0]' [ 2.980285] of_get_named_gpiod_flags: can't parse 'hpd-gpio' property of node '/connector[0]' [ 2.980294] connector-hdmi connector: using lookup tables for GPIO lookup [ 2.980302] connector-hdmi connector: No GPIO consumer hpd found [ 2.981420] panel-simple display: display supply power not found, using dummy regulator [ 2.989545] panel-simple display: Linked as a consumer to regulator.0 [ 2.996070] panel-simple display: GPIO lookup for consumer enable [ 2.996078] panel-simple display: using device tree for GPIO lookup [ 2.996105] of_get_named_gpiod_flags: parsed 'enable-gpios' property of node '/display[0]' - status (0) [ 2.996117] gpio gpiochip1: Persistence not supported for GPIO 5 [ 3.007435] brd: module loaded [ 3.016852] loop: module loaded [ 3.024529] mdio_bus fixed-0: GPIO lookup for consumer reset [ 3.024538] mdio_bus fixed-0: using lookup tables for GPIO lookup [ 3.024545] mdio_bus fixed-0: No GPIO consumer reset found [ 3.024570] libphy: Fixed MDIO Bus: probed [ 3.032533] mdio_bus 48485000.mdio: GPIO lookup for consumer reset [ 3.032541] mdio_bus 48485000.mdio: using device tree for GPIO lookup [ 3.032559] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@48484000/mdio@48485000[0]' [ 3.032574] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/ethernet@48484000/mdio@48485000[0]' [ 3.032583] mdio_bus 48485000.mdio: using lookup tables for GPIO lookup [ 3.032591] mdio_bus 48485000.mdio: No GPIO consumer reset found [ 3.091594] davinci_mdio 48485000.mdio: davinci mdio revision 1.6, bus freq 1000000 [ 3.099290] libphy: 48485000.mdio: probed [ 3.115450] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@48484000/mdio@48485000/ethernet-phy@1[0]' [ 3.117726] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@48484000/mdio@48485000/ethernet-phy@2[0]' [ 3.117903] davinci_mdio 48485000.mdio: phy[1]: device 48485000.mdio:01, driver Micrel KSZ9031 Gigabit PHY [ 3.127626] davinci_mdio 48485000.mdio: phy[2]: device 48485000.mdio:02, driver Micrel KSZ9031 Gigabit PHY [ 3.137914] cpsw 48484000.ethernet: Detected MACID = 7c:38:66:80:2b:70 [ 3.144530] cpsw 48484000.ethernet: initialized cpsw ale version 1.4 [ 3.150914] cpsw 48484000.ethernet: ALE Table size 1024 [ 3.156225] cpsw 48484000.ethernet: cpts: overflow check period 500 (jiffies) [ 3.164273] cpsw 48484000.ethernet: cpsw: Detected MACID = 7c:38:66:80:2b:71 [ 3.172617] i2c /dev entries driver [ 3.178194] gpio-fan gpio_fan: GPIO lookup for consumer alarm [ 3.178202] gpio-fan gpio_fan: using device tree for GPIO lookup [ 3.178220] of_get_named_gpiod_flags: can't parse 'alarm-gpios' property of node '/gpio_fan[0]' [ 3.178234] of_get_named_gpiod_flags: can't parse 'alarm-gpio' property of node '/gpio_fan[0]' [ 3.178243] gpio-fan gpio_fan: using lookup tables for GPIO lookup [ 3.178250] gpio-fan gpio_fan: No GPIO consumer alarm found [ 3.178263] gpio-fan gpio_fan: GPIO lookup for consumer (null) [ 3.178270] gpio-fan gpio_fan: using device tree for GPIO lookup [ 3.178294] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio_fan[0]' - status (0) [ 3.178302] no flags found for (null) [ 3.179487] gpio-fan gpio_fan: GPIO fan initialized [ 3.185596] tmp102 0-0048: initialized [ 3.192494] cpu cpu0: Linked as a consumer to regulator.8 [ 3.198000] cpu cpu0: Linked as a consumer to regulator.31 [ 3.205219] sdhci: Secure Digital Host Controller Interface driver [ 3.211429] sdhci: Copyright(c) Pierre Ossman [ 3.216487] sdhci-pltfm: SDHCI platform and OF driver helper [ 3.223194] sdhci-omap 4809c000.mmc: GPIO lookup for consumer cd [ 3.223200] sdhci-omap 4809c000.mmc: using device tree for GPIO lookup [ 3.223219] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp/mmc@4809c000[0]' - status (0) [ 3.223249] gpio gpiochip5: Persistence not supported for GPIO 27 [ 3.223257] omap_gpio 4805d000.gpio: Could not set line 27 debounce to 200000 microseconds (-22) [ 3.232111] sdhci-omap 4809c000.mmc: Got CD GPIO [ 3.236749] sdhci-omap 4809c000.mmc: GPIO lookup for consumer wp [ 3.236754] sdhci-omap 4809c000.mmc: using device tree for GPIO lookup [ 3.236765] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@4809c000[0]' [ 3.236774] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@4809c000[0]' [ 3.236780] sdhci-omap 4809c000.mmc: using lookup tables for GPIO lookup [ 3.236785] sdhci-omap 4809c000.mmc: No GPIO consumer wp found [ 3.236917] sdhci-omap 4809c000.mmc: Linked as a consumer to regulator.30 [ 3.243954] sdhci-omap 4809c000.mmc: Linked as a consumer to regulator.15 [ 3.250821] sdhci-omap 4809c000.mmc: Dropping the link to regulator.15 [ 3.257461] sdhci-omap 4809c000.mmc: Linked as a consumer to regulator.5 [ 3.264387] sdhci-omap 4809c000.mmc: Linked as a consumer to regulator.15 [ 3.271320] sdhci-omap 4809c000.mmc: no pinctrl state for ddr_3_3v mode [ 3.304368] mmc0: SDHCI controller on 4809c000.mmc [4809c000.mmc] using ADMA [ 3.311898] sdhci-omap 480b4000.mmc: GPIO lookup for consumer wp [ 3.311905] sdhci-omap 480b4000.mmc: using device tree for GPIO lookup [ 3.311965] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@480b4000[0]' [ 3.311980] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@480b4000[0]' [ 3.311989] sdhci-omap 480b4000.mmc: using lookup tables for GPIO lookup [ 3.311997] sdhci-omap 480b4000.mmc: No GPIO consumer wp found [ 3.312368] sdhci-omap 480b4000.mmc: Linked as a consumer to regulator.5 [ 3.319181] sdhci-omap 480b4000.mmc: Dropping the link to regulator.5 [ 3.325871] sdhci-omap 480b4000.mmc: Linked as a consumer to regulator.5 [ 3.358915] mmc1: SDHCI controller on 480b4000.mmc [480b4000.mmc] using ADMA [ 3.366521] sdhci-omap 480ad000.mmc: GPIO lookup for consumer wp [ 3.366528] sdhci-omap 480ad000.mmc: using device tree for GPIO lookup [ 3.366542] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@480ad000[0]' [ 3.366555] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@480ad000[0]' [ 3.366562] sdhci-omap 480ad000.mmc: using lookup tables for GPIO lookup [ 3.366569] sdhci-omap 480ad000.mmc: No GPIO consumer wp found [ 3.366742] sdhci-omap 480ad000.mmc: Linked as a consumer to regulator.1 [ 3.373634] sdhci-omap 480ad000.mmc: Dropping the link to regulator.1 [ 3.380195] sdhci-omap 480ad000.mmc: Linked as a consumer to regulator.2 [ 3.387169] sdhci-omap 480ad000.mmc: Linked as a consumer to regulator.1 [ 3.394024] sdhci-omap 480ad000.mmc: no pinctrl state for sdr104 mode [ 3.400619] sdhci-omap 480ad000.mmc: no pinctrl state for ddr50 mode [ 3.407164] sdhci-omap 480ad000.mmc: no pinctrl state for hs200_1_8v mode [ 3.421837] mmc0: host does not support reading read-only switch, assuming write-enable [ 3.434564] mmc0: new high speed SDHC card at address aaaa [ 3.440056] mmc2: SDHCI controller on 480ad000.mmc [480ad000.mmc] using PIO [ 3.447610] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led0[0]' - status (0) [ 3.447623] gpio gpiochip6: Persistence not supported for GPIO 9 [ 3.447627] no flags found for gpios [ 3.447712] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led1[0]' - status (0) [ 3.447724] gpio gpiochip6: Persistence not supported for GPIO 8 [ 3.447728] no flags found for gpios [ 3.447808] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led2[0]' - status (0) [ 3.447920] gpio gpiochip6: Persistence not supported for GPIO 14 [ 3.447925] no flags found for gpios [ 3.448026] of_get_named_gpiod_flags: parsed 'gpios' property of node '/leds/led3[0]' - status (0) [ 3.448037] gpio gpiochip6: Persistence not supported for GPIO 15 [ 3.448042] no flags found for gpios [ 3.448527] ledtrig-cpu: registered to indicate activity on CPUs [ 3.450734] mmcblk0: mmc0:aaaa SC16G 14.8 GiB [ 3.461420] NET: Registered protocol family 10 [ 3.470870] mmc1: new DDR MMC card at address 0001 [ 3.475840] mmcblk0: p1 p2 [ 3.476832] Segment Routing with IPv6 [ 3.482999] mmcblk1: mmc1:0001 S10004 3.56 GiB [ 3.483136] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver [ 3.487916] mmcblk1boot0: mmc1:0001 S10004 partition 1 4.00 MiB [ 3.493892] NET: Registered protocol family 17 [ 3.499879] mmcblk1boot1: mmc1:0001 S10004 partition 2 4.00 MiB [ 3.504131] Key type dns_resolver registered [ 3.514350] mmcblk1rpmb: mmc1:0001 S10004 partition 3 4.00 MiB, chardev (244:0) [ 3.514433] Registering SWP/SWPB emulation handler [ 3.526555] omap_voltage_late_init: Voltage driver support not added [ 3.527055] mmcblk1: p1 p2 p3 [ 3.532945] Power Management for TI OMAP4+ devices. [ 3.533505] Loading compiled-in X.509 certificates [ 3.563464] dmm 4e000000.dmm: workaround for errata i878 in use [ 3.570776] dmm 4e000000.dmm: initialized all PAT entries [ 3.576994] omapdss_dss 58000000.dss: Linked as a consumer to regulator.24 [ 3.584063] DSS: OMAP DSS rev 6.1 [ 3.588652] omapdss_hdmi5 58040000.encoder: Linked as a consumer to regulator.18 [ 3.596160] omapdss_hdmi5 58040000.encoder: Dropping the link to regulator.18 [ 3.603829] tpd12s015 encoder: GPIO lookup for consumer (null) [ 3.603834] tpd12s015 encoder: using device tree for GPIO lookup [ 3.603855] of_get_named_gpiod_flags: parsed 'gpios' property of node '/encoder[0]' - status (0) [ 3.603867] gpio gpiochip6: Persistence not supported for GPIO 10 [ 3.603874] tpd12s015 encoder: GPIO lookup for consumer (null) [ 3.603878] tpd12s015 encoder: using device tree for GPIO lookup [ 3.603896] of_get_named_gpiod_flags: parsed 'gpios' property of node '/encoder[1]' - status (0) [ 3.603905] gpio gpiochip1: Persistence not supported for GPIO 30 [ 3.603913] tpd12s015 encoder: GPIO lookup for consumer (null) [ 3.603918] tpd12s015 encoder: using device tree for GPIO lookup [ 3.603934] of_get_named_gpiod_flags: parsed 'gpios' property of node '/encoder[2]' - status (0) [ 3.603943] gpio gpiochip6: Persistence not supported for GPIO 12 [ 3.604492] omapdss_hdmi5 58040000.encoder: Linked as a consumer to regulator.18 [ 3.612250] omapdss_dss 58000000.dss: bound 58001000.dispc (ops dispc_component_ops) [ 3.620208] omapdss_dss 58000000.dss: bound 58040000.encoder (ops hdmi5_component_ops) [ 3.652164] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 3.658808] [drm] No driver support for vblank timestamp query. [ 3.667637] [drm] Enabling DMM ywrap scrolling [ 3.674661] Console: switching to colour frame buffer device 100x30 [ 3.683033] omapdrm omapdrm.0: fb0: omapdrm frame buffer device [ 3.689629] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 0 [ 3.697139] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio_keys/USER5[0]' - status (0) [ 3.697150] gpio gpiochip1: Persistence not supported for GPIO 20 [ 3.697237] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio_keys/USER4[0]' - status (0) [ 3.697246] gpio gpiochip1: Persistence not supported for GPIO 24 [ 3.697371] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio_keys/USER3[0]' - status (0) [ 3.697380] gpio gpiochip1: Persistence not supported for GPIO 28 [ 3.697466] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio_keys/USER2[0]' - status (0) [ 3.697475] gpio gpiochip1: Persistence not supported for GPIO 25 [ 3.697559] of_get_named_gpiod_flags: parsed 'gpios' property of node '/gpio_keys/USER1[0]' - status (0) [ 3.697567] gpio gpiochip1: Persistence not supported for GPIO 23 [ 3.697726] input: gpio_keys as /devices/platform/gpio_keys/input/input0 [ 3.705614] hctosys: unable to open rtc device (rtc0) [ 3.711302] ALSA device list: [ 3.714522] No soundcards found. [ 3.753076] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 3.761235] VFS: Mounted root (ext4 filesystem) on device 179:2. [ 3.777109] devtmpfs: mounted [ 3.781336] Freeing unused kernel memory: 2048K [ 3.786052] Run /sbin/init as init process [ 4.130955] systemd[1]: System time before build time, advancing clock. [ 4.165784] systemd[1]: systemd 239 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid) [ 4.187692] systemd[1]: Detected architecture arm. [ 4.234570] systemd[1]: Set hostname to <am57xx-evm>. [ 4.426788] systemd[1]: File /lib/systemd/system/systemd-journald.service:36 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling. [ 4.443986] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.) [ 4.665049] random: systemd: uninitialized urandom read (16 bytes read) [ 4.671741] systemd[1]: Reached target Remote File Systems. [ 4.702115] random: systemd: uninitialized urandom read (16 bytes read) [ 4.709162] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [ 4.751699] random: systemd: uninitialized urandom read (16 bytes read) [ 4.758849] systemd[1]: Listening on Journal Socket. [ 4.798297] systemd[1]: Mounting POSIX Message Queue File System... [ 4.832460] systemd[1]: Created slice User and Session Slice. [ 4.910256] random: crng init done [ 4.913720] random: 4 urandom warning(s) missed due to ratelimiting [ 5.056993] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) [ 5.341284] cmemk: loading out-of-tree module taints kernel. [ 5.347909] CMEMK module: reference Linux version 4.19.79 [ 5.355384] allocated heap buffer 0x40500000 of size 0x100000 [ 5.366566] cmemk initialized [ 5.378429] cryptodev: driver 1.9 loaded. [ 5.458508] usbcore: registered new interface driver usbfs [ 5.464949] usbcore: registered new interface driver hub [ 5.470361] usbcore: registered new device driver usb [ 5.492266] usbcore: registered new interface driver ftdi_sio [ 5.498080] usbserial: USB Serial support registered for FTDI USB Serial Device [ 6.242401] systemd-journald[108]: Received request to flush runtime journal from PID 1 [ 6.428884] omap-rproc 58820000.ipu: ignoring dependency for device, assuming no driver [ 6.455812] omap-rproc 58820000.ipu: ignoring dependency for device, assuming no driver [ 6.516821] omap-rproc 58820000.ipu: assigned reserved memory node ipu1-memory@9d000000 [ 6.548145] remoteproc remoteproc0: 58820000.ipu is available [ 6.605066] omap-rproc 55020000.ipu: ignoring dependency for device, assuming no driver [ 6.647493] omap-rproc 55020000.ipu: ignoring dependency for device, assuming no driver [ 6.661387] omap-rproc 55020000.ipu: assigned reserved memory node ipu2-memory@95800000 [ 6.704379] remoteproc remoteproc1: 55020000.ipu is available [ 6.711284] omap-rproc 40800000.dsp: ignoring dependency for device, assuming no driver [ 6.755641] omap-rproc 40800000.dsp: ignoring dependency for device, assuming no driver [ 6.771481] omap-rproc 40800000.dsp: assigned reserved memory node dsp1-memory@99000000 [ 6.799666] remoteproc remoteproc2: 40800000.dsp is available [ 6.839682] omap-rproc 41000000.dsp: ignoring dependency for device, assuming no driver [ 6.851515] omap-rproc 41000000.dsp: ignoring dependency for device, assuming no driver [ 6.879875] omap-rproc 41000000.dsp: assigned reserved memory node dsp2-memory@9f000000 [ 6.892079] remoteproc remoteproc3: 41000000.dsp is available [ 6.916289] rtc-ds1307 2-006f: SET TIME! [ 6.932452] rtc-ds1307 2-006f: got IRQ 187 [ 6.932762] rtc-ds1307 2-006f: read: 80 00 00 09 01 01 01 [ 6.932770] rtc-ds1307 2-006f: read secs=0, mins=0, hours=0, mday=1, mon=0, year=101, wday=0 [ 6.933819] rtc-ds1307 2-006f: mcp794xx_read_alarm, sec=0 min=0 hour=0 wday=0 mday=1 mon=0 enabled=0 polarity=0 irq=0 match=0 [ 6.934118] rtc-ds1307 2-006f: read: 80 00 00 09 01 01 01 [ 6.934125] rtc-ds1307 2-006f: read secs=0, mins=0, hours=0, mday=1, mon=0, year=101, wday=0 [ 6.934133] rtc rtc0: alarm rollover: year [ 6.934431] rtc-ds1307 2-006f: read: 80 00 00 09 01 01 01 [ 6.934438] rtc-ds1307 2-006f: read secs=0, mins=0, hours=0, mday=1, mon=0, year=101, wday=0 [ 6.934731] rtc-ds1307 2-006f: char device (253:0) [ 6.934749] rtc-ds1307 2-006f: registered as rtc0 [ 6.977491] at24 0-0050: GPIO lookup for consumer wp [ 6.977498] at24 0-0050: using device tree for GPIO lookup [ 6.977512] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/i2c@48070000/eeprom@50[0]' [ 6.977522] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/i2c@48070000/eeprom@50[0]' [ 6.977529] at24 0-0050: using lookup tables for GPIO lookup [ 6.977534] at24 0-0050: No GPIO consumer wp found [ 6.979881] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: GPIO lookup for consumer id [ 6.979888] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: using device tree for GPIO lookup [ 6.979900] of_get_named_gpiod_flags: can't parse 'id-gpios' property of node '/ocp/i2c@48070000/tps659038@58/tps659038_usb[0]' [ 6.979910] of_get_named_gpiod_flags: can't parse 'id-gpio' property of node '/ocp/i2c@48070000/tps659038@58/tps659038_usb[0]' [ 6.979917] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: using lookup tables for GPIO lookup [ 6.979922] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: No GPIO consumer id found [ 6.979928] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: GPIO lookup for consumer vbus [ 6.979932] palmas-usb 48070000.i2c:tps659038@58:tps659038_usb: using device tree for GPIO lookup [ 6.979942] of_get_named_gpiod_flags: can't parse 'vbus-gpios' property of node '/ocp/i2c@48070000/tps659038@58/tps659038_usb[0]' [ 6.979961] of_get_named_gpiod_flags: parsed 'vbus-gpio' property of node '/ocp/i2c@48070000/tps659038@58/tps659038_usb[0]' - status (0) [ 6.980003] gpio gpiochip3: Persistence not supported for GPIO 21 [ 6.980192] at24 0-0050: 4096 byte 24c32 EEPROM, writable, 1 bytes/write [ 6.993908] rtc rtc1: 48070000.i2c:tps659038@58:tps659038_rtc: dev (253:1) [ 6.993919] palmas-rtc 48070000.i2c:tps659038@58:tps659038_rtc: rtc core: registered 48070000.i2c:tps659038@58:tps659038_rtc as rtc1 [ 7.122185] Driver for 1-wire Dallas network protocol. [ 7.274010] remoteproc remoteproc0: powering up 58820000.ipu [ 7.279751] remoteproc remoteproc0: Booting fw image dra7-ipu1-fw.xem4, size 6884184 [ 7.289567] virtio_rpmsg_bus virtio0: rpmsg host is online [ 7.289826] virtio_rpmsg_bus virtio0: creating channel rpmsg-proto addr 0x3d [ 7.295183] remoteproc remoteproc0: registered virtio0 (type 7) [ 7.308199] remoteproc remoteproc0: remote processor 58820000.ipu is now up [ 7.331741] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/i2c@48070000/tlv320aic3104@18[0]' [ 7.331753] of_get_named_gpiod_flags: can't parse 'gpio-reset' property of node '/ocp/i2c@48070000/tlv320aic3104@18[0]' [ 7.331816] tlv320aic3x-codec 0-0018: Linked as a consumer to regulator.5 [ 7.339614] tlv320aic3x-codec 0-0018: Linked as a consumer to regulator.6 [ 7.353729] omap_rtc 48838000.rtc: char device (253:2) [ 7.353739] omap_rtc 48838000.rtc: registered as rtc2 [ 7.371756] omap_hdq 480b2000.1w: OMAP HDQ Hardware Rev 0.:. Driver in Interrupt mode [ 7.442304] remoteproc remoteproc1: powering up 55020000.ipu [ 7.448000] remoteproc remoteproc1: Booting fw image dra7-ipu2-fw.xem4, size 3747220 [ 7.456669] omap-iommu 55082000.mmu: 55082000.mmu: version 2.1 [ 7.466171] ov490 4-0014: lte80 driver registered [ 7.476003] ov490 4-0014: parallel bus found! [ 7.482025] ov490 4-0014: Using 0 data lanes [ 7.557003] virtio_rpmsg_bus virtio1: rpmsg host is online [ 7.564739] virtio_rpmsg_bus virtio1: creating channel rpmsg-rpc addr 0x65 [ 7.570256] remoteproc remoteproc1: registered virtio1 (type 7) [ 7.574244] virtio_rpmsg_bus virtio1: creating channel rpmsg-rpc addr 0x66 [ 7.587694] remoteproc remoteproc1: remote processor 55020000.ipu is now up [ 7.596922] w1_master_driver w1_bus_master1: Attaching one wire slave 01.000000000000 crc 3d [ 7.610530] omap-des 480a5000.des: OMAP DES hw accel rev: 2.2 [ 7.623214] omap-des 480a5000.des: will run requests pump with realtime priority [ 7.623228] w1_master_driver w1_bus_master1: Family 1 for 01.000000000000.3d is not registered. [ 7.858683] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec [ 7.965373] phy phy-4a084000.phy.3: Linked as a consumer to regulator.25 [ 7.975288] vpe 489d0000.vpe: loading firmware vpdma-1b8.bin [ 7.975349] omap-sham 4b101000.sham: hw accel on OMAP rev 4.3 [ 7.986819] phy phy-4a085000.phy.4: Linked as a consumer to regulator.25 [ 8.094447] net eth1: initializing cpsw version 1.15 (0) [ 8.102621] vpe 489d0000.vpe: Device registered as /dev/video0 [ 8.184717] omap-hdmi-audio omap-hdmi-audio.0.auto: snd-soc-dummy-dai <-> 58040000.encoder mapping ok [ 8.194400] omap-hdmi-audio omap-hdmi-audio.0.auto: ASoC: no DMI vendor name! [ 8.205594] omap-aes 4b500000.aes: OMAP AES hw accel rev: 3.3 [ 8.219334] omap-aes 4b500000.aes: will run requests pump with realtime priority [ 8.232819] omap-aes 4b700000.aes: OMAP AES hw accel rev: 3.3 [ 8.234042] Micrel KSZ9031 Gigabit PHY 48485000.mdio:02: attached PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=48485000.mdio:02, irq=POLL) [ 8.238779] omap-aes 4b700000.aes: will run requests pump with realtime priority [ 8.283841] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready [ 8.298731] net eth0: initializing cpsw version 1.15 (0) [ 8.442566] Micrel KSZ9031 Gigabit PHY 48485000.mdio:01: attached PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=48485000.mdio:01, irq=POLL) [ 8.464435] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 8.486322] libata version 3.00 loaded. [ 8.506895] [drm] Initialized pvr 1.17.4948957 20110701 for 56000000.gpu on minor 1 [ 8.586258] of_get_named_gpiod_flags: can't parse 'simple-audio-card,hp-det-gpio' property of node '/sound0[0]' [ 8.586280] of_get_named_gpiod_flags: can't parse 'simple-audio-card,mic-det-gpio' property of node '/sound0[0]' [ 8.587884] asoc-simple-card sound0: tlv320aic3x-hifi <-> 48468000.mcasp mapping ok [ 8.596671] asoc-simple-card sound0: ASoC: no DMI vendor name! [ 8.946688] ahci 4a140000.sata: controller can't do 64bit DMA, forcing 32bit [ 8.958754] ahci 4a140000.sata: forcing port_map 0x0 -> 0x1 [ 8.968465] ahci 4a140000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode [ 8.977072] ahci 4a140000.sata: flags: ncq sntf pm led clo only pmp pio slum part ccc apst [ 8.997916] scsi host0: ahci [ 9.001077] ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a1410ff] port 0x100 irq 83 [ 9.122842] vip 48990000.vip: loading firmware vpdma-1b8.bin [ 9.331626] vip 48990000.vip: VPDMA firmware loaded [ 9.336620] vin3a: Port A: Using subdev ov490 4-0014 for capture [ 9.343511] ata1: SATA link down (SStatus 0 SControl 300) [ 9.348977] ov490 4-0014: enum code set! [ 9.354876] vin3a-0: device registered as video1 [ 9.493011] remoteproc remoteproc2: powering up 40800000.dsp [ 9.499554] remoteproc remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 20483260 [ 9.508839] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0 [ 9.514750] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0 [ 9.562281] virtio_rpmsg_bus virtio2: rpmsg host is online [ 9.562357] virtio_rpmsg_bus virtio2: creating channel rpmsg-proto addr 0x3d [ 9.567842] remoteproc remoteproc2: registered virtio2 (type 7) [ 9.586693] remoteproc remoteproc3: powering up 41000000.dsp [ 9.596367] remoteproc remoteproc3: Booting fw image dra7-dsp2-fw.xe66, size 20483260 [ 9.613868] omap-iommu 41501000.mmu: 41501000.mmu: version 3.0 [ 9.619760] omap-iommu 41502000.mmu: 41502000.mmu: version 3.0 [ 9.646638] remoteproc remoteproc2: remote processor 40800000.dsp is now up [ 9.741069] virtio_rpmsg_bus virtio3: rpmsg host is online [ 9.741206] virtio_rpmsg_bus virtio3: creating channel rpmsg-proto addr 0x3d [ 9.753961] PVR_K: UM DDK-(4948957) and KM DDK-(4948957) match. [ OK ] [ 9.792470] remoteproc remoteproc3: registered virtio3 (type 7) [ 9.867470] remoteproc remoteproc3: remote processor 41000000.dsp is now up [ 10.560015] cpsw 48484000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off [ 10.579616] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 12.036658] dwc3 48890000.usb: Failed to get clk 'ref': -2 [ 12.067463] NET: Registered protocol family 45 [ 12.094884] dwc3 488d0000.usb: Failed to get clk 'ref': -2 [ 12.125098] rpmsg_rpc virtio1.rpmsg-rpc.-1.101: probing service dce-callback with src 1024 dst 101 [ 12.167467] rpmsg_rpc virtio1.rpmsg-rpc.-1.101: published functions = 4 [ 12.168066] rpmsg_rpc virtio1.rpmsg-rpc.-1.102: probing service rpmsg-dce with src 1025 dst 102 [ 12.280988] rpmsg_rpc virtio1.rpmsg-rpc.-1.102: published functions = 9 [ 12.358689] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller [ 12.375048] remoteproc remoteproc4: 4b234000.pru is available [ 12.394744] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 1 [ 12.411026] pru-rproc 4b234000.pru: PRU rproc node pru@4b234000 probed successfully [ 12.442352] remoteproc remoteproc5: 4b238000.pru is available [ 12.448602] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x0000000002010010 [ 12.463349] pru-rproc 4b238000.pru: PRU rproc node pru@4b238000 probed successfully [ 12.476255] xhci-hcd xhci-hcd.1.auto: irq 191, io mem 0x48890000 [ 12.502356] remoteproc remoteproc6: 4b2b4000.pru is available [ 12.512707] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19 [ 12.521020] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 12.532964] pru-rproc 4b2b4000.pru: PRU rproc node pru@4b2b4000 probed successfully [ 12.543805] remoteproc remoteproc7: 4b2b8000.pru is available [ 12.549743] usb usb1: Product: xHCI Host Controller [ 12.559633] pru-rproc 4b2b8000.pru: PRU rproc node pru@4b2b8000 probed successfully [ 12.568034] usb usb1: Manufacturer: Linux 4.19.79-g77dfab56c6 xhci-hcd [ 12.578464] usb usb1: SerialNumber: xhci-hcd.1.auto [ 12.597954] hub 1-0:1.0: USB hub found [ 12.624132] hub 1-0:1.0: 1 port detected [ 12.633280] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller [ 12.638808] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2 [ 12.654197] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed [ 12.662082] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 12.672295] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 4.19 [ 12.691137] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 12.700406] usb usb2: Product: xHCI Host Controller [ 12.705721] usb usb2: Manufacturer: Linux 4.19.79-g77dfab56c6 xhci-hcd [ 12.713994] usb usb2: SerialNumber: xhci-hcd.1.auto [ 12.722893] hub 2-0:1.0: USB hub found [ 12.728287] hub 2-0:1.0: 1 port detected [ 12.991656] usb 1-1: new high-speed USB device number 2 using xhci-hcd [ 13.172005] usb 1-1: New USB device found, idVendor=0451, idProduct=8142, bcdDevice= 1.00 [ 13.180383] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=1 [ 13.190812] usb 1-1: SerialNumber: 1D0728410AF3 [ 13.270326] hub 1-1:1.0: USB hub found [ 13.282599] hub 1-1:1.0: 4 ports detected [ 13.334508] usb 2-1: new SuperSpeed Gen 1 USB device number 2 using xhci-hcd [ 13.371955] usb 2-1: New USB device found, idVendor=0451, idProduct=8140, bcdDevice= 1.00 [ 13.380535] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 13.433198] hub 2-1:1.0: USB hub found [ 13.439986] hub 2-1:1.0: 4 ports detected [ 13.661641] usb 1-1.2: new low-speed USB device number 3 using xhci-hcd [ 13.816321] usb 1-1.2: New USB device found, idVendor=1bcf, idProduct=0007, bcdDevice= 0.14 [ 13.825533] usb 1-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [ 13.836801] usb 1-1.2: Product: USB Optical Mouse [ 13.981602] usb 1-1.3: new low-speed USB device number 4 using xhci-hcd [ 14.014288] input: USB Optical Mouse Mouse as /devices/platform/44000000.ocp/48880000.omap_dwc3_1/48890000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.2/1-1.2:1.0/0003:1BCF:0007.0001/input/input1 [ 14.032606] input: USB Optical Mouse as /devices/platform/44000000.ocp/48880000.omap_dwc3_1/48890000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.2/1-1.2:1.0/0003:1BCF:0007.0001/input/input2 [ 14.049534] hid-generic 0003:1BCF:0007.0001: input: USB HID v1.10 Mouse [USB Optical Mouse] on usb-xhci-hcd.1.auto-1.2/input0 [ 14.063120] usbcore: registered new interface driver usbhid [ 14.069007] usbhid: USB HID core driver [ 14.121177] usb 1-1.3: New USB device found, idVendor=413c, idProduct=2113, bcdDevice= 1.08 [ 14.129762] usb 1-1.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [ 14.137972] usb 1-1.3: Product: Dell KB216 Wired Keyboard [ 14.234726] input: Dell KB216 Wired Keyboard as /devices/platform/44000000.ocp/48880000.omap_dwc3_1/48890000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.3/1-1.3:1.0/0003:413C:2113.0002/input/input3 [ 14.323866] hid-generic 0003:413C:2113.0002: input: USB HID v1.11 Keyboard [Dell KB216 Wired Keyboard] on usb-xhci-hcd.1.auto-1.3/input0 [ 14.359578] input: Dell KB216 Wired Keyboard System Control as /devices/platform/44000000.ocp/48880000.omap_dwc3_1/48890000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.3/1-1.3:1.1/0003:413C:2113.0003/input/input4 [ 14.442399] input: Dell KB216 Wired Keyboard Consumer Control as /devices/platform/44000000.ocp/48880000.omap_dwc3_1/48890000.usb/xhci-hcd.1.auto/usb1/1-1/1-1.3/1-1.3:1.1/0003:413C:2113.0003/input/input5 [ 14.461091] hid-generic 0003:413C:2113.0003: input: USB HID v1.11 Device [Dell KB216 Wired Keyboard] on usb-xhci-hcd.1.auto-1.3/input1 [ 16.442476] gpio gpiochip4: Persistence not supported for GPIO 4 [ 16.910454] rtc-ds1307 2-006f: write secs=42, mins=35, hours=2, mday=5, mon=0, year=120, wday=0 [ 16.910464] rtc-ds1307 2-006f: write: c2 35 02 09 05 01 20 [ 16.911131] rtc-ds1307 2-006f: read: c2 35 02 29 05 21 20 [ 16.911141] rtc-ds1307 2-006f: read secs=42, mins=35, hours=2, mday=5, mon=0, year=120, wday=0 [ 33.751615] aic_dvdd_fixed: disabling [ 136.069833] NET: Registered protocol family 15 [ 136.147156] Initializing XFRM netlink socket [ 307.446845] gpio gpiochip4: Persistence not supported for GPIO 12 [ 311.478800] gpio gpiochip4: Persistence not supported for GPIO 11 [ 357.657142] vin3a-0: vip_open [ 357.657165] vin3a: vip_init_port: g_mbus_fmt subdev mbus_code: 3013 fourcc:GBRG size: 160x160 [ 357.657177] vin3a: calc_format_size: fourcc:GBRG size: 160x160 bpl:160 img_size:25600 [ 357.657184] vin3a-0: init_stream fourcc:GBRG size: 160x160 bpl:160 img_size:25600 [ 357.657190] vin3a-0: init_stream vpdma data type: 0x27 [ 357.657197] vin3a-0: vip_init_stream: stream instance 0x00000000ecf9c000 [ 357.657213] video1: VIDIOC_QUERYCAP: driver=vip, card=vip, bus=platform:vip2:vin3a:stream0, version=0x0004134f, capabilities=0x85200001, device_caps=0x05200001 [ 357.658192] vin3a-0: s_fmt input fourcc:GBRG size: 160x160 bpl:0 img_size:0 [ 357.658199] vin3a-0: try_fmt fourcc:GBRG size: 160x160 [ 357.658207] vin3a-0: try_fmt loop:0 fourcc:GBRG size: 160x160 [ 357.658213] vin3a-0: try_fmt loop:0 found new larger: 160x160 [ 357.658220] vin3a-0: try_fmt loop:0 found at least larger: 160x160 [ 357.658225] vin3a-0: try_fmt loop:0 found new best: 160x160 [ 357.658230] vin3a-0: try_fmt loop:0 found direct match: 160x160 [ 357.658237] vin3a: calc_format_size: fourcc:GBRG size: 160x160 bpl:160 img_size:25600 [ 357.658244] vin3a-0: s_fmt try_fmt fourcc:GBRG size: 160x160 bpl:160 img_size:25600 [ 357.658251] vin3a-0: s_fmt fourcc:GBRG size: 160x160 bpl:160 img_size:25600 [ 357.658257] vin3a-0: s_fmt pix_to_mbus mbus_code: 3013 size: 160x160 [ 357.658261] vin3a-0: s_fmt subdev fmt mbus_code: 3013 size: 160x160 [ 357.658267] vin3a-0: s_fmt vpdma data type: 0x27 [ 357.658272] video1: VIDIOC_S_FMT: type=vid-cap, width=160, height=160, pixelformat=GBRG, field=none, bytesperline=160, sizeimage=25600, colorspace=1, flags=0x0, ycbcr_enc=0, quantization=0, xfer_func=0 [ 357.658619] vin3a-0: g_fmt fourcc:GBRG code: 3013 size: 160x160 bpl:160 img_size:25600 [ 357.658626] vin3a-0: g_fmt vpdma data type: 0x27 [ 357.658631] video1: VIDIOC_G_FMT: type=vid-cap, width=160, height=160, pixelformat=GBRG, field=none, bytesperline=160, sizeimage=25600, colorspace=1, flags=0x0, ycbcr_enc=0, quantization=0, xfer_func=0 [ 357.658788] vin3a-0: get 8 buffer(s) of size 25600 each. [ 357.659137] videobuf2_common: __setup_offsets: buffer 0, plane 0 offset 0x00000000 [ 357.673247] videobuf2_common: __setup_offsets: buffer 1, plane 0 offset 0x00007000 [ 357.681212] videobuf2_common: __setup_offsets: buffer 2, plane 0 offset 0x0000e000 [ 357.689214] videobuf2_common: __setup_offsets: buffer 3, plane 0 offset 0x00015000 [ 357.701398] videobuf2_common: __setup_offsets: buffer 4, plane 0 offset 0x0001c000 [ 357.711044] videobuf2_common: __setup_offsets: buffer 5, plane 0 offset 0x00023000 [ 357.719223] videobuf2_common: __setup_offsets: buffer 6, plane 0 offset 0x0002a000 [ 357.726931] videobuf2_common: __setup_offsets: buffer 7, plane 0 offset 0x00031000 [ 357.734607] videobuf2_common: __vb2_queue_alloc: allocated 8 buffers, 1 plane(s) each [ 357.742487] video1: VIDIOC_REQBUFS: count=8, type=vid-cap, memory=mmap [ 357.742583] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=0, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x0, length=25600 [ 357.742607] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 357.742667] videobuf2_common: vb2_mmap: buffer 0, plane 0 successfully mapped [ 357.750298] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=1, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x7000, length=25600 [ 357.750346] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 357.750464] videobuf2_common: vb2_mmap: buffer 1, plane 0 successfully mapped [ 357.757804] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=2, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0xe000, length=25600 [ 357.757836] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 357.757896] videobuf2_common: vb2_mmap: buffer 2, plane 0 successfully mapped [ 357.765269] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=3, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x15000, length=25600 [ 357.765302] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 357.765505] videobuf2_common: vb2_mmap: buffer 3, plane 0 successfully mapped [ 357.772797] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=4, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x1c000, length=25600 [ 357.772830] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 357.772885] videobuf2_common: vb2_mmap: buffer 4, plane 0 successfully mapped [ 357.780285] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=5, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x23000, length=25600 [ 357.780313] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 357.780369] videobuf2_common: vb2_mmap: buffer 5, plane 0 successfully mapped [ 357.787766] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=6, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x2a000, length=25600 [ 357.787791] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 357.787854] videobuf2_common: vb2_mmap: buffer 6, plane 0 successfully mapped [ 357.795101] video1: VIDIOC_QUERYBUF: 00:00:00.00000000 index=7, type=vid-cap, flags=0x00002000, field=any, sequence=0, memory=mmap, bytesused=0, offset/userptr=0x31000, length=25600 [ 357.795122] timecode=00:00:00 type=0, flags=0x00000000, frames=0, userbits=0x00000000 [ 357.795168] videobuf2_common: vb2_mmap: buffer 7, plane 0 successfully mapped [ 357.802553] videobuf2_common: vb2_core_qbuf: qbuf of buffer 0 succeeded [ 357.809307] videobuf2_common: vb2_core_qbuf: qbuf of buffer 1 succeeded [ 357.816255] videobuf2_common: vb2_core_qbuf: qbuf of buffer 2 succeeded [ 357.822997] videobuf2_common: vb2_core_qbuf: qbuf of buffer 3 succeeded [ 357.829671] videobuf2_common: vb2_core_qbuf: qbuf of buffer 4 succeeded [ 357.836460] videobuf2_common: vb2_core_qbuf: qbuf of buffer 5 succeeded [ 357.843186] videobuf2_common: vb2_core_qbuf: qbuf of buffer 6 succeeded [ 357.849928] videobuf2_common: vb2_core_qbuf: qbuf of buffer 7 succeeded [ 357.856850] vin3: vip_set_slice_path: [ 357.856857] vin3: vip_set_slice_path: DATA_PATH_SELECT(0000010C): 80008000 [ 357.856861] vin3: vip_set_slice_path: [ 357.856868] vin3: vip_set_slice_path: DATA_PATH_SELECT(0000010C): 40008000 [ 357.857795] vin3a: vip_set_crop_parser: 8 bit raw detected, adjusting width to 80 [ 357.857803] vin3a-0: add_out_dtd: 8 bit raw detected, adjusting width to 80 [ 357.857815] vin3a-0: vip_load_vpdma_list_fifo: start_dma vb2 buf idx:0 [ 357.859647] vin3a-0: vip_load_vpdma_list_fifo: start_dma vb2 buf idx:1 [ 357.860780] videobuf2_common: vb2_core_streamon: successful [ 357.866994] video1: VIDIOC_STREAMON: type=vid-cap [ 357.871703] videobuf2_common: __vb2_wait_for_done_vb: will sleep waiting for buffers [ 360.454543] videobuf2_common: __vb2_wait_for_done_vb: sleep was interrupted [ 360.461985] vin3a-0: vip_release [ 360.461998] vin3a-0: vip_stop_streaming: [ 360.462008] vin3: vip_set_slice_path: [ 360.462019] vin3: vip_set_slice_path: DATA_PATH_SELECT(0000010C): 80008000 [ 360.462026] vin3: vip_set_slice_path: [ 360.462035] vin3: vip_set_slice_path: DATA_PATH_SELECT(0000010C): 40008000 [ 360.462050] vin3a-0: Clear channel no: 38 [ 360.462126] videobuf2_common: __vb2_buf_mem_free: freed plane 0 of buffer 0 [ 360.469146] videobuf2_common: __vb2_buf_mem_free: freed plane 0 of buffer 1 [ 360.476235] videobuf2_common: __vb2_buf_mem_free: freed plane 0 of buffer 2 [ 360.483356] videobuf2_common: __vb2_buf_mem_free: freed plane 0 of buffer 3 [ 360.490371] videobuf2_common: __vb2_buf_mem_free: freed plane 0 of buffer 4 [ 360.497399] videobuf2_common: __vb2_buf_mem_free: freed plane 0 of buffer 5 [ 360.504449] videobuf2_common: __vb2_buf_mem_free: freed plane 0 of buffer 6 [ 360.511462] videobuf2_common: __vb2_buf_mem_free: freed plane 0 of buffer 7 [ 360.518499] vin3a-0: vip_release_stream: stream instance 0xdcf57f1aecf9c000 [ 360.518505] vin3a: vip_release_port: port instance 0xdcf57f1aec4b1840 [ 1760.411588] usb 1-1.1: new high-speed USB device number 5 using xhci-hcd [ 1760.542050] usb 1-1.1: New USB device found, idVendor=0781, idProduct=5567, bcdDevice= 1.00 [ 1760.550454] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 1760.558438] usb 1-1.1: Product: Cruzer Blade [ 1760.563064] usb 1-1.1: Manufacturer: SanDisk [ 1760.567368] usb 1-1.1: SerialNumber: 4C530000100610115142 [ 1760.639794] usb-storage 1-1.1:1.0: USB Mass Storage device detected [ 1760.646722] scsi host1: usb-storage 1-1.1:1.0 [ 1760.652680] usbcore: registered new interface driver usb-storage [ 1760.665333] usbcore: registered new interface driver uas [ 1761.673023] scsi 1:0:0:0: Direct-Access SanDisk Cruzer Blade 1.00 PQ: 0 ANSI: 6 [ 1761.684901] sd 1:0:0:0: [sda] 60088320 512-byte logical blocks: (30.8 GB/28.7 GiB) [ 1761.694841] sd 1:0:0:0: [sda] Write Protect is off [ 1761.699692] sd 1:0:0:0: [sda] Mode Sense: 43 00 00 00 [ 1761.700037] sd 1:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA [ 1761.730747] sda: [ 1761.736943] sd 1:0:0:0: [sda] Attached SCSI removable disk [ 1779.990607] sda: