Code: Select all
// Definitions for Toshiba TC358743 HDMI to CSI2 bridge on VC I2C bus
/dts-v1/;
/plugin/;
/{
compatible = "brcm,bcm2708";
[email protected] {
target = <&i2c_arm>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
[email protected] {
compatible = "toshiba,tc358743";
reg = <0x0f>;
status = "okay";
clocks = <&tc358743_clk>;
clock-names = "refclk";
tc358743_clk: bridge-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <27000000>;
};
port {
tc358743: endpoint {
remote-endpoint = <&csi0_ep>;
clock-lanes = <0>;
clock-noncontinuous;
link-frequencies =
/bits/ 64 <486000000>;
};
};
};
};
};
[email protected] {
target = <&csi0>;
__overlay__ {
status = "okay";
port {
csi0_ep: endpoint {
remote-endpoint = <&tc358743>;
};
};
};
};
[email protected] {
target = <&i2c_arm>;
__overlay__ {
[email protected] {
port {
endpoint {
data-lanes = <1 2>;
};
};
};
};
};
[email protected] {
target = <&i2c_arm>;
__dormant__ {
[email protected] {
port {
endpoint {
data-lanes = <1 2 3 4>;
};
};
};
};
};
[email protected] {
target = <&i2c1_pins>;
__dormant__ {
brcm,pins = <2 3>;
brcm,function = <4>; /* alt0 */
};
};
[email protected] {
target = <&i2c1_pins>;
__overlay__ {
brcm,pins = <44 45>;
brcm,function = <5>; /* alt1 */
};
};
[email protected] {
target = <&i2c_arm>;
__overlay__ {
status = "okay";
};
};
__overrides__ {
i2c_pins_2_3 = <0>,"+4-5";
4lane = <0>, "-2+3";
link-frequency = <&tc358743>,"link-frequencies#0";
};
};
IGNORE dt-blob.bin / dt-blob.dts.. They are not relevant when driving everything from the Linux kernel.
Add "dtdebug=1" to /boot/config.txt and reboot. Run "sudo vcdbg log msg" and it will dump out the firmware log from where it was parsing the dtoverlays etc. I get lines likexasm wrote:I'll try. Actually, I expected that new overlay for i2c_arm kills settings for i2c_vc, but the first B102 still working good. So I suspect, that the overlay doesn't work as expected.
Code: Select all
000757.678: brfs: File read: /mfs/sd/cmdline.txt
000757.783: Read command line from file 'cmdline.txt':
000757.851: 'cma=256M dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=192.168.2.1:/nfs/pi2_stretch_kms rw ip=dhcp rootwait elevator=deadline earlyprintk'
000758.213: brfs: File read: 171 bytes
001190.746: brfs: File read: /mfs/sd/kernel7.img
001190.815: Loading 'kernel7.img' to 0x8000 size 0x4e9ff0
001195.265: No kernel trailer - assuming DT-capable
001195.342: Trying Device Tree file 'bcm2710-rpi-3-b-plus.dtb'
001195.413: brfs: File read: 5152752 bytes
001200.991: brfs: File read: /mfs/sd/bcm2710-rpi-3-b-plus.dtb
001201.062: Loading 'bcm2710-rpi-3-b-plus.dtb' to 0x4f1ff0 size 0x6410
001234.261: dtdebug: delete_node(/__local_fixups__)
001250.225: dtdebug: /aliases:i2c_vc=i2c0
001267.757: dtdebug: /__symbols__:i2c_vc=i2c0
001280.681: dtdebug: /__overrides__:i2c_vc=i2c0
001306.736: dtdebug: /__overrides__:i2c_vc_baudrate=i2c0_baudrate
001312.115: dtdebug: /aliases:i2c=i2c1
001330.016: dtdebug: /__symbols__:i2c=i2c1
001343.080: dtdebug: /__overrides__:i2c=i2c1
001348.544: dtdebug: /aliases:i2c_arm=i2c1
001366.509: dtdebug: /__symbols__:i2c_arm=i2c1
001379.655: dtdebug: /__overrides__:i2c_arm=i2c1
001406.026: dtdebug: /__overrides__:i2c_baudrate=i2c1_baudrate
001432.462: dtdebug: /__overrides__:i2c_arm_baudrate=i2c1_baudrate
001442.010: dtparam: uart0_clkrate=48000000
001452.695: dtdebug: /__overrides__ has no uart0_clkrate property
001452.710: Unknown dtparam 'uart0_clkrate' - ignored
001452.779: brfs: File read: 25616 bytes
001454.748: brfs: File read: /mfs/sd/config.txt
001455.487: dtparam: spi=off
001465.714: dtdebug: Found override spi
001465.754: dtdebug: override spi: string target 'status'
001481.576: brfs: File read: 3294 bytes
001488.184: dtdebug: Opened overlay file 'overlays/tc358743.dtbo'
001489.740: brfs: File read: /mfs/sd/overlays/tc358743.dtbo
001539.995: Loaded overlay 'tc358743'
001540.131: dtdebug: Found fragment 0 (offset 36)
001561.910: dtdebug: merge_fragment(/soc/[email protected],/[email protected]/__overlay__)
001561.953: dtdebug: +prop(#address-cells)
001564.061: dtdebug: +prop(#size-cells)
001566.173: dtdebug: +prop(status)
001578.400: dtdebug: merge_fragment(/soc/[email protected]/[email protected],/[email protected]/__overlay__/[email protected])
001578.446: dtdebug: +prop(compatible)
001580.482: dtdebug: +prop(reg)
001582.623: dtdebug: +prop(status)
001584.788: dtdebug: +prop(clocks)
001587.043: dtdebug: +prop(clock-names)
001599.496: dtdebug: merge_fragment(/soc/[email protected]/[email protected]/bridge-clk,/[email protected]/__overlay__/[email protected]/bridge-clk)
001599.541: dtdebug: +prop(compatible)
001601.564: dtdebug: +prop(#clock-cells)
001603.731: dtdebug: +prop(clock-frequency)
001606.003: dtdebug: +prop(phandle)
001608.202: dtdebug: merge_fragment() end
001618.581: dtdebug: merge_fragment(/soc/[email protected]/[email protected]/port,/[email protected]/__overlay__/[email protected]/port)
001628.763: dtdebug: merge_fragment(/soc/[email protected]/[email protected]/port/endpoint,/[email protected]/__overlay__/[email protected]/port/endpoint)
001628.803: dtdebug: +prop(remote-endpoint)
001631.551: dtdebug: +prop(clock-lanes)
001634.321: dtdebug: +prop(clock-noncontinuous)
001637.134: dtdebug: +prop(link-frequencies)
001639.949: dtdebug: +prop(phandle)
001642.182: dtdebug: merge_fragment() end
001642.236: dtdebug: merge_fragment() end
001642.317: dtdebug: merge_fragment() end
001642.496: dtdebug: merge_fragment() end
001642.799: dtdebug: Found fragment 1 (offset 476)
001671.280: dtdebug: merge_fragment(/soc/[email protected],/[email protected]/__overlay__)
001671.324: dtdebug: +prop(status)
001683.560: dtdebug: merge_fragment(/soc/[email protected]/port,/[email protected]/__overlay__/port)
001694.010: dtdebug: merge_fragment(/soc/[email protected]/port/endpoint,/[email protected]/__overlay__/port/endpoint)
001694.050: dtdebug: +prop(remote-endpoint)
001696.528: dtdebug: +prop(phandle)
001698.375: dtdebug: merge_fragment() end
001698.418: dtdebug: merge_fragment() end
001698.487: dtdebug: merge_fragment() end
001698.662: dtdebug: Found fragment 2 (offset 620)
001721.012: dtdebug: merge_fragment(/soc/[email protected],/[email protected]/__overlay__)
001729.617: dtdebug: merge_fragment(/soc/[email protected]/[email protected],/[email protected]/__overlay__/[email protected])
001738.263: dtdebug: merge_fragment(/soc/[email protected]/[email protected]/port,/[email protected]/__overlay__/[email protected]/port)
001746.963: dtdebug: merge_fragment(/soc/[email protected]/[email protected]/port/endpoint,/[email protected]/__overlay__/[email protected]/port/endpoint)
001747.006: dtdebug: +prop(data-lanes)
001749.404: dtdebug: merge_fragment() end
001749.444: dtdebug: merge_fragment() end
001749.507: dtdebug: merge_fragment() end
001749.599: dtdebug: merge_fragment() end
001749.801: dtdebug: Found fragment 3 (offset 752)
001750.010: dtdebug: fragment 3 disabled
001750.212: dtdebug: Found fragment 4 (offset 892)
001750.340: dtdebug: fragment 4 disabled
001750.461: dtdebug: Found fragment 5 (offset 984)
001769.073: dtdebug: merge_fragment(/soc/[email protected]/i2c0,/[email protected]/__overlay__)
001769.119: dtdebug: +prop(brcm,pins)
001771.423: dtdebug: +prop(brcm,function)
001773.762: dtdebug: merge_fragment() end
001773.885: dtdebug: Found fragment 6 (offset 1076)
001797.032: dtdebug: merge_fragment(/soc/[email protected],/[email protected]/__overlay__)
001797.077: dtdebug: +prop(status)
001799.271: dtdebug: merge_fragment() end
001799.990: brfs: File read: 2316 bytes
001807.947: dtdebug: Opened overlay file 'overlays/tc358743-audio.dtbo'
001809.438: brfs: File read: /mfs/sd/overlays/tc358743-audio.dtbo
001847.477: Loaded overlay 'tc358743-audio'
001847.869: dtdebug: Found fragment 0 (offset 36)
001868.183: dtdebug: merge_fragment(/soc/[email protected],/[email protected]/__overlay__)
001868.229: dtdebug: +prop(status)
001870.494: dtdebug: merge_fragment() end
001870.612: dtdebug: Found fragment 1 (offset 112)
001870.923: dtdebug: merge_fragment(/,/[email protected]/__overlay__)
001896.668: dtdebug: merge_fragment(/tc358743-codec,/[email protected]/__overlay__/tc358743-codec)
001896.715: dtdebug: +prop(#sound-dai-cells)
001900.023: dtdebug: +prop(compatible)
001903.159: dtdebug: +prop(status)
001906.466: dtdebug: +prop(phandle)
001909.763: dtdebug: merge_fragment() end
001909.822: dtdebug: merge_fragment() end
001909.996: dtdebug: Found fragment 2 (offset 272)
001946.918: dtdebug: merge_fragment(/soc/sound,/[email protected]/__overlay__)
001946.962: dtdebug: +prop(compatible)
001948.284: dtdebug: +prop(simple-audio-card,format)
001950.353: dtdebug: +prop(simple-audio-card,name)
001952.457: dtdebug: +prop(simple-audio-card,bitclock-master)
001954.591: dtdebug: +prop(simple-audio-card,frame-master)
001956.799: dtdebug: +prop(status)
001972.712: dtdebug: merge_fragment(/soc/sound/simple-audio-card,cpu,/[email protected]/__overlay__/simple-audio-card,cpu)
001972.769: dtdebug: +prop(sound-dai)
001974.871: dtdebug: +prop(dai-tdm-slot-num)
001977.017: dtdebug: +prop(dai-tdm-slot-width)
001979.215: dtdebug: merge_fragment() end
001994.067: dtdebug: merge_fragment(/soc/sound/simple-audio-card,codec,/[email protected]/__overlay__/simple-audio-card,codec)
001994.126: dtdebug: +prop(sound-dai)
001996.290: dtdebug: +prop(phandle)
001997.795: dtdebug: merge_fragment() end
001997.855: dtdebug: merge_fragment() end
001998.586: brfs: File read: 1529 bytes
Code: Select all
001970.730: dtdebug: Opened overlay file 'overlays/tc358743-overlay-csi0.dtbo'
001972.366: brfs: File read: /mfs/sd/overlays/tc358743-overlay-csi0.dtbo
001996.782: Loaded overlay 'tc358743-overlay-csi0'
001996.898: dtdebug: Found fragment 0 (offset 36)
002012.097: dtdebug: merge_fragment(/soc/[email protected],/[email protected]/__overlay__)
002012.124: dtdebug: +prop(#address-cells)
002013.713: dtdebug: +prop(#size-cells)
002015.301: dtdebug: +prop(status)
002023.887: dtdebug: merge_fragment(/soc/[email protected]/[email protected],/[email protected]/__overlay__/[email protected])
002023.915: dtdebug: +prop(compatible)
002025.451: dtdebug: +prop(reg)
002027.097: dtdebug: +prop(status)
002028.811: dtdebug: +prop(clocks)
002030.500: dtdebug: +prop(clock-names)
002039.230: dtdebug: merge_fragment(/soc/[email protected]/[email protected]/bridge-clk,/[email protected]/__overlay__/[email protected]/bridge-clk)
002039.258: dtdebug: +prop(compatible)
002040.803: dtdebug: +prop(#clock-cells)
002042.463: dtdebug: +prop(clock-frequency)
002044.216: dtdebug: +prop(linux,phandle)
002046.430: dtdebug: +prop(phandle)
002048.106: dtdebug: merge_fragment() end
002055.227: dtdebug: merge_fragment(/soc/[email protected]/[email protected]/port,/[email protected]/__overlay__/[email protected]/port)
002062.261: dtdebug: merge_fragment(/soc/[email protected]/[email protected]/port/endpoint,/[email protected]/__overlay__/[email protected]/port/endpoint)
002062.289: dtdebug: +prop(remote-endpoint)
002064.452: dtdebug: +prop(clock-lanes)
002066.654: dtdebug: +prop(clock-noncontinuous)
002068.859: dtdebug: +prop(link-frequencies)
002071.070: dtdebug: +prop(linux,phandle)
002073.313: dtdebug: +prop(phandle)
002075.013: dtdebug: merge_fragment() end
002075.045: dtdebug: merge_fragment() end
002075.088: dtdebug: merge_fragment() end
002075.169: dtdebug: merge_fragment() end
002075.303: dtdebug: Found fragment 1 (offset 508)
002089.848: dtdebug: merge_fragment(/soc/[email protected],/[email protected]/__overlay__)
002089.875: dtdebug: +prop(status)
002096.852: dtdebug: merge_fragment(/soc/[email protected]/port,/[email protected]/__overlay__/port)
002102.126: dtdebug: merge_fragment(/soc/[email protected]/port/endpoint,/[email protected]/__overlay__/port/endpoint)
002102.151: dtdebug: +prop(remote-endpoint)
002104.426: dtdebug: +prop(linux,phandle)
002106.750: dtdebug: +prop(phandle)
002108.518: dtdebug: merge_fragment() end
002108.545: dtdebug: merge_fragment() end
002108.583: dtdebug: merge_fragment() end
002108.665: dtdebug: Found fragment 2 (offset 668)
002124.176: dtdebug: merge_fragment(/soc/[email protected],/[email protected]/__overlay__)
002129.810: dtdebug: merge_fragment(/soc/[email protected]/[email protected],/[email protected]/__overlay__/[email protected])
002135.488: dtdebug: merge_fragment(/soc/[email protected]/[email protected]/port,/[email protected]/__overlay__/[email protected]/port)
002141.207: dtdebug: merge_fragment(/soc/[email protected]/[email protected]/port/endpoint,/[email protected]/__overlay__/[email protected]/port/endpoint)
002141.235: dtdebug: +prop(data-lanes)
002143.077: dtdebug: merge_fragment() end
002143.102: dtdebug: merge_fragment() end
002143.135: dtdebug: merge_fragment() end
002143.180: dtdebug: merge_fragment() end
002143.271: dtdebug: Found fragment 3 (offset 800)
002143.363: dtdebug: fragment 3 disabled
002143.454: dtdebug: Found fragment 4 (offset 940)
002143.515: dtdebug: fragment 4 disabled
002143.576: dtdebug: Found fragment 5 (offset 1032)
002153.400: dtdebug: merge_fragment(/soc/[email protected]/i2c1,/[email protected]/__overlay__)
002153.427: dtdebug: +prop(brcm,pins)
002155.619: dtdebug: +prop(brcm,function)
002157.814: dtdebug: merge_fragment() end
002157.873: dtdebug: Found fragment 6 (offset 1124)
002173.668: dtdebug: merge_fragment(/soc/[email protected],/[email protected]/__overlay__)
002173.694: dtdebug: +prop(status)
002175.342: dtdebug: merge_fragment() end
002175.616: brfs: File read: 2143 bytes
Typo on my part. There are 3 I2C controllers:xasm wrote: ↑Wed Nov 21, 2018 3:27 pmHmmm, this is a problem I guess:
[email protected] has no tc358743 directories, but I found the dir in [email protected] and in [email protected]
OK, good.xasm wrote:I see both /proc/device-tree/soc/[email protected]/ and /proc/device-tree/soc/[email protected]/ directories.
If you've defined the pin configuration to match where you've wired the devices to, then for your overlay you don't need to worry.xasm wrote:I guess, I missed changing something in the tc358743-overlay.dts.
Also, should I add i2c_pins_2_3=1 to config.txt? (actually, I tried, the result is the same - no /dev/video1)
Code: Select all
[email protected] {
target = <&i2c1_pins>;
__overlay__ {
brcm,pins = <44 45>;
brcm,function = <5>; /* alt1 */
};
};
Code: Select all
[email protected] {
target = <&i2c1_pins>;
__overlay__ {
brcm,pins = <2 3>;
brcm,function = <4>; /* alt0 */
};
};
Code: Select all
[email protected] {
target = <&i2c1_pins>;
__overlay__ {
brcm,pins = <44 45>;
brcm,function = <6>; /* alt2 */
};
};
Code: Select all
// Definitions for Toshiba TC358743 HDMI to CSI2 bridge on VC I2C bus
/dts-v1/;
/plugin/;
/{
compatible = "brcm,bcm2708";
[email protected] {
target = <&i2c_arm>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
[email protected] {
compatible = "toshiba,tc358743";
reg = <0x0f>;
status = "okay";
clocks = <&tc358743_clk>;
clock-names = "refclk";
tc358743_clk: bridge-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <27000000>;
};
port {
tc358743: endpoint {
remote-endpoint = <&csi0_ep>;
clock-lanes = <0>;
clock-noncontinuous;
link-frequencies =
/bits/ 64 <486000000>;
};
};
};
};
};
[email protected] {
target = <&csi0>;
__overlay__ {
status = "okay";
port {
csi0_ep: endpoint {
remote-endpoint = <&tc358743>;
};
};
};
};
[email protected] {
target = <&i2c_arm>;
__overlay__ {
[email protected] {
port {
endpoint {
data-lanes = <1 2>;
};
};
};
};
};
[email protected] {
target = <&i2c_arm>;
__dormant__ {
[email protected] {
port {
endpoint {
data-lanes = <1 2 3 4>;
};
};
};
};
};
[email protected] {
target = <&i2c1_pins>;
__dormant__ {
brcm,pins = <2 3>;
brcm,function = <4>; /* alt0 */
};
};
[email protected] {
target = <&i2c1_pins>;
__overlay__ {
brcm,pins = <2 3>;
brcm,function = <4>; /* alt1 */
};
};
[email protected] {
target = <&i2c_arm>;
__overlay__ {
status = "okay";
};
};
__overrides__ {
i2c_pins_2_3 = <0>,"+4-5";
4lane = <0>, "-2+3";
link-frequency = <&tc358743>,"link-frequencies#0";
};
};
Code: Select all
[email protected]:~ $ i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- UU
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
[email protected]:~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- 0f
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Hmm, I wired CD0_SDA==>2, CD0_CLS==>3 and I thought that i2c_pins_2_3-1 is the option. Should I configure the pins somewhere else?If you've defined the pin configuration to match where you've wired the devices to, then for your overlay you don't need to worry.
Code: Select all
// SPDX-License-Identifier: GPL-2.0-only
// Definitions for Toshiba TC358743 HDMI to CSI2 bridge on ARM I2C bus
/dts-v1/;
/plugin/;
/{
compatible = "brcm,bcm2708";
[email protected] {
target = <&i2c_arm>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
[email protected] {
compatible = "toshiba,tc358743";
reg = <0x0f>;
status = "okay";
clocks = <&tc358743_0_clk>;
clock-names = "refclk";
tc358743_0_clk: bridge-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <27000000>;
};
port {
tc358743_0: endpoint {
remote-endpoint = <&csi0_ep>;
clock-lanes = <0>;
clock-noncontinuous;
link-frequencies =
/bits/ 64 <486000000>;
};
};
};
};
};
[email protected] {
target = <&csi0>;
__overlay__ {
status = "okay";
port {
csi0_ep: endpoint {
remote-endpoint = <&tc358743_0>;
};
};
};
};
[email protected] {
target = <&i2c_arm>;
__overlay__ {
[email protected] {
port {
endpoint {
data-lanes = <1 2>;
};
};
};
};
};
[email protected] {
target = <&i2c1_pins>;
__dormant__ {
brcm,pins = <2 3>;
brcm,function = <4>; /* alt0 */
};
};
[email protected] {
target = <&i2c1_pins>;
__overlay__ {
brcm,pins = <44 45>;
brcm,function = <6>; /* alt2 */
};
};
[email protected] {
target = <&i2c_arm>;
__overlay__ {
status = "okay";
};
};
__overrides__ {
i2c_pins_2_3 = <0>,"+3-4";
link-frequency = <&tc358743_0>,"link-frequencies#0";
};
};
Code: Select all
options bcm2835-unicam debug=5
Code: Select all
options tc358743 debug=5
Code: Select all
[ 5.853904] unicam 3f800000.csi0: ep_node is endpoint
[ 5.853962] unicam 3f800000.csi0: sensor_node is tc358743
[ 5.853979] unicam 3f800000.csi0: remote_ep is endpoint
[ 5.853999] unicam 3f800000.csi0: parsed remote_ep to endpoint. nr_of_link_frequencies 0, bus_type 4
[ 5.854006] unicam 3f800000.csi0: bus_type is 4
[ 5.854014] unicam 3f800000.csi0: v4l2-endpoint: CSI2
[ 5.854019] unicam 3f800000.csi0: Virtual Channel=0
[ 5.854026] unicam 3f800000.csi0: flags=0x00000200
[ 5.854031] unicam 3f800000.csi0: num_data_lanes=2
[ 5.854036] unicam 3f800000.csi0: found sub-device tc358743
[ 5.854594] unicam 3f801000.csi1: ep_node is endpoint
[ 5.854627] unicam 3f801000.csi1: sensor_node is tc358743
[ 5.854639] unicam 3f801000.csi1: remote_ep is endpoint
[ 5.854657] unicam 3f801000.csi1: parsed remote_ep to endpoint. nr_of_link_frequencies 0, bus_type 4
[ 5.854663] unicam 3f801000.csi1: bus_type is 4
[ 5.854668] unicam 3f801000.csi1: v4l2-endpoint: CSI2
[ 5.854673] unicam 3f801000.csi1: Virtual Channel=0
[ 5.854682] unicam 3f801000.csi1: flags=0x00000200
[ 5.854687] unicam 3f801000.csi1: num_data_lanes=4
[ 5.854693] unicam 3f801000.csi1: found sub-device tc358743
[ 5.944253] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[ 5.951489] bcm2835_alsa bcm2835_alsa: card created with 8 channels
[ 6.324717] tc358743 0-000f: chip found @ 0x1e (bcm2835 I2C adapter)
[ 6.330208] unicam 3f801000.csi1: Using sensor tc358743 0-000f for capture
[ 6.330221] unicam 3f801000.csi1: Get supported formats...
[ 6.330240] unicam 3f801000.csi1: subdev tc358743 0-000f: code: 100a idx: 0
[ 6.330255] unicam 3f801000.csi1: fmt 100a returned as 7f207670, V4L2 FOURCC 33424752, csi_dt 24
[ 6.330265] unicam 3f801000.csi1: matched fourcc: RGB3: code: 100a idx: 0
[ 6.330273] unicam 3f801000.csi1: subdev tc358743 0-000f: code: 200f idx: 1
[ 6.330281] unicam 3f801000.csi1: fmt 200f returned as 7f20761c, V4L2 FOURCC 59565955, csi_dt 1E
[ 6.330289] unicam 3f801000.csi1: matched fourcc: UYVY: code: 200f idx: 1
[ 6.330297] unicam 3f801000.csi1: subdev->enum_mbus_code idx 2 returned -22 - continue
[ 6.330302] unicam 3f801000.csi1: Done all formats
[ 6.330312] unicam 3f801000.csi1: active_fmt[0] (b40b4548) is code 100a, fourcc RGB3, depth 24
[ 6.330321] unicam 3f801000.csi1: active_fmt[1] (b40b4554) is code 200f, fourcc UYVY, depth 16
[ 6.331785] unicam 3f801000.csi1: __subdev_get_format 0x0 code:100a
[ 6.339970] unicam 3f801000.csi1: __subdev_get_format 0x0 code:100a
[ 6.339992] unicam 3f801000.csi1: unicam_calc_format_size_bpl: fourcc: RGB3 size: 16x16 bpl:48 img_size:768
(load of I2C writes)
[ 6.563504] tc358743 0-000f: tc358743 found @ 0x1e (bcm2835 I2C adapter)
[ 6.563793] tc358743 1-000f: chip found @ 0x1e (bcm2835 I2C adapter)
Code: Select all
0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.14.80-v7+ ([email protected]) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1161 SMP Mon Nov 12 18:51:43 GMT 2018
[ 0.000000] CPU: ARMv7 Processor [410fd034] revision 4 (ARMv7), cr=10c5383d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Raspberry Pi Compute Module 3 Rev 1.0
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] cma: Reserved 32 MiB at 0x36000000
[ 0.000000] On node 0 totalpages: 229376
[ 0.000000] free_area_init_node: node 0, pgdat 80c85280, node_mem_map b5808000
[ 0.000000] Normal zone: 2016 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 229376 pages, LIFO batch:31
[ 0.000000] percpu: Embedded 17 pages/cpu @b57b0000 s38720 r8192 d22720 u69632
[ 0.000000] pcpu-alloc: s38720 r8192 d22720 u69632 alloc=17*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 227360
[ 0.000000] Kernel command line: bcm2708_fb.fbwidth=800 bcm2708_fb.fbheight=600 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:CE:76:84 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=PARTUUID=c36a536a-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cma=32M
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 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: 862824K/917504K available (7168K kernel code, 576K rwdata, 2076K rodata, 1024K init, 698K bss, 21912K reserved, 32768K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xb8800000 - 0xff800000 (1136 MB)
lowmem : 0x80000000 - 0xb8000000 ( 896 MB)
modules : 0x7f000000 - 0x80000000 ( 16 MB)
.text : 0x80008000 - 0x80800000 (8160 kB)
.init : 0x80b00000 - 0x80c00000 (1024 kB)
.data : 0x80c00000 - 0x80c9017c ( 577 kB)
.bss : 0x80c97f04 - 0x80d468b0 ( 699 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] ftrace: allocating 25288 entries in 75 pages
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] arch_timer: cp15 timer(s) running at 19.20MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[ 0.000007] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[ 0.000018] Switching to timer-based delay loop, resolution 52ns
[ 0.000263] Console: colour dummy device 80x30
[ 0.000280] console [tty1] enabled
[ 0.000305] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000)
[ 0.000320] pid_max: default: 32768 minimum: 301
[ 0.000638] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000651] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.001583] Disabling memory control group subsystem
[ 0.001659] CPU: Testing write buffer coherency: ok
[ 0.002078] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.002477] Setting up static identity map for 0x100000 - 0x10003c
[ 0.002597] Hierarchical SRCU implementation.
[ 0.003268] smp: Bringing up secondary CPUs ...
[ 0.004052] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.004903] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.005727] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.005831] smp: Brought up 1 node, 4 CPUs
[ 0.005841] SMP: Total of 4 processors activated (153.60 BogoMIPS).
[ 0.005847] CPU: All CPU(s) started in HYP mode.
[ 0.005851] CPU: Virtualization extensions available.
[ 0.006765] devtmpfs: initialized
[ 0.017104] random: get_random_u32 called from bucket_table_alloc+0xfc/0x24c with crng_init=0
[ 0.017896] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 4
[ 0.018121] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.018137] futex hash table entries: 1024 (order: 4, 65536 bytes)
[ 0.019651] pinctrl core: initialized pinctrl subsystem
[ 0.020483] NET: Registered protocol family 16
[ 0.023300] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[ 0.028238] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.028245] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.028468] Serial: AMBA PL011 UART driver
[ 0.030278] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[ 0.063255] bcm2835-dma 3f007000.dma: DMA legacy API manager at b8813000, dmachans=0x1
[ 0.064668] SCSI subsystem initialized
[ 0.064892] usbcore: registered new interface driver usbfs
[ 0.064950] usbcore: registered new interface driver hub
[ 0.065037] usbcore: registered new device driver usb
[ 0.070084] raspberrypi-firmware soc:firmware: Attached to firmware from 2018-11-04 16:35
[ 0.071526] clocksource: Switched to clocksource arch_sys_counter
[ 0.148663] VFS: Disk quotas dquot_6.6.0
[ 0.148748] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.148933] FS-Cache: Loaded
[ 0.149136] CacheFiles: Loaded
[ 0.157978] NET: Registered protocol family 2
[ 0.158698] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.158808] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.158993] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.159121] UDP hash table entries: 512 (order: 2, 16384 bytes)
[ 0.159165] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[ 0.159389] NET: Registered protocol family 1
[ 0.159844] RPC: Registered named UNIX socket transport module.
[ 0.159850] RPC: Registered udp transport module.
[ 0.159855] RPC: Registered tcp transport module.
[ 0.159860] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.161558] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 7 counters available
[ 0.164282] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[ 0.172331] FS-Cache: Netfs 'nfs' registered for caching
[ 0.172935] NFS: Registering the id_resolver key type
[ 0.172964] Key type id_resolver registered
[ 0.172969] Key type id_legacy registered
[ 0.172984] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 0.174893] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[ 0.175024] io scheduler noop registered
[ 0.175031] io scheduler deadline registered (default)
[ 0.175204] io scheduler cfq registered
[ 0.175211] io scheduler mq-deadline registered
[ 0.175218] io scheduler kyber registered
[ 0.177964] BCM2708FB: allocated DMA memory f6110000
[ 0.177991] BCM2708FB: allocated DMA channel 0 @ b8813000
[ 0.192099] Console: switching to colour frame buffer device 100x37
[ 0.201372] bcm2835-rng 3f104000.rng: hwrng registered
[ 0.201539] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[ 0.202034] vc-sm: Videocore shared memory driver
[ 0.202318] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[ 0.211929] brd: module loaded
[ 0.220592] loop: module loaded
[ 0.220605] Loading iSCSI transport class v2.0-870.
[ 0.221240] libphy: Fixed MDIO Bus: probed
[ 0.221338] usbcore: registered new interface driver lan78xx
[ 0.221391] usbcore: registered new interface driver smsc95xx
[ 0.221405] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[ 0.249353] dwc_otg 3f980000.usb: base=0xf0980000
[ 0.449580] Core Release: 2.80a
[ 0.449590] Setting default values for core params
[ 0.449621] Finished setting default values for core params
[ 0.649866] Using Buffer DMA mode
[ 0.649872] Periodic Transfer Interrupt Enhancement - disabled
[ 0.649877] Multiprocessor Interrupt Enhancement - disabled
[ 0.649883] OTG VER PARAM: 0, OTG VER FLAG: 0
[ 0.649893] Dedicated Tx FIFOs mode
[ 0.650289] WARN::dwc_otg_hcd_init:1046: FIQ DMA bounce buffers: virt = 0xb6104000 dma = 0xf6104000 len=9024
[ 0.650313] FIQ FSM acceleration enabled for :
Non-periodic Split Transactions
Periodic Split Transactions
High-Speed Isochronous Endpoints
Interrupt/Control Split Transaction hack enabled
[ 0.650320] dwc_otg: Microframe scheduler enabled
[ 0.650367] WARN::hcd_init_fiq:459: FIQ on core 1 at 0x805ea4bc
[ 0.650378] WARN::hcd_init_fiq:460: FIQ ASM at 0x805ea824 length 36
[ 0.650390] WARN::hcd_init_fiq:486: MPHI regs_base at 0xf0006000
[ 0.650441] dwc_otg 3f980000.usb: DWC OTG Controller
[ 0.650472] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[ 0.650502] dwc_otg 3f980000.usb: irq 62, io mem 0x00000000
[ 0.650550] Init: Port Power? op_state=1
[ 0.650555] Init: Power Port (0)
[ 0.650752] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.650763] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.650771] usb usb1: Product: DWC OTG Controller
[ 0.650780] usb usb1: Manufacturer: Linux 4.14.80-v7+ dwc_otg_hcd
[ 0.650788] usb usb1: SerialNumber: 3f980000.usb
[ 0.651371] hub 1-0:1.0: USB hub found
[ 0.651409] hub 1-0:1.0: 1 port detected
[ 0.651938] dwc_otg: FIQ enabled
[ 0.651943] dwc_otg: NAK holdoff enabled
[ 0.651948] dwc_otg: FIQ split-transaction FSM enabled
[ 0.651958] Module dwc_common_port init
[ 0.652191] usbcore: registered new interface driver usb-storage
[ 0.652355] mousedev: PS/2 mouse device common for all mice
[ 0.652425] IR NEC protocol handler initialized
[ 0.652430] IR RC5(x/sz) protocol handler initialized
[ 0.652435] IR RC6 protocol handler initialized
[ 0.652440] IR JVC protocol handler initialized
[ 0.652445] IR Sony protocol handler initialized
[ 0.652451] IR SANYO protocol handler initialized
[ 0.652456] IR Sharp protocol handler initialized
[ 0.652461] IR MCE Keyboard/mouse protocol handler initialized
[ 0.652466] IR XMP protocol handler initialized
[ 0.653166] bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer
[ 0.653427] bcm2835-cpufreq: min=600000 max=1200000
[ 0.653790] sdhci: Secure Digital Host Controller Interface driver
[ 0.653795] sdhci: Copyright(c) Pierre Ossman
[ 0.654162] sdhost-bcm2835 3f202000.mmc: could not get clk, deferring probe
[ 0.654277] sdhci-pltfm: SDHCI platform and OF driver helper
[ 0.654691] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.654772] hidraw: raw HID events driver (C) Jiri Kosina
[ 0.654912] usbcore: registered new interface driver usbhid
[ 0.654916] usbhid: USB HID core driver
[ 0.655509] vchiq: vchiq_init_state: slot_zero = b6180000, is_master = 0
[ 0.656954] [vc_sm_connected_init]: start
[ 0.665666] [vc_sm_connected_init]: end - returning 0
[ 0.666282] Initializing XFRM netlink socket
[ 0.666304] NET: Registered protocol family 17
[ 0.666395] Key type dns_resolver registered
[ 0.666952] Registering SWP/SWPB emulation handler
[ 0.667521] registered taskstats version 1
[ 0.673410] uart-pl011 3f201000.serial: cts_event_workaround enabled
[ 0.673478] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2
[ 0.673527] console [ttyAMA0] enabled
[ 0.675405] sdhost: log_buf @ b6107000 (f6107000)
[ 0.751554] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[ 0.752591] of_cfs_init
[ 0.752723] of_cfs_init: OK
[ 0.753217] Waiting for root device PARTUUID=c36a536a-02...
[ 0.818673] mmc0: host does not support reading read-only switch, assuming write-enable
[ 0.821118] mmc0: new high speed SDHC card at address 59b4
[ 0.821622] mmcblk0: mmc0:59b4 USDU1 14.9 GiB
[ 0.823204] mmcblk0: p1 p2
[ 0.852062] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 0.852112] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[ 0.852827] devtmpfs: mounted
[ 0.856087] Freeing unused kernel memory: 1024K
[ 0.871644] Indeed it is in host mode hprt0 = 00021501
[ 0.956747] random: fast init done
[ 1.081578] usb 1-1: new high-speed USB device number 2 using dwc_otg
[ 1.083681] Indeed it is in host mode hprt0 = 00001101
[ 1.331877] usb 1-1: New USB device found, idVendor=0bda, idProduct=5411
[ 1.331892] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.331900] usb 1-1: Product: 4-Port USB 2.0 Hub
[ 1.331909] usb 1-1: Manufacturer: Generic
[ 1.333008] hub 1-1:1.0: USB hub found
[ 1.334002] hub 1-1:1.0: 4 ports detected
[ 1.345076] systemd[1]: System time before build time, advancing clock.
[ 1.466644] NET: Registered protocol family 10
[ 1.467779] Segment Routing with IPv6
[ 1.477344] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 1.496461] random: systemd: uninitialized urandom read (16 bytes read)
[ 1.502552] systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[ 1.503162] systemd[1]: Detected architecture arm.
[ 1.503983] systemd[1]: Set hostname to <raspberrypi>.
[ 1.545515] random: systemd: uninitialized urandom read (16 bytes read)
[ 1.560630] uart-pl011 3f201000.serial: no DMA platform data
[ 1.591664] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read)
[ 1.651598] usb 1-1.2: new low-speed USB device number 3 using dwc_otg
[ 1.799424] usb 1-1.2: New USB device found, idVendor=1c4f, idProduct=0002
[ 1.799440] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.799449] usb 1-1.2: Product: HCT Keyboard
[ 1.799458] usb 1-1.2: Manufacturer: SEM
[ 1.804934] input: SEM HCT Keyboard as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1C4F:0002.0001/input/input0
[ 1.872112] hid-generic 0003:1C4F:0002.0001: input,hidraw0: USB HID v1.10 Keyboard [SEM HCT Keyboard] on usb-3f980000.usb-1.2/input0
[ 1.876649] input: SEM HCT Keyboard as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.1/0003:1C4F:0002.0002/input/input1
[ 1.941810] hid-generic 0003:1C4F:0002.0002: input,hidraw1: USB HID v1.10 Device [SEM HCT Keyboard] on usb-3f980000.usb-1.2/input1
[ 2.041588] usb 1-1.3: new low-speed USB device number 4 using dwc_otg
[ 2.064321] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[ 2.065285] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[ 2.065593] systemd[1]: Listening on udev Kernel Socket.
[ 2.065867] systemd[1]: Listening on Syslog Socket.
[ 2.066062] systemd[1]: Listening on fsck to fsckd communication Socket.
[ 2.066769] systemd[1]: Created slice User and Session Slice.
[ 2.083218] systemd[1]: Listening on Journal Socket.
[ 2.178501] i2c /dev entries driver
[ 2.179792] usb 1-1.3: New USB device found, idVendor=093a, idProduct=2510
[ 2.179812] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2.179820] usb 1-1.3: Product: USB OPTICAL MOUSE
[ 2.179829] usb 1-1.3: Manufacturer: PIXART
[ 2.187765] input: PIXART USB OPTICAL MOUSE as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:093A:2510.0003/input/input2
[ 2.188746] hid-generic 0003:093A:2510.0003: input,hidraw2: USB HID v1.10 Mouse [PIXART USB OPTICAL MOUSE] on usb-3f980000.usb-1.3/input0
[ 2.281654] usb 1-1.4: new high-speed USB device number 5 using dwc_otg
[ 2.412535] usb 1-1.4: New USB device found, idVendor=0bda, idProduct=8153
[ 2.412552] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[ 2.412561] usb 1-1.4: Product: USB 10/100/1000 LAN
[ 2.412570] usb 1-1.4: Manufacturer: Realtek
[ 2.412578] usb 1-1.4: SerialNumber: 001000001
[ 2.617124] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 2.706831] systemd-journald[84]: Received request to flush runtime journal from PID 1
[ 2.910260] usbcore: registered new interface driver r8152
[ 2.914148] usbcore: registered new interface driver cdc_ether
[ 3.001607] usb 1-1.4: reset high-speed USB device number 5 using dwc_otg
[ 3.048362] Driver for 1-wire Dallas network protocol.
[ 3.061852] w1-gpio [email protected]: gpio pin 4, external pullup pin -1, parasitic power 0
[ 3.061886] w1_add_master_device: set_pullup requires write_byte or touch_bit, disabling
[ 3.183231] r8152 1-1.4:1.0 eth0: v1.09.9
[ 3.363887] media: Linux media interface: v0.10
[ 3.397879] Linux video capture interface: v2.00
[ 3.447395] unicam 3f800000.csi0: ep_node is endpoint
[ 3.447462] unicam 3f800000.csi0: sensor_node is tc358743
[ 3.447477] unicam 3f800000.csi0: remote_ep is endpoint
[ 3.447498] unicam 3f800000.csi0: parsed remote_ep to endpoint. nr_of_link_frequencies 0, bus_type 4
[ 3.447505] unicam 3f800000.csi0: bus_type is 4
[ 3.447510] unicam 3f800000.csi0: v4l2-endpoint: CSI2
[ 3.447516] unicam 3f800000.csi0: Virtual Channel=0
[ 3.447522] unicam 3f800000.csi0: flags=0x00000200
[ 3.447527] unicam 3f800000.csi0: num_data_lanes=2
[ 3.447533] unicam 3f800000.csi0: found sub-device tc358743
[ 3.448075] unicam 3f801000.csi1: ep_node is endpoint
[ 3.448108] unicam 3f801000.csi1: sensor_node is tc358743
[ 3.448120] unicam 3f801000.csi1: remote_ep is endpoint
[ 3.448135] unicam 3f801000.csi1: parsed remote_ep to endpoint. nr_of_link_frequencies 0, bus_type 4
[ 3.448141] unicam 3f801000.csi1: bus_type is 4
[ 3.448146] unicam 3f801000.csi1: v4l2-endpoint: CSI2
[ 3.448151] unicam 3f801000.csi1: Virtual Channel=0
[ 3.448158] unicam 3f801000.csi1: flags=0x00000200
[ 3.448164] unicam 3f801000.csi1: num_data_lanes=2
[ 3.448169] unicam 3f801000.csi1: found sub-device tc358743
[ 3.501972] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[ 3.522210] bcm2835_alsa bcm2835_alsa: card created with 8 channels
[ 3.699415] tc358743 0-000f: chip found @ 0x1e (bcm2835 I2C adapter)
[ 3.703095] unicam 3f801000.csi1: Using sensor tc358743 0-000f for capture
[ 3.703106] unicam 3f801000.csi1: Get supported formats...
[ 3.703116] unicam 3f801000.csi1: subdev tc358743 0-000f: code: 100a idx: 0
[ 3.703127] unicam 3f801000.csi1: fmt 100a returned as 7f2b6670, V4L2 FOURCC 33424752, csi_dt 24
[ 3.703135] unicam 3f801000.csi1: matched fourcc: RGB3: code: 100a idx: 0
[ 3.703142] unicam 3f801000.csi1: subdev tc358743 0-000f: code: 200f idx: 1
[ 3.703150] unicam 3f801000.csi1: fmt 200f returned as 7f2b661c, V4L2 FOURCC 59565955, csi_dt 1E
[ 3.703158] unicam 3f801000.csi1: matched fourcc: UYVY: code: 200f idx: 1
[ 3.703165] unicam 3f801000.csi1: subdev->enum_mbus_code idx 2 returned -22 - continue
[ 3.703170] unicam 3f801000.csi1: Done all formats
[ 3.703179] unicam 3f801000.csi1: active_fmt[0] (b2a1b548) is code 100a, fourcc RGB3, depth 24
[ 3.703188] unicam 3f801000.csi1: active_fmt[1] (b2a1b554) is code 200f, fourcc UYVY, depth 16
[ 3.704082] unicam 3f801000.csi1: __subdev_get_format 0x0 code:100a
[ 3.704935] unicam 3f801000.csi1: __subdev_get_format 0x0 code:100a
[ 3.704951] unicam 3f801000.csi1: unicam_calc_format_size_bpl: fourcc: RGB3 size: 16x16 bpl:48 img_size:768
[ 3.707185] tc358743 0-000f: I2C write 0x0002 = 0x0c00
[ 3.708974] tc358743 0-000f: I2C write 0x0002 = 0x0f00
[ 3.709812] tc358743 0-000f: I2C write 0x0002 = 0x0c00
[ 3.711609] tc358743 0-000f: I2C write 0x0002 = 0x0c00
[ 3.712436] tc358743 0-000f: I2C write 0x0006 = 0x0176
[ 3.713114] tc358743 0-000f: I2C write 0x8540 = 0x8c
[ 3.713784] tc358743 0-000f: I2C write 0x8541 = 0x0a
[ 3.715297] tc358743 0-000f: I2C write 0x8531 = 0x20
[ 3.716056] tc358743 0-000f: I2C write 0x85aa = 0x0e
[ 3.716742] tc358743 0-000f: I2C write 0x85ab = 0x01
[ 3.717424] tc358743 0-000f: I2C write 0x85ac = 0xf6
[ 3.718117] tc358743 0-000f: I2C write 0x85ad = 0x06
[ 3.719417] tc358743 0-000f: I2C write 0x8630 = 0xb0
[ 3.720108] tc358743 0-000f: I2C write 0x8631 = 0x1e
[ 3.720795] tc358743 0-000f: I2C write 0x8632 = 0x04
[ 3.724139] tc358743 0-000f: I2C write 0x8670 = 0x01
[ 3.725667] tc358743 0-000f: I2C write 0x8543 = 0x32
[ 3.727169] tc358743 0-000f: I2C write 0x85c7 = 0x02
[ 3.728675] tc358743 0-000f: I2C write 0x8534 = 0x3e
[ 3.729350] tc358743 0-000f: I2C write 0x8532 = 0x80
[ 3.730905] tc358743 0-000f: I2C write 0x8533 = 0x00
[ 3.733851] tc358743 0-000f: I2C write 0x8536 = 0x40
[ 3.734549] tc358743 0-000f: I2C write 0x853f = 0x0a
[ 3.735294] tc358743 0-000f: I2C write 0x8546 = 0x2d
[ 3.736860] tc358743 0-000f: I2C write 0x8552 = 0xc1
[ 3.738377] tc358743 0-000f: I2C write 0x85af = 0x06
[ 3.739932] tc358743 0-000f: I2C write 0x8534 = 0x3f
[ 3.739944] tc358743 0-000f: tc358743_set_hdmi_hdcp: disable
[ 3.741487] tc358743 0-000f: I2C write 0x8560 = 0x26
[ 3.742142] tc358743 0-000f: I2C write 0x8600 = 0x00
[ 3.743573] tc358743 0-000f: I2C write 0x8602 = 0xf3
[ 3.749210] tc358743 0-000f: I2C write 0x8603 = 0x02
[ 3.749882] tc358743 0-000f: I2C write 0x8604 = 0x0c
[ 3.750532] tc358743 0-000f: I2C write 0x8606 = 0x05
[ 3.751187] tc358743 0-000f: I2C write 0x8607 = 0x00
[ 3.751851] tc358743 0-000f: I2C write 0x8620 = 0x22
[ 3.752512] tc358743 0-000f: I2C write 0x8640 = 0x01
[ 3.753179] tc358743 0-000f: I2C write 0x8641 = 0x65
[ 3.753841] tc358743 0-000f: I2C write 0x8642 = 0x07
[ 3.754499] tc358743 0-000f: I2C write 0x8652 = 0x02
[ 3.755197] tc358743 0-000f: I2C write 0x8665 = 0x10
[ 3.756973] tc358743 0-000f: I2C write 0x0004 = 0x0c14
[ 3.757640] tc358743 0-000f: I2C write 0x8709 = 0xff
[ 3.758301] tc358743 0-000f: I2C write 0x870b = 0x2c
[ 3.758959] tc358743 0-000f: I2C write 0x870c = 0x53
[ 3.759613] tc358743 0-000f: I2C write 0x870d = 0x01
[ 3.760263] tc358743 0-000f: I2C write 0x870e = 0x30
[ 3.760917] tc358743 0-000f: I2C write 0x9007 = 0x10
[ 3.765732] tc358743 0-000f: I2C write 0x8570 = 0xe6
[ 3.767232] tc358743 0-000f: I2C write 0x8573 = 0x81
[ 3.767900] tc358743 0-000f: I2C write 0x8574 = 0x08
[ 3.767917] tc358743 0-000f: tc358743_s_dv_timings: 640x480p59.94 (800x525)
[ 3.767926] tc358743 0-000f: enable_stream: disable
[ 3.769021] tc358743 0-000f: I2C write 0x857f = 0xd0
[ 3.770787] tc358743 0-000f: I2C write 0x0004 = 0x0c14
[ 3.772759] tc358743 0-000f: tc358743_set_pll:
[ 3.772777] tc358743 0-000f: tc358743_set_csi:
[ 3.774564] tc358743 0-000f: I2C write 0x0002 = 0x0e00
[ 3.775362] tc358743 0-000f: I2C write 0x0002 = 0x0c00
[ 3.776448] tc358743 0-000f: I2C write 0x0148 = 0x00000001
[ 3.777530] tc358743 0-000f: I2C write 0x014c = 0x00000001
[ 3.778611] tc358743 0-000f: I2C write 0x0150 = 0x00000001
[ 3.779693] tc358743 0-000f: I2C write 0x0210 = 0x00001b58
[ 3.780774] tc358743 0-000f: I2C write 0x0214 = 0x00000007
[ 3.781866] tc358743 0-000f: I2C write 0x0218 = 0x00002806
[ 3.782949] tc358743 0-000f: I2C write 0x021c = 0x00000000
[ 3.784057] tc358743 0-000f: I2C write 0x0220 = 0x00000806
[ 3.785150] tc358743 0-000f: I2C write 0x0224 = 0x00004268
[ 3.786234] tc358743 0-000f: I2C write 0x0228 = 0x00000008
[ 3.787317] tc358743 0-000f: I2C write 0x022c = 0x00000005
[ 3.788398] tc358743 0-000f: I2C write 0x0230 = 0x00000000
[ 3.789479] tc358743 0-000f: I2C write 0x0234 = 0x00000003
[ 3.790559] tc358743 0-000f: I2C write 0x0238 = 0x00000000
[ 3.791642] tc358743 0-000f: I2C write 0x0204 = 0x00000001
[ 3.792729] tc358743 0-000f: I2C write 0x0518 = 0x00000001
[ 3.793843] tc358743 0-000f: I2C write 0x0500 = 0xa3008080
[ 3.796001] tc358743 0-000f: I2C write 0x0500 = 0xb4000312
[ 3.797095] tc358743 0-000f: I2C write 0x0500 = 0xd5000012
[ 3.798178] tc358743 0-000f: I2C write 0x0500 = 0xa6000004
[ 3.798187] tc358743 0-000f: tc358743_set_csi_color_space: RGB 888 24-bit
[ 3.799674] tc358743 0-000f: I2C write 0x8573 = 0x01
[ 3.801139] tc358743 0-000f: I2C write 0x8576 = 0x00
[ 3.804483] tc358743 0-000f: I2C write 0x0004 = 0x0c14
[ 3.805152] tc358743 0-000f: I2C write 0x8502 = 0xff
[ 3.805846] tc358743 0-000f: I2C write 0x8503 = 0xff
[ 3.806530] tc358743 0-000f: I2C write 0x8504 = 0xff
[ 3.807198] tc358743 0-000f: I2C write 0x8505 = 0xff
[ 3.807859] tc358743 0-000f: I2C write 0x8506 = 0xff
[ 3.808533] tc358743 0-000f: I2C write 0x8507 = 0xff
[ 3.809189] tc358743 0-000f: I2C write 0x8508 = 0xff
[ 3.809853] tc358743 0-000f: I2C write 0x8509 = 0xff
[ 3.810509] tc358743 0-000f: I2C write 0x850a = 0xff
[ 3.811156] tc358743 0-000f: I2C write 0x850b = 0xff
[ 3.812770] tc358743 0-000f: I2C write 0x850c = 0xff
[ 3.813440] tc358743 0-000f: I2C write 0x850d = 0xff
[ 3.814094] tc358743 0-000f: I2C write 0x850e = 0xff
[ 3.814741] tc358743 0-000f: I2C write 0x850f = 0xff
[ 3.815533] tc358743 0-000f: I2C write 0x0014 = 0xffff
[ 3.816365] tc358743 0-000f: tc358743_enable_interrupts: cable connected = 1
[ 3.817011] tc358743 0-000f: I2C write 0x8512 = 0xce
[ 3.821810] tc358743 0-000f: I2C write 0x8513 = 0xdf
[ 3.822477] tc358743 0-000f: I2C write 0x8515 = 0x3d
[ 3.823128] tc358743 0-000f: I2C write 0x8516 = 0xfe
[ 3.823775] tc358743 0-000f: I2C write 0x851b = 0xfd
[ 3.824575] tc358743 0-000f: I2C write 0x0016 = 0xfcff
[ 3.824589] tc358743 0-000f: tc358743 found @ 0x1e (bcm2835 I2C adapter)
[ 3.824806] tc358743 1-000f: chip found @ 0x1e (bcm2835 I2C adapter)
[ 4.874031] tc358743 0-000f: tc358743_isr: IntStatus = 0x0200
[ 4.878067] tc358743 0-000f: I2C write 0x8502 = 0x01
[ 4.878081] tc358743 0-000f: tc358743_hdmi_sys_int_handler: SYS_INT = 0x01
[ 4.878923] tc358743 0-000f: tc358743_hdmi_sys_int_handler: Tx 5V power present: yes
[ 4.878931] tc358743 0-000f: tc358743_enable_edid: no EDID -> no hotplug
[ 4.880699] tc358743 0-000f: I2C write 0x0014 = 0x0200
[ 5.029239] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 5.048768] r8152 1-1.4:1.0 eth0: carrier on
[ 5.048949] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 5.736729] w1_master_driver w1_bus_master1: w1_search: max_slave_count 64 reached, will continue next search.
[ 5.875119] Adding 102396k swap on /var/swap. Priority:-2 extents:1 across:102396k SSFS
[ 5.912623] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 6.952158] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 7.992544] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 8.732292] random: crng init done
[ 8.732301] random: 7 urandom warning(s) missed due to ratelimiting
[ 9.032169] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 10.072603] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 11.112168] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 11.176367] fuse init (API version 7.26)
[ 12.152196] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 13.192224] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 14.232560] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 15.272182] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 16.312188] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 17.352554] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 18.392151] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 19.432587] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 20.472571] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 21.512626] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 22.552157] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 23.592618] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 24.632156] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 25.672556] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 26.712568] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 27.752166] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 28.792578] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 29.832189] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 30.872549] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 31.912556] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 32.952568] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 33.992569] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 35.032555] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 36.072561] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 37.112534] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 38.152164] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 39.192571] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 40.232558] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 41.272575] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 42.312540] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 43.352545] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 44.392538] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 45.432577] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 46.472575] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 47.512576] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 48.552545] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 49.592547] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 50.632536] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 51.672539] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 52.712545] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 53.752546] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 54.792533] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 55.832543] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 56.396390] w1_master_driver w1_bus_master1: Attaching one wire slave 00.800000000000 crc 8c
[ 56.401264] w1_master_driver w1_bus_master1: Family 0 for 00.800000000000.8c is not registered.
[ 56.401578] tc358743 1-000f: chip found @ 0x1e (bcm2835 I2C adapter)
[ 56.872540] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 57.912540] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 58.952540] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 59.992556] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 61.032544] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
[ 62.072533] tc358743 0-000f: tc358743_isr: IntStatus = 0x0000
I don't believe so. Life is a touch complicated in that an overlay is just that - updating/overlaying an existing DT. The order of i2c0/i2c1 and csi0/csi1 will be the same whichever way around the overlays are specified, therefore the order that the kernel parses them in will be the same.xasm wrote: ↑Thu Nov 22, 2018 9:21 amHi, 6by9!
I just made another one test and got a quite strange result.
I changed dtoverlay lines - now the first one is dtoverlay=tc358743-csi0 and the second is dtoverlay=tc358743,i2c_pins_28_29=1
I expected that CAM0 will work and CAM1 will not. But in reality, I still see dev/video0 only and video still comes from CAM1.![]()
Probably the issue is not in the kernel, but in dts file?
Code: Select all
// SPDX-License-Identifier: GPL-2.0-only
// Definitions for Toshiba TC358743 HDMI to CSI2 bridge on ARM I2C bus
/dts-v1/;
/plugin/;
/{
compatible = "brcm,bcm2708";
[email protected] {
target = <&i2c_arm>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
[email protected] {
compatible = "toshiba,tc358743";
reg = <0x0f>;
status = "okay";
clocks = <&tc358743_0_clk>;
clock-names = "refclk";
tc358743_0_clk: bridge-clk-0 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <27000000>;
};
port {
tc358743_0: endpoint {
remote-endpoint = <&csi0_ep>;
clock-lanes = <0>;
clock-noncontinuous;
link-frequencies =
/bits/ 64 <486000000>;
};
};
};
};
};
[email protected] {
target = <&csi0>;
__overlay__ {
status = "okay";
port {
csi0_ep: endpoint {
remote-endpoint = <&tc358743_0>;
};
};
};
};
[email protected] {
target = <&i2c_arm>;
__overlay__ {
[email protected] {
port {
endpoint {
data-lanes = <1 2>;
};
};
};
};
};
[email protected] {
target = <&i2c1_pins>;
__dormant__ {
brcm,pins = <2 3>;
brcm,function = <4>; /* alt0 */
};
};
[email protected] {
target = <&i2c1_pins>;
__overlay__ {
brcm,pins = <44 45>;
brcm,function = <6>; /* alt2 */
};
};
[email protected] {
target = <&i2c_arm>;
__overlay__ {
status = "okay";
};
};
__overrides__ {
i2c_pins_2_3 = <0>,"+3-4";
link-frequency = <&tc358743_0>,"link-frequencies#0";
};
};
Code: Select all
dtc -I dts -O dtb -o tc358743-overlay-csi0.dtb tc358743-overlay-csi0.dts
sudo cp tc358743-overlay-csi0.dtb /boot/ tc358743-overlay-csi0.bin
dtc -O dtb -o tc358743-csi0.dtbo tc358743-overlay-csi0.dts
sudo cp tc358743-csi0.dtbo /boot/overlays
Code: Select all
dtparam=i2c_arm=on
dtoverlay=tc358743,i2c_pins_28_29=1
dtoverlay=tc358743-csi0
Code: Select all
// SPDX-License-Identifier: GPL-2.0-only
// Definitions for Toshiba TC358743 HDMI to CSI2 bridge on ARM I2C bus
/dts-v1/;
/plugin/;
/{
compatible = "brcm,bcm2708";
[email protected] {
target = <&i2c_arm>;
__overlay__ {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
[email protected] {
compatible = "toshiba,tc358743";
reg = <0x0f>;
status = "okay";
clocks = <&tc358743_0_clk>;
clock-names = "refclk";
tc358743_0_clk: bridge-clk-0 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <27000000>;
};
port {
tc358743_0: endpoint {
remote-endpoint = <&csi0_ep>;
clock-lanes = <0>;
clock-noncontinuous;
link-frequencies =
/bits/ 64 <486000000>;
};
};
};
};
};
[email protected] {
target = <&csi0>;
__overlay__ {
status = "okay";
port {
csi0_ep: endpoint {
remote-endpoint = <&tc358743_0>;
};
};
};
};
[email protected] {
target = <&i2c_arm>;
__overlay__ {
[email protected] {
port {
endpoint {
data-lanes = <1 2>;
};
};
};
};
};
[email protected] {
target = <&i2c1_pins>;
__dormant__ {
brcm,pins = <2 3>;
brcm,function = <4>; /* alt0 */
};
};
[email protected] {
target = <&i2c1_pins>;
__overlay__ {
brcm,pins = <44 45>;
brcm,function = <6>; /* alt2 */
};
};
[email protected] {
target = <&i2c_arm>;
__overlay__ {
status = "okay";
};
};
__overrides__ {
i2c_pins_2_3 = <0>,"+3-4";
link-frequency = <&tc358743_0>,"link-frequencies#0";
};
};