Audio Codec WM8960 on TX2

Hi everybody,

I want to attach the ReSpeaker 2-Mics Pi Hat (http://wiki.seeedstudio.com/ReSpeaker_2_Mics_Pi_HAT) to an expansion header of a custom TX2 carrier board. Unfortunately it does not work. Our expansion header is nearly similar to the J21 header of the Jetson DevKit. The pins of the ReSpeaker board should be compatible, all used signals are provided on the header. So, from the hardware side, everything should be ok.

I tried the following steps to get the codec running:

  1. I activated the WM8960 driver in the kernel.
  2. I added the codec to the device tree:
i2c@c240000 {
    wm8960_codec: wm8960@1a {
        status = "okay";
        compatible = "wlf,wm8960";
        reg = <0x1a>;
    };
};
  1. I changed the rt565x_dai_link entry:
rt565x_dai_link: nvidia,dai-link-1 {
    link-name = "wm8960-playback";
    cpu-dai = <&tegra_i2s1>;
    codec-dai = <&wm8960_codec>;
    cpu-dai-name = "I2S1";
    codec-dai-name = "wm8960-hifi";
    format = "i2s";
    bitclock-slave;
    frame-slave;
    bitclock-noninversion;
    frame-noninversion;
    bit-format = "s16_le";
    bclk_ratio = <0>;
    srate = <48000>;
    num-channel = <2>;
    ignore_suspend;
    name-prefix = "x";
    status = "okay";
};
  1. I changed the audio routing to:
nvidia,audio-routing =
    "x Headphone", "x HP_L",
    "x Headphone", "x HP_R";

This is the output of dmesg:

[    0.000000] Booting Linux on physical CPU 0x100
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.38+ (hesmar@hesmar-XPS-15-9570) (gcc version 4.8.5 (GCC) ) #35 SMP PREEMPT Thu Nov 15 15:46:09 CET 2018
[    0.000000] Boot CPU: AArch64 Processor [411fd073]
[    0.000000] earlycon: Early serial console at MMIO32 0x3100000 (options '')
[    0.000000] bootconsole [uart0] enabled
[    0.000000] Reserved memory: initialized node ramoops_carveout, compatible id nvidia,ramoops
[    0.000000] cma: Reserved 64 MiB at 0x00000000fc000000
[    0.000000] On node 0 totalpages: 2052096
[    0.000000]   DMA zone: 8192 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 519680 pages, LIFO batch:31
[    0.000000]   Normal zone: 23968 pages used for memmap
[    0.000000]   Normal zone: 1532416 pages, LIFO batch:31
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] PERCPU: Embedded 17 pages/cpu @ffffffc1f6655000 s31360 r8192 d30080 u69632
[    0.000000] pcpu-alloc: s31360 r8192 d30080 u69632 alloc=17*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 2019936
[    0.000000] Kernel command line: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 OS=l4t fbcon=map:0 net.ifnames=0 memtype=0 video=tegrafb no_console_suspend=1 earlycon=uart8250,mmio32,0x03100000 nvdumper_reserved=0x2772e0000 gpt tegraid=18.1.2.0.0 tegra_keep_boot_clocks maxcpus=6 boot.slot_suffix= boot.ratchetvalues=0.2.1 androidboot.serialno=0322617063072 bl_prof_dataptr=0x10000@0x277040000 sdhci_tegra.en_boot_part_access=1 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Memory: 7976676K/8208384K available (11148K kernel code, 1815K rwdata, 5780K rodata, 1164K init, 689K bss, 166172K reserved, 65536K cma-reserved)
[    0.000000] Virtual kernel memory layout:
                   vmalloc : 0xffffff8000000000 - 0xffffffbdbfff0000   (   246 GB)
                   vmemmap : 0xffffffbdc0000000 - 0xffffffbfc0000000   (     8 GB maximum)
                             0xffffffbdc2000000 - 0xffffffbdc9da0000   (   125 MB actual)
                   fixed   : 0xffffffbffa7fd000 - 0xffffffbffac00000   (  4108 KB)
                   PCI I/O : 0xffffffbffae00000 - 0xffffffbffbe00000   (    16 MB)
                   modules : 0xffffffbffc000000 - 0xffffffc000000000   (    64 MB)
                   memory  : 0xffffffc000000000 - 0xffffffc1f6800000   (  8040 MB)
                     .init : 0xffffffc001109000 - 0xffffffc00122c000   (  1164 KB)
                     .text : 0xffffffc000080000 - 0xffffffc001109000   ( 16932 KB)
                     .data : 0xffffffc00124d000 - 0xffffffc001412d20   (  1816 KB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=6, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 64.
[    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=6.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=6
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] Architected cp15 timer(s) running at 31.25MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xe6a171046, max_idle_ns: 881590405314 ns
[    0.000002] sched_clock: 56 bits at 31MHz, resolution 32ns, wraps every 4398046511088ns
[    0.009481] Console: colour dummy device 80x25
[    0.014141] console [tty0] enabled
[    0.017699] bootconsole [uart0] disabled
[    0.021801] kmemleak: Kernel memory leak detector disabled
[    0.021813] Calibrating delay loop (skipped), value calculated using timer frequency.. 62.50 BogoMIPS (lpj=125000)
[    0.021825] pid_max: default: 32768 minimum: 301
[    0.021873] Security Framework initialized
[    0.021910] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes)
[    0.021920] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes)
[    0.022302] Initializing cgroup subsys io
[    0.022315] Initializing cgroup subsys memory
[    0.022332] Initializing cgroup subsys devices
[    0.022342] Initializing cgroup subsys freezer
[    0.022351] Initializing cgroup subsys net_cls
[    0.022362] Initializing cgroup subsys perf_event
[    0.022371] Initializing cgroup subsys net_prio
[    0.022382] Initializing cgroup subsys pids
[    0.022390] Initializing cgroup subsys debug
[    0.022534] CPU0 ipc=752
[    0.022544] CPU1 ipc=1024
[    0.022553] CPU2 ipc=1024
[    0.022561] CPU3 ipc=752
[    0.022571] CPU4 ipc=752
[    0.022581] CPU5 ipc=752
[    0.022620] ASID allocator initialised with 65536 entries
[    0.044864] tegra-id: chipid=21817.
[    0.044881] tegra-id: opt_subrevision=1.
[    0.044894] Tegra Revision: A02p SKU: 0xdc CPU Process: 0 SoC Process: 0
[    0.045400] DTS File Name: /home/hesmar/Development/3dvisionlabs/embedded/nvidia/L4T-28.2/HS_DK1_CB/sources/kernel/kernel-4.4/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
[    0.045431] DTB Build time: Nov 15 2018 17:47:20
[    0.062414] CPU1: Booted secondary processor [4e0f0030]
[    0.073944] CPU2: Booted secondary processor [4e0f0030]
[    0.085640] CPU3: Booted secondary processor [411fd073]
[    0.097654] CPU4: Booted secondary processor [411fd073]
[    0.109653] CPU5: Booted secondary processor [411fd073]
[    0.109716] Brought up 6 CPUs
[    0.109774] SMP: Total of 6 processors activated.
[    0.109787] CPU: All CPU(s) started at EL2
[    0.110190] devtmpfs: initialized
[    0.129663] Initilizing CustomIPI irq domain
[    0.129859] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.130641] pinctrl core: initialized pinctrl subsystem
[    0.130818] OS set in device tree is not L4T.
[    0.131020] regulator-dummy: no parameters
[    0.131127] Initializing plugin-manager
[    0.131179] Plugin module not found
[    0.131581] node /plugin-manager/soc-prod-a02-fragment match with chip-id A02P
[    0.131891] node /plugin-manager/fragement@0 match with odm-data enable-denver-wdt
[    0.132481] node /plugin-manager/fragement@4 match with odm-data enable-denver-wdt
[    0.133610] node /plugin-manager/fragment-sdwake-p3310-1000-300 match with board >=3310-1000-300
[    0.133970] node /plugin-manager/fragement-pmon-p3310-1000-300 match with board >=3310-1000-300
[    0.134221] node /plugin-manager/fragement-pmon-p3310-1000-800 match with board >=3310-1000-800
[    0.134437] node /plugin-manager/fragment-devslp@0 match with board >=3310-1000-200
[    0.134848] node /plugin-manager/fragment-500-pcie-config match with board >=3310-1000-500
[    0.135278] node /plugin-manager/fragment-500-xusb-config match with board >=3310-1000-500
[    0.135546] node /plugin-manager/fragment-500-e3325-pcie match with board >=3310-1000-500
[    0.135915] node /plugin-manager/fragment-p3310-c00-comm match with board >=3310-1000-800
[    0.136155] node /plugin-manager/fragment-p3310-c00-pmic match with board >=3310-1000-800
[    0.136368] node /plugin-manager/fragment-p3310-c01 match with board >=3310-1000-900
[    0.136619] node /plugin-manager/fragment-p3310-c03 match with board >=3310-1000-B00
[    0.138543] Adding domain adsp-pd to PM domain ape-pd
[    0.140243] NET: Registered protocol family 16
[    0.142405] console [pstore-1] enabled
[    0.142418] pstore: Registered ramoops as persistent store backend
[    0.142432] ramoops: attached 0x200000@0x277080000, ecc: 0/0
[    0.149644] cpuidle: using governor ladder
[    0.157640] cpuidle: using governor menu
[    0.158507] bpmp: waiting for handshake
[    0.158522] bpmp: handshake completed
[    0.158566] bpmp: synchronizing channels
[    0.158587] bpmp: channels synchronized
[    0.158599] bpmp: mail init ok
[    0.158926] vdso: 2 pages (1 code @ ffffffc001255000, 1 data @ ffffffc001254000)
[    0.158956] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.159882] atomic_pool_init():526: DMA: preallocated 1024 KiB pool for atomic allocations
[    0.161304] tegra_powergate_init: DONE
[    0.161327] DTS File Name: /home/hesmar/Development/3dvisionlabs/embedded/nvidia/L4T-28.2/HS_DK1_CB/sources/kernel/kernel-4.4/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t18x/quill/kernel-dts/tegra186-quill-p3310-1000-c03-00-base.dts
[    0.161357] DTB Build time: Nov 15 2018 17:47:20
[    0.162206] Tegra reboot handler registered.
[    0.162836] Registering Tegra186 clocks (this may take a while)...done
[    0.164178] arm-smmu 12000000.iommu: probing hardware configuration...
[    0.164195] arm-smmu 12000000.iommu: SMMUv2 with:
[    0.164208] arm-smmu 12000000.iommu:         stage 1 translation
[    0.164221] arm-smmu 12000000.iommu:         stage 2 translation
[    0.164233] arm-smmu 12000000.iommu:         nested translation
[    0.164248] arm-smmu 12000000.iommu:         stream matching with 128 register groups, mask 0x7f80
[    0.164267] arm-smmu 12000000.iommu: SMMU address space size (0x800000) differs from mapped region size (0x1000000)!
[    0.164286] arm-smmu 12000000.iommu:         64 context banks (0 stage-2 only)
[    0.164300] arm-smmu 12000000.iommu:         Stage-1: 39-bit VA -> 48-bit IPA
[    0.164314] arm-smmu 12000000.iommu:         Stage-2: 39-bit IPA -> 48-bit PA
[    0.203006] arm-smmu 12000000.iommu: registered 67 master devices
[    0.205183] iommu: Adding device 3460000.sdhci to group 0
[    0.205615] iommu: Adding device 3400000.sdhci to group 1
[    0.206955] iommu: Adding device 3507000.ahci-sata to group 2
[    0.207225] iommu: Adding device 3160000.i2c to group 3
[    0.207476] iommu: Adding device c240000.i2c to group 4
[    0.207700] iommu: Adding device 3180000.i2c to group 5
[    0.207915] iommu: Adding device 3190000.i2c to group 6
[    0.208195] iommu: Adding device 31b0000.i2c to group 7
[    0.208396] iommu: Adding device 31c0000.i2c to group 8
[    0.208607] iommu: Adding device c250000.i2c to group 9
[    0.208811] iommu: Adding device 31e0000.i2c to group 10
[    0.209924] iommu: Adding device 3210000.spi to group 11
[    0.210127] iommu: Adding device c260000.spi to group 12
[    0.210333] iommu: Adding device 3240000.spi to group 13
[    0.210815] iommu: Adding device 3100000.serial to group 14
[    0.211024] iommu: Adding device 3110000.serial to group 15
[    0.211240] iommu: Adding device c280000.serial to group 16
[    0.211444] iommu: Adding device 3130000.serial to group 17
[    0.212353] iommu: Adding device 2490000.ether_qos to group 18
[    0.212722] iommu: Adding device b000000.rtcpu to group 19
[    0.213016] iommu: Adding device c1a0000.aon to group 20
[    0.213647] Wake73 for irq=42
[    0.213842] iommu: Adding device smmu_test to group 21
[    0.214208] mc: mapped MMIO address: 0xffffff8000560000 -> 0x2c10000
[    0.214230] mc: mapped MMIO address: 0xffffff8000640000 -> 0x2c20000
[    0.214251] mc: mapped MMIO address: 0xffffff8000660000 -> 0x2c30000
[    0.214271] mc: mapped MMIO address: 0xffffff8000fa0000 -> 0x2c40000
[    0.214291] mc: mapped MMIO address: 0xffffff8000fc0000 -> 0x2c50000
[    0.214311] mc-err: Set intmask: 0xf3140
[    0.214458] ecc-err: dram ecc disabled-MC_ECC_CONTROL:0x0000000c
[    0.215031] Wake76 for irq=199
[    0.215043] Wake77 for irq=199
[    0.215054] Wake78 for irq=199
[    0.215064] Wake79 for irq=199
[    0.215074] Wake80 for irq=199
[    0.215084] Wake81 for irq=199
[    0.215093] Wake82 for irq=199
[    0.215164] iommu: Adding device 3530000.xhci to group 22
[    0.215404] iommu: Adding device 3550000.xudc to group 23
[    0.215916] tegra-pmc c360000.pmc: scratch reg offset dts data not present
[    0.215933] tegra-pmc: ### PMC reset source: Software reset
[    0.215945] tegra-pmc: ### PMC reset level: L1
[    0.215956] tegra-pmc: ### PMC reset status reg: 0x2d
[    0.216102] padctrl padctrl.0: Pad control driver tegra-pmc-padctrl registered
[    0.216122] tegra-pmc c360000.pmc: IO padctrl driver initialized
[    0.216220] tegra186-aowake c370000.pmc: WAKE_AOWAKE_CTRL_0 = 3
[    0.216237] tegra186-aowake c370000.pmc: WAKE_AOWAKE_CNTRL_24(PMU_INT) = 320
[    0.216559] iommu: Adding device 13e10000.host1x to group 24
[    0.216704] iommu: Adding device 13e10000.host1x:ctx0 to group 25
[    0.216871] iommu: Adding device 13e10000.host1x:ctx1 to group 26
[    0.217019] iommu: Adding device 13e10000.host1x:ctx2 to group 27
[    0.217168] iommu: Adding device 13e10000.host1x:ctx3 to group 28
[    0.217327] iommu: Adding device 13e10000.host1x:ctx4 to group 29
[    0.217483] iommu: Adding device 13e10000.host1x:ctx5 to group 30
[    0.217642] iommu: Adding device 13e10000.host1x:ctx6 to group 31
[    0.217796] iommu: Adding device 13e10000.host1x:ctx7 to group 32
[    0.218089] iommu: Adding device 150c0000.nvcsi to group 33
[    0.218473] iommu: Adding device 15700000.vi to group 34
[    0.218688] iommu: Adding device 15600000.isp to group 35
[    0.218915] iommu: Adding device 15210000.nvdisplay to group 36
[    0.219047] iommu: Adding device 15340000.vic to group 37
[    0.219178] iommu: Adding device 154c0000.nvenc to group 38
[    0.219319] iommu: Adding device 15480000.nvdec to group 39
[    0.219537] iommu: Adding device 15380000.nvjpg to group 40
[    0.219671] iommu: Adding device 15500000.tsec to group 41
[    0.219800] iommu: Adding device 15100000.tsecb to group 42
[    0.220273] iommu: Adding device 15810000.se to group 43
[    0.220401] iommu: Adding device 15820000.se to group 44
[    0.220523] iommu: Adding device 15830000.se to group 45
[    0.220655] iommu: Adding device 15840000.se to group 46
[    0.221004] iommu: Adding device 17000000.gp10b to group 47
[    0.222087] tegra-reset 5000000.clock: registered 193 resets.
[    0.225908] iommu: Adding device d000000.bpmp to group 48
[    0.226291] bpmp: ping status is 0
[    0.226452] bpmp d000000.bpmp: firmware tag is 83385b61e34297b2f37e76e0cd1ff81e
[    0.226919] bpmp d000000.bpmp: probe ok
[    0.230568] iommu: Adding device 2600000.dma to group 49
[    0.231486] GPIO line 421 (ethernet_disable_lom) hogged as output/low
[    0.231553] GPIO line 461 (cam0-rst) hogged as output/low
[    0.231604] GPIO line 456 (cam0-pwdn) hogged as output/low
[    0.231656] GPIO line 426 (cam1-pwdn) hogged as output/low
[    0.231736] GPIO line 483 (cam-vsync-02) hogged as input
[    0.231786] GPIO line 424 (wifi-enable) hogged as output/high
[    0.231835] GPIO line 445 (sdmmc-wake-input) hogged as input
[    0.231884] GPIO line 446 (sdmmc-wake-output) hogged as output/low
[    0.232013] gpiochip_add_data: registered GPIOs 320 to 511 on device: tegra-gpio
[    0.233862] GPIO line 277 (cam-vsync-1) hogged as input
[    0.233947] GPIO line 315 (wifi-wake-ap) hogged as input
[    0.234068] gpiochip_add_data: registered GPIOs 256 to 319 on device: tegra-gpio-aon
[    0.235016] iommu: Adding device 10003000.pcie-controller to group 50
[    0.235404] iommu: Adding device sound to group 51
[    0.237178] iommu: Adding device 3510000.hda to group 52
[    0.238322] iommu: Adding device adsp_audio to group 53
[    0.239758] iommu: Adding device 2993000.adsp to group 54
[    0.249872] vdd-ac-bat: 5000 mV 
[    0.252166] vdd-1v8-ap: 1800 mV 
[    0.272441] SCSI subsystem initialized
[    0.272611] libata version 3.00 loaded.
[    0.272814] usbcore: registered new interface driver usbfs
[    0.272876] usbcore: registered new interface driver hub
[    0.272981] usbcore: registered new device driver usb
[    0.286098] media: Linux media interface: v0.10
[    0.286166] Linux video capture interface: v2.00
[    0.290285] pps_core: LinuxPPS API ver. 1 registered
[    0.290315] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.290366] PTP clock support registered
[    0.291368] tegra_wdt_t18x 30c0000.watchdog: Tegra WDT init timeout = 120 sec
[    0.291447] tegra_wdt_t18x 30c0000.watchdog: Registered successfully
[    0.292984] max77620 4-003c: PMIC Version OTP:0x45 and ES:0x8
[    0.295104] GPIO line 253 (spmic_gpio_input_5) hogged as input
[    0.295294] GPIO line 254 (spmic_gpio_input_6) hogged as input
[    0.295410] gpiochip_add_data: registered GPIOs 248 to 255 on device: max77620-gpio
[    0.302587] vddio-ddr: at 1125 mV 
[    0.306428] avdd_dsi_csi: 1200 mV 
[    0.310427] vdd-1v8: 1800 mV 
[    0.314429] vdd-3v3-sys: 3300 mV 
[    0.315301] spmic-ldo0: at 1800 mV 
[    0.316166] spmic-ldo1: at 800 mV 
[    0.318430] vddio-3v3: 3300 mV 
[    0.319170] vddio-sdmmc1: 1800 <--> 3300 mV at 3300 mV 
[    0.322435] vdd-rtc: at 800 mV 
[    0.323060] avdd-ts-hv: 1800 <--> 3300 mV at 1800 mV 
[    0.325647] spmic-ldo6: at 1500 mV 
[    0.329645] vdd-pex-1v05: 1000 mV 
[    0.330196] dvdd-pex: 1000 mV 
[    0.330462] max77620 4-003c: max77620 probe successful
[    0.330709] Advanced Linux Sound Architecture Driver Initialized.
[    0.331688] en-vdd-sd: 3300 mV 
[    0.331836] en-vdd-cam: 1800 mV 
[    0.331948] vdd-hdmi: 5000 mV 
[    0.332126] vdd-usb0-5v: 5000 mV 
[    0.332294] vdd-usb1-5v: 5000 mV 
[    0.332569] en-vdd-cam-hv-2v8: 2800 mV 
[    0.332689] en-vdd-cam-1v2: 1200 mV 
[    0.332793] vdd-fan: 5000 mV 
[    0.332901] vdd-3v3: 3300 mV 
[    0.333048] en-vdd-vcm-2v8: 2800 mV 
[    0.333187] vdd-sys-bl: 3300 mV 
[    0.333291] en-vdd-sys: 1200 mV 
[    0.336457] extcon-gpio-states external-connection:extcon@1: Cable state 0
[    0.336835] clocksource: Switched to clocksource arch_sys_counter
[    0.355293] nvmap_heap_init: nvmap_heap_init: created heap block cache
[    0.355560] nvmap: nvmap_override_cache_ops() set roc flush ops to replace cache ops by set/ways
[    0.356033] nvmap_page_pool_init: Total RAM pages: 2010553
[    0.356050] nvmap_page_pool_init: nvmap page pool size: 251319 pages (981 MB)
[    0.356199] nvmap_background_zero_thread: PP zeroing thread starting.
[    0.360639] Wake76 for irq=199
[    0.360652] Wake77 for irq=199
[    0.360663] Wake78 for irq=199
[    0.360673] Wake79 for irq=199
[    0.360684] Wake80 for irq=199
[    0.360694] Wake81 for irq=199
[    0.360704] Wake82 for irq=199
[    0.361229] pca954x 2-0070: pca954x_probe: forcing device bus number, start 30.
[    0.361300] regulator_get() failed for (2-0070,vcc-pullup), -19
[    0.361315] pca954x 2-0070: vcc-pullup regulator not found
[    0.369141] i2c i2c-2: Added multiplexed i2c bus 30
[    0.369268] i2c i2c-2: Added multiplexed i2c bus 31
[    0.369392] i2c i2c-2: Added multiplexed i2c bus 32
[    0.369462] i2c i2c-2: Added multiplexed i2c bus 33
[    0.369477] pca954x 2-0070: registered 4 multiplexed busses for I2C switch pca9546
[    0.369826] thermal thermal_zone0: Registering thermal zone thermal_zone0 for type BCPU-therm
[    0.370022] thermal thermal_zone1: Registering thermal zone thermal_zone1 for type MCPU-therm
[    0.370371] thermal thermal_zone2: Registering thermal zone thermal_zone2 for type GPU-therm
[    0.370451] thermal thermal_zone3: Registering thermal zone thermal_zone3 for type PLL-therm
[    0.370596] thermal thermal_zone4: Registering thermal zone thermal_zone4 for type Tboard_tegra
[    0.370741] thermal thermal_zone5: Registering thermal zone thermal_zone5 for type Tdiode_tegra
[    0.370883] thermal thermal_zone6: Registering thermal zone thermal_zone6 for type PMIC-Die
[    0.371179] isomgr_init(): iso emc max clk=1866000KHz
[    0.371191] isomgr_init(): max_iso_bw=26870400KB
[    0.371274] NET: Registered protocol family 2
[    0.371576] TCP established hash table entries: 65536 (order: 7, 524288 bytes)
[    0.371803] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    0.372096] TCP: Hash tables configured (established 65536 bind 65536)
[    0.372150] UDP hash table entries: 4096 (order: 5, 131072 bytes)
[    0.372204] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes)
[    0.372364] NET: Registered protocol family 1
[    0.372534] RPC: Registered named UNIX socket transport module.
[    0.372549] RPC: Registered udp transport module.
[    0.372561] RPC: Registered tcp transport module.
[    0.372573] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.372593] PCI: CLS 0 bytes, default 128
[    0.372690] Trying to unpack rootfs image as initramfs...
[    0.385968] host1x 13e10000.host1x: initialized
[    0.386731] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    0.388405] futex hash table entries: 2048 (order: 6, 262144 bytes)
[    0.388506] audit: initializing netlink subsys (disabled)
[    0.388547] audit: type=2000 audit(0.372:1): initialized
[    0.395041] io scheduler noop registered
[    0.395150] io scheduler cfq registered (default)
[    0.397683] tegra-pwm 3280000.pwm: PWM clk can sleep in ops
[    0.398858] tegra-pwm 3290000.pwm: PWM clk can sleep in ops
[    0.399911] tegra-pwm 32a0000.pwm: PWM clk can sleep in ops
[    0.400960] tegra-pwm c340000.pwm: PWM clk can sleep in ops
[    0.403779] tsec 15500000.tsec: initialized
[    0.404838] tsec 15100000.tsecb: initialized
[    0.406517] nvdec 15480000.nvdec: initialized
[    0.409339] falcon 15340000.vic: initialized
[    0.410325] falcon 154c0000.nvenc: initialized
[    0.411372] falcon 15380000.nvjpg: initialized
[    0.412068] iommu_context_dev 13e10000.host1x:ctx0: initialized (streamid=56)
[    0.412568] iommu_context_dev 13e10000.host1x:ctx1: initialized (streamid=57)
[    0.413083] iommu_context_dev 13e10000.host1x:ctx2: initialized (streamid=58)
[    0.413595] iommu_context_dev 13e10000.host1x:ctx3: initialized (streamid=59)
[    0.414115] iommu_context_dev 13e10000.host1x:ctx4: initialized (streamid=60)
[    0.414624] iommu_context_dev 13e10000.host1x:ctx5: initialized (streamid=61)
[    0.415119] iommu_context_dev 13e10000.host1x:ctx6: initialized (streamid=62)
[    0.415614] iommu_context_dev 13e10000.host1x:ctx7: initialized (streamid=63)
[    0.416715] DC OR NODE connected to /host1x/sor1
[    0.416855] generic_infoframe_type: 0x87
[    0.416862] tegra_camera_platform tegra-camera-platform: tegra_camera_probe:camera_platform_driver probe
[    0.416963] misc tegra_camera_ctrl: tegra_camera_isomgr_register: some fields not in DT.
[    0.416979] tegradc 15210000.nvdisplay: DT parsed successfully
[    0.416996] misc tegra_camera_ctrl: tegra_camera_isomgr_register isp_iso_bw=0, vi_iso_bw=3000000, max_bw=3000000
[    0.417012] tegradc 15210000.nvdisplay: Display dc.ffffff8002320000 registered with id=0
[    0.424472] tegra_nvdisp_bandwidth_register_max_config: max config iso bw = 16727000 KB/s
[    0.424492] tegra_nvdisp_bandwidth_register_max_config: max config EMC floor = 665600000 Hz
[    0.424509] tegra_nvdisp_bandwidth_register_max_config: max config hubclk = 357620000 Hz
[    0.424564] tegradc 15210000.nvdisplay: vblank syncpt # 7 for dc 1
[    0.424580] tegradc 15210000.nvdisplay: vpulse3 syncpt # 8 for dc 1
[    0.424968] tegra-adma 2930000.adma: Tegra ADMA driver register 10 channels
[    0.426747] tegra-fuse-burn 3820000.efuse:efuse-burn: Fuse burn driver initialized
[    0.426970] tegradc 15210000.nvdisplay: hdmi: no prod_list_hdmi_board, use default range
[    0.427097] kfuse 3830000.kfuse: initialized
[    0.428200] tegra-pmc-iopower pmc-iopower: NO_IOPOWER setting 0x0
[    0.428603] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.430477] console [ttyS0] disabled
[    0.430529] 3100000.serial: ttyS0 at MMIO 0x3100000 (irq = 37, base_baud = 25500000) is a Tegra
[    0.431203] tegra-i2c 3190000.i2c: no acknowledge from address 0x50
[    0.433290] tegradc 15210000.nvdisplay: probed
[    2.516993] console [ttyS0] enabled
[    2.518925] 3110000.serial: ttyTHS1 at MMIO 0x3110000 (irq = 38, base_baud = 0) is a TEGRA_UART
[    2.519208] Console: switching to colour frame buffer device 80x30
[    2.520047] c280000.serial: ttyTHS2 at MMIO 0xc280000 (irq = 39, base_baud = 0) is a TEGRA_UART
[    2.520289] serial-tegra 3130000.serial: RX in PIO mode
[    2.521193] 3130000.serial: ttyTHS3 at MMIO 0x3130000 (irq = 40, base_baud = 0) is a TEGRA_UART
[    2.548510] brd: module loaded
[    2.553491] loop: module loaded
[    2.553702] nct1008_nct72 7-004c: find device tree node, parsing dt
[    2.553733] nct1008_nct72 7-004c: starting parse dt
[    2.553808] nct1008_nct72 7-004c: success parsing dt
[    2.553925] nct1008_nct72 7-004c: success in enabling tmp451 VDD rail
[    2.611314] tegradc 15210000.nvdisplay: fb registered
[    2.625388] gk20a 17000000.gp10b: failed to allocate secure buffer -12
[    2.651859] tmp451: Enabled overheat logging at 104.00C
[    2.658367] nct1008_nct72 7-004c: nct1008_probe: initialized
[    2.667096] THERMAL EST: found 3 subdevs
[    2.672224] THERMAL EST num_resources: 0
[    2.677298] [THERMAL EST subdev 0]
[    2.681803] [THERMAL EST subdev 1]
[    2.686260] [THERMAL EST subdev 2]
[    2.690867] thermal thermal_zone7: Registering thermal zone thermal_zone7 for type thermal-fan-est
[    2.701981] THERMAL EST: thz register success.
[    2.707518] THERMAL EST: end of probe, return err: 0
[    2.713538] tegra_profiler: Branch: Dev
[    2.718341] tegra_profiler: Version: 1.117
[    2.723379] tegra_profiler: Samples version: 41
[    2.728850] tegra_profiler: IO version: 22
[    2.735349] armv8_pmu: imp: 0x41, idcode: 0x1
[    2.741137] armv8_pmu: [0] arch: AA64 PmuV3 ARM CORTEX-A57, type: 5, ver: 0, pmu ver: 0x1
[    2.750702] armv8_pmu: imp: 0x4e, idcode: 0x1
[    2.755750] armv8_pmu: [1] arch: AA64 PmuV3 NVIDIA (Denver), type: 6, ver: 2, pmu ver: 0x1
[    2.765368] armv8_pmu: imp: 0x4e, idcode: 0x1
[    2.770562] armv8_pmu: [2] arch: AA64 PmuV3 NVIDIA (Denver), type: 6, ver: 2, pmu ver: 0x1
[    2.780298] armv8_pmu: imp: 0x41, idcode: 0x1
[    2.785405] armv8_pmu: [3] arch: AA64 PmuV3 ARM CORTEX-A57, type: 5, ver: 0, pmu ver: 0x1
[    2.795045] armv8_pmu: imp: 0x41, idcode: 0x1
[    2.800128] armv8_pmu: [4] arch: AA64 PmuV3 ARM CORTEX-A57, type: 5, ver: 0, pmu ver: 0x1
[    2.809827] armv8_pmu: imp: 0x41, idcode: 0x1
[    2.814988] armv8_pmu: [5] arch: AA64 PmuV3 ARM CORTEX-A57, type: 5, ver: 0, pmu ver: 0x1
[    2.824939] tegra_profiler: auth: init
[    2.832984] tegra-ahci 3507000.ahci-sata: AHCI 0001.0301 32 slots 2 ports 3 Gbps 0x1 impl platform mode
[    2.843972] tegra-ahci 3507000.ahci-sata: flags: 64bit ncq sntf pm led pmp pio slum part deso sadm apst 
[    2.856191] scsi host0: tegra_ahci
[    2.860815] scsi host1: tegra_ahci
[    2.865258] ata1: SATA max UDMA/133 mmio [mem 0x03507000-0x03508fff] port 0x100 irq 25
[    2.874835] ata2: DUMMY
[    2.879174] spi-tegra114 3210000.spi: Static pin configuration used
[    2.886787] spi-tegra114 c260000.spi: Static pin configuration used
[    2.894340] spi-tegra114 3240000.spi: Static pin configuration used
[    2.902382] tun: Universal TUN/TAP device driver, 1.6
[    2.908229] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    2.915425] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    2.922038] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    2.928827] igb: Intel(R) Gigabit Ethernet Network Driver - version 5.3.0-k
[    2.936650] igb: Copyright (c) 2007-2014 Intel Corporation.
[    2.944231] PPP generic driver version 2.4.2
[    2.946939] eqos 2490000.ether_qos: Setting local MAC: 0 4 4b 8d 9 71
[    2.947372] libphy: dwc_phy: probed
[    2.960868] PPP BSD Compression module registered
[    2.966335] PPP Deflate Compression module registered
[    2.972153] PPP MPPE Compression module registered
[    2.977706] NET: Registered protocol family 24
[    2.982956] usbcore: registered new interface driver r8152
[    2.989220] usbcore: registered new interface driver asix
[    2.995349] usbcore: registered new interface driver ax88179_178a
[    3.002142] usbcore: registered new interface driver cdc_ether
[    3.008695] usbcore: registered new interface driver smsc75xx
[    3.010011] bcm54xx_low_power_mode(): put phy in iddq-lp mode
[    3.021472] usbcore: registered new interface driver net1080
[    3.027779] usbcore: registered new interface driver cdc_subset
[    3.034337] usbcore: registered new interface driver zaurus
[    3.040586] usbcore: registered new interface driver cdc_ncm
[    3.047217] Wake76 for irq=199
[    3.050851] Wake77 for irq=199
[    3.054451] Wake78 for irq=199
[    3.058026] Wake79 for irq=199
[    3.061572] Wake80 for irq=199
[    3.065101] Wake81 for irq=199
[    3.068600] Wake82 for irq=199
[    3.072159] tegra-xotg xotg: usb2 phy is not available yet
[    3.078674] usbcore: registered new interface driver cdc_acm
[    3.084790] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    3.093747] usbcore: registered new interface driver usb-storage
[    3.100334] usbcore: registered new interface driver usbserial
[    3.106676] usbcore: registered new interface driver cp210x
[    3.112758] usbserial: USB Serial support registered for cp210x
[    3.119204] usbcore: registered new interface driver ftdi_sio
[    3.125469] usbserial: USB Serial support registered for FTDI USB Serial Device
[    3.133818] usbcore: registered new interface driver option
[    3.139995] usbserial: USB Serial support registered for GSM modem (1-port)
[    3.147561] usbcore: registered new interface driver pl2303
[    3.153722] usbserial: USB Serial support registered for pl2303
[    3.160489] tegra-usb-cd usb_cd: otg phy is not available yet
[    3.168997] tegra-xudc-new 3550000.xudc: usb2 phy is not available yet
[    3.196873] ata1: SATA link down (SStatus 0 SControl 300)
[    3.308922] max77686-rtc max77620-rtc: rtc core: registered max77620-rtc as rtc0
[    3.320646] tegra_rtc c2a0000.rtc: rtc core: registered c2a0000.rtc as rtc1
[    3.328733] tegra_rtc c2a0000.rtc: Tegra internal Real Time Clock
[    3.336150] i2c /dev entries driver
[    3.341855] imx185 30-001a: [IMX185]: probing v4l2 sensor at addr 0x1a.
[    3.350101] imx185 30-001a: sensor_common_parse_image_props:pixel_t property missing
[    3.361096] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[    3.368989] imx185_fuse_id_setup: can not read fuse id
[    3.375395] imx185 30-001a: Error -22 reading fuse id data
[    3.382142] imx185: probe of 30-001a failed with error -22
[    3.388885] imx185 31-001a: [IMX185]: probing v4l2 sensor at addr 0x1a.
[    3.397065] imx185 31-001a: sensor_common_parse_image_props:pixel_t property missing
[    3.407381] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[    3.414935] imx185_fuse_id_setup: can not read fuse id
[    3.420920] imx185 31-001a: Error -22 reading fuse id data
[    3.427326] imx185: probe of 31-001a failed with error -22
[    3.433699] imx185 32-001a: [IMX185]: probing v4l2 sensor at addr 0x1a.
[    3.441510] imx185 32-001a: sensor_common_parse_image_props:pixel_t property missing
[    3.451672] tegra-i2c 3180000.i2c: no acknowledge from address 0x1a
[    3.459198] imx185_fuse_id_setup: can not read fuse id
[    3.465175] imx185 32-001a: Error -22 reading fuse id data
[    3.471565] imx185: probe of 32-001a failed with error -22
[    3.478235] gspca_main: v2.14.0 registered
[    3.483181] usbcore: registered new interface driver gspca_zc3xx
[    3.493962] max77620-power max77620-power: Event recorder REG_NVERC : 0x0
[    3.503875] FAN dev name: pwm-fan
[    3.509486] FAN:gpio request success.
[    3.514027] FAN: can't find tach_gpio
[    3.518492] pwm_fan_driver pwm-fan: cap state:9, cap pwm:255
[    3.525254] pwm_fan_driver pwm-fan: got pwm for fan
[    3.530869] pwm_fan_driver pwm-fan: tach period: 1000
[    3.536993] pwm_fan_driver pwm-fan: index 0: pwm=0, rpm=0, rru=40, rrd=40, state:2
[    3.545981] pwm_fan_driver pwm-fan: index 1: pwm=81, rpm=1000, rru=2, rrd=2, state:2
[    3.555171] pwm_fan_driver pwm-fan: index 2: pwm=85, rpm=2000, rru=1, rrd=1, state:2
[    3.564369] pwm_fan_driver pwm-fan: index 3: pwm=93, rpm=3000, rru=1, rrd=1, state:2
[    3.573626] pwm_fan_driver pwm-fan: index 4: pwm=105, rpm=4000, rru=1, rrd=1, state:3
[    3.583023] pwm_fan_driver pwm-fan: index 5: pwm=123, rpm=5000, rru=1, rrd=1, state:3
[    3.592442] pwm_fan_driver pwm-fan: index 6: pwm=146, rpm=6000, rru=1, rrd=1, state:3
[    3.601904] pwm_fan_driver pwm-fan: index 7: pwm=176, rpm=7000, rru=1, rrd=1, state:4
[    3.611432] pwm_fan_driver pwm-fan: index 8: pwm=212, rpm=10000, rru=1, rrd=1, state:4
[    3.621093] pwm_fan_driver pwm-fan: index 9: pwm=255, rpm=11000, rru=1, rrd=1, state:4
[    3.631745] device-mapper: uevent: version 1.0.3
[    3.637677] device-mapper: ioctl: 4.34.0-ioctl (2015-10-28) initialised: dm-devel@redhat.com
[    3.648543] sdhci: Secure Digital Host Controller Interface driver
[    3.655737] sdhci: Copyright(c) Pierre Ossman
[    3.661101] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.667993] sdhci-tegra 3460000.sdhci: Parent select= pll_p rate=408000000
[    3.676758] sdhci-tegra 3460000.sdhci: Parent select= pll_c4_out0 rate=196249804
[    3.687053] tegra-se-elp 3ad0000.se_elp: tegra_se_elp_probe: complete
[    3.687244] sdhci-tegra 3460000.sdhci: Client registration for eMC Successful
[    3.702765] hidraw: raw HID events driver (C) Jiri Kosina
[    3.711630] usbcore: registered new interface driver usbhid
[    3.718163] usbhid: USB HID core driver
[    3.724857] mmc0: SDHCI controller on 3460000.sdhci [3460000.sdhci] using ADMA 64-bit with 64 bit addr
[    3.740126] sdhci-tegra 3440000.sdhci: Parent select= pll_p rate=408000000
[    3.750088] sdhci-tegra 3440000.sdhci: Client registration for eMC Successful
[    3.750570] nvadsp 2993000.adsp: in probe()...
[    3.772097] nvadsp 2993000.adsp: Registering AMC Error Interrupt
[    3.779899] nvadsp 2993000.adsp: AMC/ARAM initialized.
[    3.787041] nvadsp 2993000.adsp: nvadsp_app_module_probe
[    3.795003] Denver: backdoor interface is NOT available.
[    3.803790] coresight-tmc 8030000.etf: TMC initialized
[    3.804858] mmc1: SDHCI controller on 3440000.sdhci [3440000.sdhci] using ADMA 64-bit with 64 bit addr
[    3.805089] sdhci-tegra 3400000.sdhci: Got CD GPIO
[    3.805140] sdhci-tegra 3400000.sdhci: Got WP GPIO
[    3.805231] sdhci-tegra 3400000.sdhci: Parent select= pll_p rate=408000000
[    3.805263] sdhci-tegra 3400000.sdhci: wakeup init done, cd_irq: 256
[    3.805531] sdhci-tegra 3400000.sdhci: Client registration for eMC Successful
[    3.818904] mmc0: MAN_BKOPS_EN bit is not set
[    3.826434] mmc0: Skipping tuning since strobe enabled
[    3.834359] mmc0: periodic cache flush enabled
[    3.834368] mmc0: new HS400 MMC card at address 0001
[    3.834878] mmcblk0: mmc0:0001 032G34 29.1 GiB 
[    3.835130] mmcblk0boot0: mmc0:0001 032G34 partition 1 4.00 MiB
[    3.835359] mmcblk0boot1: mmc0:0001 032G34 partition 2 4.00 MiB
[    3.835585] mmcblk0rpmb: mmc0:0001 032G34 partition 3 4.00 MiB
[    3.837043]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29
[    3.844991] mmc2: SDHCI controller on 3400000.sdhci [3400000.sdhci] using ADMA 64-bit with 64 bit addr
[    3.881456] mmc1: queuing unknown CIS tuple 0x80 (5 bytes)
[    3.955319] coresight-tmc 8050000.etr: TMC initialized
[    3.962095] coresight-tpiu 8060000.tpiu: TPIU initialized
[    3.969252] coresight-funnel 9010000.funnel_bccplex: FUNNEL initialized
[    3.977343] coresight-funnel 8010000.funnel_major: FUNNEL initialized
[    3.985262] coresight-funnel 8820000.funnel_minor: FUNNEL initialized
[    3.992998] coresight-replicator 8040000.replicator: REPLICATOR initialized
[    4.001730] coresight-etm4x 9840000.ptm: ETM 4.0 initialized
[    4.009814] coresight-etm4x 9940000.ptm: ETM 4.0 initialized
[    4.016995] coresight-etm4x 9a40000.ptm: ETM 4.0 initialized
[    4.024072] coresight-etm4x 9b40000.ptm: ETM 4.0 initialized
[    4.030449] Module initialized successfully 
[    4.039285] tegra186-cam-rtcpu b000000.rtcpu: Trace buffer configured at IOVA=0xa0000000
[    4.051048] tegra186-cam-rtcpu b000000.rtcpu: already unhalted
[    4.057986] tegra-ivc ivc-b000000.rtcpu: region 0: iova=0xa0110000-0xa011957f size=38272
[    4.067961] tegra-ivc ivc-b000000.rtcpu:echo@0: echo: ver=0 grp=1 RX[16x64]=0x1000-0x1480 TX[16x64]=0x1480-0x1900
[    4.079814] tegra-ivc ivc-b000000.rtcpu:vinotify@12c0: vinotify: ver=0 grp=1 RX[64x128]=0x1900-0x3980 TX[64x128]=0x3980-0x5a00
[    4.080893] mmc1 tuning done saved tap delay=64
[    4.080896] mmc1: hw tuning done ...
[    4.080905] mmc1: tuning_window[0]: 0xffffffff
[    4.080911] mmc1: tuning_window[1]: 0xfffff1ff
[    4.080917] mmc1: tuning_window[2]: 0xff3fffff
[    4.080923] mmc1: tuning_window[3]: 0x7fffffff
[    4.080928] mmc1: tuning_window[4]: 0x0
[    4.080933] mmc1: tuning_window[5]: 0x0
[    4.080972] mmc1: tuning_window[6]: 0x0
[    4.080977] mmc1: tuning_window[7]: 0x0
[    4.080981] sdhci: Tap value: 64 | Trim value: 5
[    4.080985] sdhci: SDMMC_VENDOR_INTR_STATUS[0x108]: 0x40000
[    4.090159] mmc1: queuing unknown CIS tuple 0x91 (3 bytes)
[    4.090226] mmc1: new ultra high speed SDR104 SDIO card at address 0001
[    4.179608] tegra-ivc ivc-b000000.rtcpu:mods@32c0: mods: ver=0 grp=1 RX[1x64]=0x5a00-0x5ac0 TX[1x64]=0x5ac0-0x5b80
[    4.288295] tegra-ivc ivc-b000000.rtcpu:ivccontrol@52c0: ivccontrol: ver=0 grp=1 RX[16x320]=0x5b80-0x7000 TX[16x320]=0x7000-0x8480
[    4.403029] tegra-ivc ivc-b000000.rtcpu:ivccapture@72c0: ivccapture: ver=0 grp=1 RX[16x64]=0x8480-0x8900 TX[16x64]=0x8900-0x8d80
[    4.418932] tegra-ivc ivc-b000000.rtcpu:dbg@7c00: dbg: ver=0 grp=1 RX[1x384]=0x8d80-0x8f80 TX[1x384]=0x8f80-0x9180
[    4.433454] tegra-ivc ivc-b000000.rtcpu:dbg@7e00: dbg: ver=0 grp=1 RX[1x384]=0x9180-0x9380 TX[1x384]=0x9380-0x9580
[    4.449287] tegra186-cam-rtcpu b000000.rtcpu: using cam RTCPU IRQ (52)
[    4.457891] tegra186-cam-rtcpu b000000.rtcpu: tegra_camrtc_mon_create is successful
[    4.474211] tegra-ivc ivc-b000000.rtcpu:echo@0: ivc channel driver missing
[    4.483103] tegra-ivc ivc-b000000.rtcpu:vinotify@12c0: ivc channel driver missing
[    4.494571] tegra-ivc ivc-b000000.rtcpu:mods@32c0: ivc channel driver missing
[    4.503913] tegra-ivc ivc-b000000.rtcpu:ivccontrol@52c0: ivc channel driver missing
[    4.515993] tegra-ivc ivc-b000000.rtcpu:ivccapture@72c0: ivc channel driver missing
[    4.528439] tegra-ivc ivc-b000000.rtcpu:dbg@7c00: ivc channel driver missing
[    4.538032] tegra-ivc ivc-b000000.rtcpu:dbg@7e00: ivc channel driver missing
[    4.547954] tegra186-cam-rtcpu b000000.rtcpu: firmware version cpu=sce cmd=4 sha1=a8b1ecdd9615cd817a56df035be363fce3b0b88f
[    4.589799] tegra-ivc-cdev ivc-b000000.rtcpu:echo@0: probing /dev/camchar-echo
[    4.607696] tegra-ivc-cdev ivc-b000000.rtcpu:dbg@7c00: probing /dev/camchar-dbg
[    4.620675] camchar: rtcpu character device driver loaded
[    4.659775] tegra186-aondbg aondbg: aondbg driver probe() OK
[    4.672489] register_ari_mca_banks: Registered MCA ROC:IOB
[    4.683085] register_ari_mca_banks: Registered MCA ROC:CCE
[    4.696023] tegra18-bridge 2390000.axi2apb: bridge probed OK
[    4.704355] tegra18-bridge 23a0000.axi2apb: bridge probed OK
[    4.712562] tegra18-bridge 23b0000.axi2apb: bridge probed OK
[    4.720601] tegra18-bridge 23c0000.axi2apb: bridge probed OK
[    4.728650] tegra18-bridge 23d0000.axi2apb: bridge probed OK
[    4.736478] tegra18-bridge 2100000.axip2p: bridge probed OK
[    4.744353] tegra18-bridge 2110000.axip2p: bridge probed OK
[    4.751971] tegra18-bridge 2120000.axip2p: bridge probed OK
[    4.759480] tegra18-bridge 2130000.axip2p: bridge probed OK
[    4.767124] tegra18-bridge 2140000.axip2p: bridge probed OK
[    4.774601] tegra18-bridge 2150000.axip2p: bridge probed OK
[    4.782018] tegra18-bridge 2160000.axip2p: bridge probed OK
[    4.789247] tegra18-bridge 2170000.axip2p: bridge probed OK
[    4.796540] tegra18-bridge 2180000.axip2p: bridge probed OK
[    4.803709] tegra18-bridge 2190000.axip2p: bridge probed OK
[    4.811080] tegra18_a57_serr_init: on CPU 1 a Denver Core
[    4.820043] parse_throttle_dt_data: Num cap clks = 4
[    4.827243] parse_throttle_dt_data: clk=mcpu type=1
[    4.833296] parse_throttle_dt_data: clk=bcpu type=2
[    4.839277] parse_throttle_dt_data: clk=gpu type=4
[    4.845009] parse_throttle_dt_data: clk=emc type=3
[    4.854721] tegra_throttle_probe: probe successful. #cdevs=4
[    4.862141] tegra18x_actmon d230000.actmon: in actmon_register()...
[    4.884534] tegra18x_actmon d230000.actmon: initialization Completed for the device mc_all
[    4.893837] hw perfevents: enabled with denver15_uncore_pmu PMU driver, 3 counters available
[    4.905601] tegra-se-nvhost 15810000.se: initialized
[    4.911611] tegra-se-nvhost 15810000.se: tegra_se_probe: complete
[    4.918599] tegra-se-nvhost 15820000.se: initialized
[    4.924738] tegra-se-nvhost 15820000.se: tegra_se_probe: complete
[    4.931683] tegra-se-nvhost 15830000.se: initialized
[    4.937329] tegra-se-nvhost 15830000.se: tegra_se_probe: complete
[    4.944294] tegra-se-nvhost 15840000.se: initialized
[    4.950444] tegra-se-nvhost 15840000.se: tegra_se_probe: complete
[    4.961838] tegra-gpcdma 2600000.dma: GPC DMA driver register 32 channels
[    4.972869] cpufreq: platform driver Initialization: pass
[    4.978776] tegra_cluster_clk e090000.cluster_clk_priv: in probe()...
[    4.985748] tegra_cluster_clk e090000.cluster_clk_priv: passed
[    4.992171] tegra186-padctl 3520000.pinctrl: padctl mmio start 0x0000000003520000 end 0x0000000003520fff
[    5.002468] tegra186-padctl 3520000.pinctrl: ao mmio start 0x0000000003540000 end 0x0000000003540fff
[    5.012509] tegra186-padctl 3520000.pinctrl: FUSE_SKU_USB_CALIB_0 0x30b498
[    5.019867] tegra186-padctl 3520000.pinctrl: FUSE_USB_CALIB_EXT_0 0x9
[    5.028299] tegra186-padctl 3520000.pinctrl: using UTMI port 0 for otg
[    5.035996] tegra186-padctl 3520000.pinctrl: VBUS over-current detection enabled
[    5.044959] tegra-bpmp-thermal d000000.bpmp:bpmpthermal: zone 0 not supported
[    5.053080] tegra-bpmp-thermal d000000.bpmp:bpmpthermal: zone 3 not supported
[    5.062540] cpuidle: Initializing cpuidle driver init for Denver cluster
[    5.069864] cpuidle: Initializing cpuidle driver init for A57 cluster
[    5.077943] tachometer tegra-tachometer: Tachometer driver tegra-tachometer registered
[    5.086757] Tachometer driver initialized with pulse_per_rev: 2 and win_len: 2
[    5.100910] tegra210_adsp_audio_platform_probe: platform probe started
[    5.105366] input: tegra-hda HDMI/DP,pcm=3 as /devices/3510000.hda/sound/card0/input0
[    5.105541] input: tegra-hda HDMI/DP,pcm=7 as /devices/3510000.hda/sound/card0/input1
[    5.126943] tegra210-adsp adsp_audio: Default param-type to BYTE for mp3-dec1
[    5.135113] tegra210-adsp adsp_audio: Default param-type to BYTE for spkprot
[    5.143232] tegra210-adsp adsp_audio: Default param-type to BYTE for src
[    5.151032] tegra210-adsp adsp_audio: Default param-type to BYTE for aac-dec1
[    5.159169] tegra210-adsp adsp_audio: Default param-type to BYTE for aec
[    5.166373] tegra210-adsp adsp_audio: adma channel page address dt entry not found
[    5.174883] tegra210-adsp adsp_audio: using adma channel page 0
[    5.181396] tegra210_adsp_audio_platform_probe probe successfull.
[    5.199714] OPE platform probe
[    5.204118] OPE platform probe successful
[    5.297247] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF1 <-> ADMAIF1 mapping ok
[    5.305861] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF2 <-> ADMAIF2 mapping ok
[    5.314493] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF3 <-> ADMAIF3 mapping ok
[    5.323149] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF4 <-> ADMAIF4 mapping ok
[    5.331828] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF5 <-> ADMAIF5 mapping ok
[    5.340523] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF6 <-> ADMAIF6 mapping ok
[    5.349204] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF7 <-> ADMAIF7 mapping ok
[    5.357873] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF8 <-> ADMAIF8 mapping ok
[    5.366603] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF9 <-> ADMAIF9 mapping ok
[    5.375439] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF10 <-> ADMAIF10 mapping ok
[    5.384492] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF11 <-> ADMAIF11 mapping ok
[    5.393592] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF12 <-> ADMAIF12 mapping ok
[    5.402725] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF13 <-> ADMAIF13 mapping ok
[    5.411847] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF14 <-> ADMAIF14 mapping ok
[    5.421551] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF15 <-> ADMAIF15 mapping ok
[    5.430709] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF16 <-> ADMAIF16 mapping ok
[    5.439828] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF17 <-> ADMAIF17 mapping ok
[    5.449006] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF18 <-> ADMAIF18 mapping ok
[    5.458140] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF19 <-> ADMAIF19 mapping ok
[    5.467249] tegra-snd-t186ref-mobile-rt565x sound: ADMAIF20 <-> ADMAIF20 mapping ok
[    5.479806] tegra-snd-t186ref-mobile-rt565x sound: ADSP-FE1 <-> ADSP PCM1 mapping ok
[    5.489059] tegra-snd-t186ref-mobile-rt565x sound: ADSP-FE2 <-> ADSP PCM2 mapping ok
[    5.498168] compress asoc: ADSP-FE3 <-> ADSP COMPR1 mapping ok
[    5.504738] compress asoc: ADSP-FE4 <-> ADSP COMPR2 mapping ok
[    5.640157] tegra-snd-t186ref-mobile-rt565x sound: codec link not defined - codec not part of sound card
[    5.652410] GACT probability NOT on
[    5.656960] Mirror/redirect action on
[    5.661647] u32 classifier
[    5.665343]     Actions configured
[    5.669709] nf_conntrack version 0.5.0 (65536 buckets, 262144 max)
[    5.677236] IPVS: Registered protocols ()
[    5.682214] IPVS: Connection hash table configured (size=4096, memory=64Kbytes)
[    5.691408] IPVS: Creating netns size=1424 id=0
[    5.696870] IPVS: ipvs loaded.
[    5.700804] IPVS: [rr] scheduler registered.
[    5.705990] ipip: IPv4 over IPv4 tunneling driver
[    5.712041] Initializing XFRM netlink socket
[    5.717257] NET: Registered protocol family 10
[    5.722985] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    5.728976] NET: Registered protocol family 17
[    5.733925] NET: Registered protocol family 15
[    5.738880] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this.
[    5.752389] 8021q: 802.1Q VLAN Support v1.8
[    5.757298] Registered cp15_barrier emulation handler
[    5.762823] Registered setend emulation handler
[    5.769499] registered taskstats version 1
[    5.777062] isp 15600000.isp: initialized
[    5.785187] nvcsi 150c0000.nvcsi: initialized
[    5.791380] Wake76 for irq=199
[    5.795096] Wake77 for irq=199
[    5.798795] Wake78 for irq=199
[    5.802481] Wake79 for irq=199
[    5.806129] Wake80 for irq=199
[    5.809737] Wake81 for irq=199
[    5.813314] Wake82 for irq=199
[    5.817139] xhci-tegra 3530000.xhci: UTMI port 0 has OTG_CAP
[    5.823320] xhci-tegra 3530000.xhci: No USB3 port has OTG_CAP
[    5.852902] xhci-tegra 3530000.xhci: Direct firmware load for tegra18x_xusb_firmware failed with error -2
[    5.863733] spi-tegra114 3210000.spi: Static pin configuration used
[    5.870680] xhci-tegra 3530000.xhci: Falling back to user helper
[    5.871183] spi-tegra114 c260000.spi: Static pin configuration used
[    5.871908] spi-tegra114 3240000.spi: Static pin configuration used
[    5.872543] tegra-xotg xotg: OTG rev:0200, ADP:0, SRP:1, HNP:1, RSP:0
[    5.872576] tegra-xotg xotg: update_id_state: ID floating
[    5.872580] tegra-xotg xotg: update_vbus_state: VBUS not detected
[    5.872594] tegra-xotg xotg: Nvidia XUSB OTG Controller
[    5.874075] tegra-xotg xotg: otg: gadget gadget registered
[    5.874077] tegra-xotg xotg: set gadget otg_caps from OTG controller
[    5.874078] tegra-xotg xotg: otg: host not registered yet
[    5.874080] tegra-xotg xotg: otg: start OTG finite state machine
[    5.874117] tegra-xudc-new 3550000.xudc: entering ELPG
[    5.874482] tegra-xudc-new 3550000.xudc: entering ELPG done
[    5.875971] input: gpio-keys as /devices/gpio-keys/input/input2
[    5.910500] tegra_rtc c2a0000.rtc: setting system clock to 2018-11-15 17:43:29 UTC (1542303809)
[    5.939969] bpmp: mounted debugfs mirror
[    5.940445] [dram-timers] DRAM derating cdev registered.
[    5.944593] spmic-ldo0: disabling
[    5.944777] spmic-ldo1: disabling
[    5.944956] en-vdd-sd: disabling
[    5.944960] vdd-usb0-5v: disabling
[    5.944961] vdd-usb1-5v: disabling
[    5.944963] en-vdd-cam-hv-2v8: disabling
[    5.944965] en-vdd-cam-1v2: disabling
[    5.944966] vdd-fan: disabling
[    5.944976] vdd-3v3: disabling
[    5.944978] en-vdd-vcm-2v8: disabling
[    5.944979] vdd-sys-bl: disabling
[    5.944981] en-vdd-sys: disabling
[    5.952580] ALSA device list:
[    5.952582]   #0: tegra-hda at 0x3518000 irq 400
[    5.952583]   #1: tegra-snd-t186ref-mobile-rt565x
[    5.953780] tegra-vi4 15700000.vi: initialized
[    5.955015] tegra-vi4 15700000.vi: subdev 150c0000.nvcsi-0 bound
[    5.955070] tegra-vi4 15700000.vi: subdev 150c0000.nvcsi-2 bound
[    5.955128] tegra-vi4 15700000.vi: subdev 150c0000.nvcsi-2 bound
[    5.955130] tegra-vi4 15700000.vi: all channel register failed
[    6.074893] EXT4-fs (mmcblk0p1): warning: mounting fs with errors, running e2fsck is recommended
[    6.086518] EXT4-fs (mmcblk0p1): mounted filesystem with ordered data mode. Opts: (null)
[    6.095532] VFS: Mounted root (ext4 filesystem) on device 179:1.
[    6.103608] devtmpfs: mounted
[    6.107420] Freeing unused kernel memory: 1164K (ffffffc001109000 - ffffffc00122c000)
[    6.116379] Freeing alternatives memory: 96K (ffffffc00122c000 - ffffffc001244000)
[    6.131339] btb inv war enabled
[    6.185606] random: systemd: uninitialized urandom read (16 bytes read, 84 bits of entropy available)
[    6.197315] random: systemd: uninitialized urandom read (16 bytes read, 84 bits of entropy available)
[    6.208051] random: systemd: uninitialized urandom read (16 bytes read, 84 bits of entropy available)
[    6.219816] systemd[1]: systemd 229 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN)
[    6.240758] systemd[1]: Detected architecture arm64.
[    6.255118] systemd[1]: Set hostname to <hs-dk1>.
[    6.269989] random: systemd: uninitialized urandom read (16 bytes read, 86 bits of entropy available)
[    6.283596] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 86 bits of entropy available)
[    6.295469] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 86 bits of entropy available)
[    6.307407] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 86 bits of entropy available)
[    6.319360] random: systemd-gpt-aut: uninitialized urandom read (16 bytes read, 86 bits of entropy available)
[    6.335779] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read, 87 bits of entropy available)
[    6.336497] random: systemd-cryptse: uninitialized urandom read (16 bytes read, 87 bits of entropy available)
[    6.421405] systemd[1]: Created slice User and Session Slice.
[    6.429404] systemd[1]: Reached target Remote File Systems (Pre).
[    6.437646] systemd[1]: Listening on Journal Audit Socket.
[    6.445149] systemd[1]: Listening on Journal Socket.
[    6.452118] systemd[1]: Listening on udev Kernel Socket.
[    6.459551] systemd[1]: Created slice System Slice.
[    6.469358] systemd[1]: Starting Load Kernel Modules...
[    6.476946] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    6.486599] systemd[1]: Starting Create list of required static device nodes for the current kernel...
[    6.499207] systemd[1]: Listening on Journal Socket (/dev/log).
[    6.506659] systemd[1]: Listening on udev Control Socket.
[    6.513426] systemd[1]: Reached target Slices.
[    6.519191] systemd[1]: Reached target Remote File Systems.
[    6.529543] systemd[1]: Starting Journal Service...
[    6.536251] systemd[1]: Reached target Swap.
[    6.543136] systemd[1]: Mounting Debug File System...
[    6.550933] systemd[1]: Starting Set console keymap...
[    6.557505] systemd[1]: Reached target Encrypted Volumes.
[    6.564454] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    6.575178] systemd[1]: Starting Remount Root and Kernel File Systems...
[    6.581452] EXT4-fs (mmcblk0p1): re-mounted. Opts: (null)
[    6.590961] systemd[1]: Mounting POSIX Message Queue File System...
[    6.598840] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[    6.610946] systemd[1]: Mounted POSIX Message Queue File System.
[    6.618529] systemd[1]: Mounted Debug File System.
[    6.624982] systemd[1]: Started Journal Service.
[    6.757761] systemd-journald[267]: Received request to flush runtime journal from PID 1
[    6.843145] cfg80211: World regulatory domain updated:
[    6.851325] cfg80211:  DFS Master region: unset
[    6.856544] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[    6.868306] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[    6.877476] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz, 92000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[    6.877480] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[    6.877482] cfg80211:   (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[    6.877485] cfg80211:   (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[    6.877488] cfg80211:   (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[    6.877513] cfg80211:   (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[    6.877516] cfg80211:   (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[    6.907470] tegra-pcie 10003000.pcie-controller: 4x1, 1x1 configuration
[    6.910306] tegra-pcie 10003000.pcie-controller: PCIE: Enable power rails
[    6.913423] tegra-pcie 10003000.pcie-controller: probing port 0, using 4 lanes
[    6.915637] tegra-pcie 10003000.pcie-controller: probing port 2, using 1 lanes
[    6.954919] xhci-tegra 3530000.xhci: cannot find firmware....retry after 1 second
[    6.995716] random: nonblocking pool is initialized
[    7.135841] dhd_module_init in
[    7.140395] tegra_net_perf_init: cannot get wifi sclk
[    7.148195] found wifi platform device bcmdhd_wlan
[    7.174071] wifi_platform_get_country_code_map: could not get country_code_map
[    7.191307] wifi_plat_dev_drv_probe:platform country code map is not available
[    7.199741] Power-up adapter 'DHD generic adapter'
[    7.199750] wifi_platform_set_power = 1
[    7.354920] tegra-pcie 10003000.pcie-controller: link 0 down, retrying
[    7.400883] wifi_platform_bus_enumerate device present 1
[    7.424952] wifi_platform_bus_enumerate device present 0
[    7.431529] F1 signature read @0x18000000=0x17214354
[    7.441400] F1 signature OK, socitype:0x1 chip:0x4354 rev:0x1 pkg:0x2
[    7.449229] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[    7.457126] wifi_platform_prealloc: failed to alloc static mem section 7
[    7.464866] wifi_platform_get_mac_addr
[    7.474828] CFG80211-ERROR) wl_setup_wiphy : Registering Vendor80211
[    7.482495] wl_create_event_handler(): thread:wl_event_handler:24d started
[    7.482512] CFG80211-ERROR) wl_event_handler : tsk Enter, tsk = 0xffffffc1e19c1a70
[    7.499822] dhd_attach(): thread:dhd_watchdog_thread:24f started
[    7.506862] dhd_attach(): thread:dhd_dpc:251 started
[    7.512942] dhd_attach(): thread:dhd_rxf:253 started
[    7.519335] dhd_deferred_work_init: work queue initialized 
[    7.527279] Dongle Host Driver, version 1.201.82 (r)
               Compiled in drivers/net/wireless/bcmdhd on Nov  5 2018 at 16:29:08
[    7.587281] tegra_sysfs_register
[    7.604950] Register interface [wlan0]  MAC: 00:04:4b:8d:09:6f

[    7.620029] dhd_prot_ioctl : bus is down. we have nothing to do
[    7.628176] sdhci-tegra 3440000.sdhci: Tuning already done, restoring the best tap value : 64
[    7.641209] wifi_platform_set_power = 0
[    7.644225] using random self ethernet address
[    7.644227] using random host ethernet address
[    7.660558] Mass Storage Function, version: 2009/09/11
[    7.667131] LUN: removable file: (no medium)
[    7.674154] using random self ethernet address
[    7.674166] using random host ethernet address
[    7.681614] usb0: HOST MAC 5e:41:fa:c6:ad:66
[    7.681638] usb0: MAC de:28:75:fc:9d:f2
[    7.682924] usb1: HOST MAC 92:09:8e:61:e0:cd
[    7.682939] usb1: MAC c2:84:75:48:3b:4d
[    7.682954] tegra-xudc-new 3550000.xudc: exiting ELPG
[    7.688543] tegra-xudc-new 3550000.xudc: exiting ELPG done
[    7.688558] tegra-xudc-new 3550000.xudc: ep 0 (type: 0, dir: out) enabled
[    7.689133] tegra-xudc-new 3550000.xudc: entering ELPG
[    7.691187] tegra-xudc-new 3550000.xudc: entering ELPG done
[    7.760813] device usb0 entered promiscuous mode
[    7.772535] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[    7.783565] device usb1 entered promiscuous mode
[    7.795852] IPv6: ADDRCONF(NETDEV_UP): usb1: link is not ready
[    7.802955] l4tbr0: port 2(usb1) entered forwarding state
[    7.809013] l4tbr0: port 2(usb1) entered forwarding state
[    7.816158] tegra-pcie 10003000.pcie-controller: link 0 down, retrying
[    7.950066] xhci-tegra 3530000.xhci: Firmware timestamp: 2017-12-07 10:50:08 UTC, Version: 55.09 release
[    7.952591] IPVS: Creating netns size=1424 id=1
[    7.969368] xhci-tegra 3530000.xhci: xHCI Host Controller
[    7.975957] xhci-tegra 3530000.xhci: new USB bus registered, assigned bus number 1
[    7.986456] xhci-tegra 3530000.xhci: hcc params 0x0184fd25 hci version 0x100 quirks 0x00010810
[    7.997338] xhci-tegra 3530000.xhci: irq 59, io mem 0x03530000
[    8.004252] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    8.004254] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    8.004256] usb usb1: Product: xHCI Host Controller
[    8.004258] usb usb1: Manufacturer: Linux 4.4.38+ xhci-hcd
[    8.004259] usb usb1: SerialNumber: 3530000.xhci
[    8.004538] hub 1-0:1.0: USB hub found
[    8.004556] hub 1-0:1.0: 4 ports detected
[    8.017674] xhci-tegra 3530000.xhci: xHCI Host Controller
[    8.017682] xhci-tegra 3530000.xhci: new USB bus registered, assigned bus number 2
[    8.017785] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[    8.017787] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    8.017789] usb usb2: Product: xHCI Host Controller
[    8.017791] usb usb2: Manufacturer: Linux 4.4.38+ xhci-hcd
[    8.017793] usb usb2: SerialNumber: 3530000.xhci
[    8.018079] hub 2-0:1.0: USB hub found
[    8.018097] hub 2-0:1.0: 3 ports detected
[    8.018441] tegra-xotg xotg: otg: host 3530000.xhci registered
[    8.038619] gk20a 17000000.gp10b: railgate is disabled.
[    8.048954] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    8.052020] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    8.100285] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[    8.100363] 
               Dongle Host Driver, version 1.201.82 (r)
               Compiled in drivers/net/wireless/bcmdhd on Nov  5 2018 at 16:29:08
[    8.100364] wl_android_wifi_on in
[    8.100366] wifi_platform_set_power = 1
[    8.117010] xhci-tegra 3530000.xhci: entering ELPG
[    8.119621] xhci-tegra 3530000.xhci: entering ELPG done
[    8.234412] tegra-pcie 10003000.pcie-controller: link 0 down, retrying
[    8.243592] tegra-pcie 10003000.pcie-controller: link 0 down, ignoring
[    8.344723] CPU1: shutdown
[    8.348349] psci: CPU1 killed.
[    8.369331] mmc1: queuing unknown CIS tuple 0x80 (5 bytes)
[    8.384879] CPU2: shutdown
[    8.388378] psci: CPU2 killed.
[    8.452378] sdhci-tegra 3440000.sdhci: Tuning already done, restoring the best tap value : 64
[    8.462888] F1 signature read @0x18000000=0x17214354
[    8.472148] F1 signature OK, socitype:0x1 chip:0x4354 rev:0x1 pkg:0x2
[    8.479912] DHD: dongle ram size is set to 786432(orig 786432) at 0x180000
[    8.538380] dhdsdio_write_vars: Download, Upload and compare of NVRAM succeeded.
[    8.589424] dhd_bus_init: enable 0x06, ready 0x06 (waited 0us)
[    8.596263] Enabling wake69
[    8.600757] wifi_platform_get_mac_addr
[    8.606710] Firmware up: op_mode=0x0005, MAC=00:04:4b:8d:09:6f
[    8.618739] dhd_preinit_ioctls pspretend_threshold for HostAPD failed  -23
[    8.630787] Firmware version = wl0: Dec 12 2017 15:09:35 version 7.35.221.34 (r679642) FWID 01-e35dbe99
[    8.645336] dhd_interworking_enable: failed to set WNM info, ret=-23
[    8.652812] tegra_sysfs_on
[    8.662660] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    8.705560] l4tbr0: port 2(usb1) entered disabled state
[    8.776859] CFGP2P-ERROR) wl_cfgp2p_add_p2p_disc_if : P2P interface registered
[    8.797066] WLC_E_IF: NO_IF set, event Ignored
[    9.076937] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    9.486881] tegra-pcie 10003000.pcie-controller: link 2 down, retrying
[    9.495555] tegra-pcie 10003000.pcie-controller: link 2 down, ignoring
[    9.502233] tegra-pcie 10003000.pcie-controller: PCIE: no end points detected
[    9.509999] tegra-pcie 10003000.pcie-controller: PCIE: Disable power rails
[   13.209573] eqos 2490000.ether_qos eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   13.219061] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

As you can see, there is some problem with the codec link:

[    5.640157] tegra-snd-t186ref-mobile-rt565x sound: codec link not defined - codec not part of sound card

What is the reason for this? I don’t know how to continue therefore I would appreciate if someone could help me to solve this issue. Thanks!

Hello!

You can ignore the above warning, this is printed because the ‘rt565x-playback’ link no longer exists. See sound/soc/tegra-alt/tegra_t186ref_mobile_rt565x.c …

1154         idx = tegra_machine_get_codec_dai_link_idx_t18x("rt565x-playback");
1155         /* check if idx has valid number */
1156         if (idx == -EINVAL)
1157                 dev_warn(&pdev->dev, "codec link not defined - codec not part of sound card");

Really we should fix this and not assume that everyone is using this codec.

So the things to check are …

  1. Do you see the codec listed as a device under the I2C controller. You should se a device ‘1-001a’ under the following locations …
ls /sys/class/i2c-adapter/i2c-1/
sudo ls /sys/kernel/debug/regmap/
  1. Also check to see if the codec is listed under …
sudo cat /sys/kernel/debug/asoc/codecs

If it is there, then it is all initialised fine.

Regards,
Jon

Hi Jon,

thanks for your help.

Oh, I see.

Yes, I can see the device.

It is listed there as wm8960.1-001a.

So, everything is set up correctly? If yes, could you give me a hint how to play/record audio on the device? I tried the following but can not see any signal on the I2S0_SDOUT.

aplay -Dhw:1,0 sound.wav

Yes sounds like the codec is initialised and now just needs to be configured.

So the aplay command …

aplay -Dhw:1,0 sound.wav

Implies that you are playing audio via the ADMA interface 1 on Tegra. So we need to ensure that this is mux’ed to the I2S1 interface. To do this execute the command …

amixer -c 1 cset name="I2S1 Mux" "ADMAIF1"

Now the codec itself probably needs some configuration because there are usually multiple paths through which the audio can be routed. For example, to the HP or Speaker outputs, etc. Looking at the wm8940 codec driver, I see that there is a ‘PCM Playback Switch’. Do you see a mixer control for this?

amixer -c 1 controls | grep "PCM Playback Switch"

If so can you enable this?

amixer -c 1 cset name="PCM Playback Switch" on

Note I am not familiar with this specific codec so it is a bit of guess work!

Regards,
Jon

Thanks Jon, I can hear the sound on the headphones. I had to enable the “x Left Output Mixer PCM Playback Switch” and “x Right Output Mixer PCM Playback Switch”.

Now I tried to record something from the microphones. I mux’ed the I2S1 to the ADMA interface 1:

amixer -c 1 cset name="ADMAIF1 Mux" "I2S1"

After that, I tried to record something using the following command:

arecord -f cd hw:tegrasndt186ref,0 test.wav

Unfortunately, nothing is recorded. I also probed the I2S0_SDIN, I2S0_CLK, I2S0_LRCLK pins but can not see any signal. Also enabling the “x Capture Switch” did not help. Do you have any idea how to go on?

Thanks,
Markus

Oh, I forgot to add the audio routes for recording:

"x LINPUT1",		"x Mic",
"x LINPUT3",		"x Mic",
"x RINPUT1",		"x Mic",
"x RINPUT2",		"x Mic";

Now I can see the signals on the oscilloscope and arecord works. So, I think on Tegra side, everything should be ok now. Unfortunately, only silence is recorded. I will check, if I have to enable something else or to increase the capture volume…

Great! Yes check if the I2S din is toggling. If it isn’t then it is probably some codec configuration that we are missing, otherwise, it is on the Tegra side.

Regards,
Jon

hi jon
i have the same question with wm8960 on tx2,when I use aplay -Dhw:1,0 ltt20070412.wav,I can only see AUDIO_MCLK signals on the oscilloscope

1、I can see 1-001a when using
ls /sys/class/i2c-adapter/i2c-1/
sudo ls /sys/kernel/debug/regmap/
2、i also can see wm8960.1-001a when using
sudo cat /sys/kernel/debug/asoc/codecs
3、have any other command without amixer -c 1 cset name=“I2S1 Mux” “ADMAIF1”, not include the codecs configure

hi Mark
you said “I activated the WM8960 driver in the kernel.” Can i ask a few questions please?
1、have any modification in wm8960.c file in sound/soc/codecs dir
2、have any modification in tegra_t186ref_mobile_rt565x.c file expect
idx = tegra_machine_get_codec_dai_link_idx_t18x(“rt565x-playback”);
the dts config is like this
i2c@c240000 {
adas_wm8960:wm8960@1a {
compatible = “wlf,wm8960”;
reg = <0x1a>;
status = “okay”;
};
};

sound {
	compatible = "nvidia,tegra-audio-t186ref-adas-wm8960";
	nvidia,model = "tegra-snd-t186ref-adas-wm8960";

	spkvdd-supply = <&en_aud_spk_5v0>;
	dbvdd-supply = <&en_aud_vdd_1v8>;
	avdd-supply = <&en_aud_vdd_3v3>;
	
	nvidia,audio-routing =			
		"x Int Spk", 	"x SPK_LN",
		"x Int Spk", 	"x SPK_LP",
		"x Int Spk", 	"x SPK_RN",
		"x Int Spk", 	"x SPK_RP",
	
		"x LINPUT1",		"x Int Mic",
		"x LINPUT2",		"x Int Mic",
						
		"y Headphone",		"y OUT",
		"y IN",				"y Mic",
		"z Headphone",		"z OUT",
		"z IN",				"z Mic",
		"m Headphone",		"m OUT",
		"m IN",				"m Mic",
		"n Headphone",		"n OUT",
		"n IN",				"n Mic",
		"o Headphone",		"o OUT",
		"o IN",				"o Mic",
		"a IN",				"a Mic",
		"b IN",				"b Mic",
		"c IN",				"c Mic",
		"d IN",				"d Mic",
		"e Headphone",		"e OUT",
		"e IN",				"e Mic",
		"d1 Headphone",		"d1 OUT",
		"d2 Headphone",		"d2 OUT";



	
	nvidia,dai-link-1 {
		link-name = "wm8960-playback";
		codec-dai = <&adas_wm8960>;	
		codec-dai-name = "wm8960-aif1";
	};
}

Hello!

Per Markus’ feedback in comment 5 above he also has to set the codec mixer controls …

amixer -c 1 cset name="x Left Output Mixer PCM Playback Switch" on
amixer -c 1 cset name="x Right Output Mixer PCM Playback Switch" on

Regards,
Jon

Hi dgw_1985,

I did not change the driver sources, neither the wm8960.c nor the tegra_t186ref_mobile_rt565x.c. As codec-dai-name I used “wm8960-hifi”, because this is the name used in the driver:

static struct snd_soc_dai_driver wm8960_dai = {
	.name = "wm8960-hifi",
	.playback = {
		.stream_name = "Playback",
		.channels_min = 1,
		.channels_max = 2,
		.rates = WM8960_RATES,
		.formats = WM8960_FORMATS,},
	.capture = {
		.stream_name = "Capture",
		.channels_min = 1,
		.channels_max = 2,
		.rates = WM8960_RATES,
		.formats = WM8960_FORMATS,},
	.ops = &wm8960_dai_ops,
	.symmetric_rates = 1,
};

Maybe you have to change it in your device tree?

Btw. I was finally able to record something. Nevertheless, I am not satisfied with the quality. It is really noisy and sometimes one can hear a clicking noise. Playback works well. I don’t know if the microphones are that bad or if there is still a configuration issue. Any idea?

Hi Markus,

Given that playback works fine, that would indicate that the I2S timing and the codec MCLK is configured fine. If you are using the same sample rate and sample size for playback and capture then the MCLK should be the same frequency.

To double check you can dump the I2S registers and clock settings during playback/capture and I can take a look to make sure it looks good …

sudo grep "i2s\|mclk\|ape\|ahub" /sys/kernel/debug/clk/clk_summary
sudo cat /sys/kernel/debug/regmap/tegra210-i2s.0/registers

If this looks OK, then maybe there is a codec setting that is not quite right?

Regards,
Jon

Hi Jon,

here is the output of the commands during playback:

# sudo grep "i2s\|mclk\|ape\|ahub" /sys/kernel/debug/clk/clk_summary
i2s6_sync_input                                            0            0           0           0          0 0  
 i2s5_sync_input                                            0            0           0           0          0 0  
 i2s4_sync_input                                            0            0           0           0          0 0  
 i2s3_sync_input                                            0            0           0           0          0 0  
 i2s2_sync_input                                            0            0           0           0          0 0  
 i2s1_sync_input                                            0            0     1536000     1536000          0 0  
    i2s1_sync_clk                                           0            0     1536000           0          0 0  
    i2s6_sync_clk                                           0            0           0           0          0 0  
    i2s5_sync_clk                                           0            0           0           0          0 0  
    i2s4_sync_clk                                           0            0           0           0          0 0  
    i2s3_sync_clk                                           0            0           0           0          0 0  
    i2s2_sync_clk                                           0            0           0           0          0 0  
    aud_mclk                                                1            1     9600000    12288000          0 0  
    i2s6                                                    0            0    19200000    19200000          0 0  
    i2s5                                                    0            0    19200000    19200000          0 0  
    i2s4                                                    0            0    19200000    19200000          0 0  
    i2s3                                                    0            0    19200000    19200000          0 0  
    i2s2                                                    0            0    19200000    19200000          0 0  
          ape                                               4            4   150000000   150000000          0 0  
             apb2ape                                        3            3   150000000   150000000          0 0  
             i2s1                                           1            1     1535999     1536000          0 0  
             ahub                                           2            2    49151992    49152000          0 0
# sudo cat /sys/kernel/debug/regmap/tegra210-i2s.0/registers
00: 00000001
04: 00000000
0c: 00000001
10: 0000000c
14: 00000003
18: 00000000
1c: 00000000
20: 03113300
24: 00000100
28: 00000000
2c: 00000000
34: 00000000
40: 00000000
44: 00000000
4c: 00000002
50: 00000000
54: 00000003
58: 00000000
5c: 00000000
60: 00007700
64: 00000100
68: 00000000
6c: 00000000
74: 00000000
80: 00000001
84: 00000000
88: 00000001
8c: 00000000
90: 00000c00
a0: 1f000403
a4: 0000000f
a8: 00000000
ac: 00000000
b0: 00000000

This is the output during recording:

# sudo grep "i2s\|mclk\|ape\|ahub" /sys/kernel/debug/clk/clk_summary
 i2s6_sync_input                                            0            0           0           0          0 0  
 i2s5_sync_input                                            0            0           0           0          0 0  
 i2s4_sync_input                                            0            0           0           0          0 0  
 i2s3_sync_input                                            0            0           0           0          0 0  
 i2s2_sync_input                                            0            0           0           0          0 0  
 i2s1_sync_input                                            0            0     1536000     1536000          0 0  
    i2s1_sync_clk                                           0            0     1536000           0          0 0  
    i2s6_sync_clk                                           0            0           0           0          0 0  
    i2s5_sync_clk                                           0            0           0           0          0 0  
    i2s4_sync_clk                                           0            0           0           0          0 0  
    i2s3_sync_clk                                           0            0           0           0          0 0  
    i2s2_sync_clk                                           0            0           0           0          0 0  
    aud_mclk                                                1            1     9600000    12288000          0 0  
    i2s6                                                    0            0    19200000    19200000          0 0  
    i2s5                                                    0            0    19200000    19200000          0 0  
    i2s4                                                    0            0    19200000    19200000          0 0  
    i2s3                                                    0            0    19200000    19200000          0 0  
    i2s2                                                    0            0    19200000    19200000          0 0  
          ape                                               4            4   150000000   150000000          0 0  
             apb2ape                                        3            3   150000000   150000000          0 0  
             i2s1                                           1            1     1535999     1536000          0 0  
             ahub                                           2            2    49151992    49152000          0 0
# sudo cat /sys/kernel/debug/regmap/tegra210-i2s.0/registers        
00: 00000000
04: 00000000
0c: 00000002
10: 00000000
14: 00000003
18: 00000000
1c: 00000000
20: 03113300
24: 00000100
28: 00000000
2c: 00000000
34: 00000000
40: 00000001
44: 00000000
4c: 00000001
50: 00000000
54: 00000003
58: 00000000
5c: 00000000
60: 03113300
64: 00000100
68: 00000000
6c: 00000000
74: 00000000
80: 00000001
84: 00000000
88: 00000001
8c: 00000000
90: 00000000
a0: 1f000403
a4: 0000000f
a8: 00000000
ac: 00000000
b0: 00000000

Sample rate for recording was set to 48000Hz. When I use another sample rate, I can only hear some clicking noise. Maybe it has something to do with the mclk? The mclk is generated directly on the audio module, that means the mclk provided by the Jetson is not used. Do I have to give the value somewhere in the device tree? Looking at the device tree overlay of the Raspberry Pi (https://github.com/respeaker/seeed-voicecard/blob/master/seeed-2mic-voicecard-overlay.dts), one can see that they provide the mclk as fixed clock. How can we do this on the Jetson, if necessary?

thanks MarkusHe
1、 “the codec-dai-name I used “wm8960-hifi”",this is a Wrongly written
2、how you activated the WM8960 driver in the kerne?,I tried the following steps to activated the codec,
can help check it out ?
a、cp tegra_t186ref_mobile_rt565x.c tegra_t186ref_adas_wm8960.c
b、modify DRV_NAME and compatible in tegra_t186ref_adas_wm8960.c file

#define DRV_NAME "tegra-snd-t186ref-adas-wm8960"
static const struct of_device_id tegra_t186ref_of_match[] = {
	{ .compatible = "nvidia,tegra-audio-t186ref-adas-wm8960", },
	{},
};

c、replace all the “rt565x-playback” with “wm8960-playback” in tegra_t186ref_adas_wm8960.c file

132         idx = tegra_machine_get_codec_dai_link_idx_t18x("wm8960-playback"); 
297         idx = tegra_machine_get_codec_dai_link_idx_t18x("wm8960-playback");
934         if (strstr(tegra_t186ref_codec_links[i].name,
935                                 "wm8960-playback"))
1114        idx = tegra_machine_get_codec_dai_link_idx_t18x("wm8960-playback");

d、comment this code because of kernel error,“codec_dai clock not set\n”

325 #if 0
 326         idx = tegra_machine_get_codec_dai_link_idx_t18x("dspk-playback-r");
 327         if (idx != -EINVAL) {
 328                 dai_params =
 329                 (struct snd_soc_pcm_stream *)card->rtd[idx].dai_link->params;
 330
 331                 if (!machine->is_codec_dummy) {
 332 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
 333                         err = snd_soc_dai_set_sysclk(card->rtd[idx].codec_dai,
 334                                 0, clk_out_rate, SND_SOC_CLOCK_IN);
 335 #else
 336                         err = snd_soc_dai_set_sysclk(card->rtd[idx].codec_dai,
 337                                 TAS2552_PDM_CLK_IVCLKIN, clk_out_rate,
 338                                 SND_SOC_CLOCK_IN);
 339 #endif
 340                         if (err < 0) {
 341                                 dev_err(card->dev, "codec_dai clock not set\n");
 342                                 return err;
 343                         }
 344                 }
 345         }
 346
 347         idx = tegra_machine_get_codec_dai_link_idx_t18x("dspk-playback-l");
 348         if (idx != -EINVAL) {
 349                 dai_params =
 350                 (struct snd_soc_pcm_stream *)card->rtd[idx].dai_link->params;
 351
 352                 if (!machine->is_codec_dummy) {
 353 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 2, 0)
 354                         err = snd_soc_dai_set_sysclk(card->rtd[idx].codec_dai,
 355                                 0, clk_out_rate, SND_SOC_CLOCK_IN);
 356 #else
 357                         err = snd_soc_dai_set_sysclk(card->rtd[idx].codec_dai,
 358                                 TAS2552_PDM_CLK_IVCLKIN, clk_out_rate,
 359                                 SND_SOC_CLOCK_IN);
 360 #endif

e、modify the Makefile.t18x

28 snd-soc-tegra-alt-t186ref-adas-objs := tegra_t186ref_adas_wm8960.o
38 obj-$(CONFIG_SND_SOC_TEGRA_T186REF_ADAS_ALT) += snd-soc-tegra-alt-t186ref-adas.o

f、modify the tegra18_defconfig

422 #CONFIG_SND_SOC_TEGRA_T186REF_MOBILE_ALT=y
423 CONFIG_SND_SOC_TEGRA_T186REF_ADAS_ALT=y
424 CONFIG_SND_SOC_TEGRA_T186REF_P4573_ALT=y
425 CONFIG_SND_SOC_TEGRA_T186REF_M3420_ALT=y

tks jon
this two command is setting codec pcm playback switch ,but i thinks when using aplay command,the i2s_out can see signals on the oscilloscop,even if the codec is not right config

amixer -c 1 cset name="x Left Output Mixer PCM Playback Switch" on
amixer -c 1 cset name="x Right Output Mixer PCM Playback Switch" on

Hi Markus,

If the MCLK is not provided by Jetson, then you should configure the codec to be the bitclock-master and frame-master in DT. The issue is mostly likely that the clocks between the codec and Tegra are not in sync.

Looking at comment #1 above you have the codec as bitclock-slave and frame-slave so try changing to bitclock-master and frame-master and see if this help.

Regards,
Jon

Hi Jon,

after changing the configuration to bitclock-master and frame-master, I get the following error message:

[ 1966.505724] wm8960 1-001a: No SYSCLK configured
[ 1966.512235] wm8960 1-001a: ASoC: Failed to prepare bias: -22
[ 1966.624389] tegra210-i2s tegra210-i2s.0: Failed at I2S0_TX sw reset
[ 1966.631637] tegra210-i2s tegra210-i2s.0: ASoC: PRE_PMU: I2S1 DAP TX event failed: -22
[ 1987.373863] wm8960 1-001a: No SYSCLK configured
[ 1987.379787] wm8960 1-001a: ASoC: Failed to prepare bias: -22
[ 1987.490328] tegra210-i2s tegra210-i2s.0: Failed at I2S0_TX sw reset
[ 1987.497592] tegra210-i2s tegra210-i2s.0: ASoC: PRE_PMU: I2S1 DAP TX event failed: -22

Do I have to provide the clock somewhere in the device tree?

Thanks,
Markus

@dgw_1985:

I just enabled the driver with:

CONFIG_SND_SOC_WM8960=y

After that, I did the changes in the device tree which were written in comment #1. Nothing else. I did not had to change any line of code in the driver.
After booting you have to mux the i2s to the adma interface

amixer -c 1 cset name="I2S1 Mux" "ADMAIF1"

and enable the playback switches:

amixer -c 1 cset name="x Left Output Mixer PCM Playback Switch" on
amixer -c 1 cset name="x Right Output Mixer PCM Playback Switch" on

With this procedure, I got the playback working.

MarkusHeß

tks for reply,are you using R28.2?

yes

Hi Markus,

The above I2S error occurs when the I2S port does not receive a bit clock from the codec and so the software reset of the I2S interface fails. Yes, given that the wm8960 reports ‘No SYSCLK configured’ we need to tell the wm8960 driver what is driving the mclk. So in the Tegra186 audio machine driver we would need to do something like this, replacing ‘’ with the actual frequency that the on-board oscillator is driving the mclk (which may be 12000000Hz or whatever) …

diff --git a/sound/soc/tegra-alt/tegra_t186ref_mobile_rt565x.c b/sound/soc/tegra-alt/tegra_t186ref_mobile_rt565x.c
index 36572f1a9288..6f38530471a7 100644
--- a/sound/soc/tegra-alt/tegra_t186ref_mobile_rt565x.c
+++ b/sound/soc/tegra-alt/tegra_t186ref_mobile_rt565x.c
@@ -44,6 +44,7 @@
 #include <sound/pcm_params.h>
 #include <sound/soc.h>
 #include "../codecs/rt5659.h"
+#include "../codecs/wm8960.h"
 
 #include "tegra_asoc_utils_alt.h"
 #include "tegra_asoc_machine_alt.h"
@@ -314,6 +315,24 @@ static int tegra_t186ref_dai_init(struct snd_soc_pcm_runtime *rtd,
                }
        }
 
+       idx = tegra_machine_get_codec_dai_link_idx_t18x("wm8960-playback");
+       /* check if idx has valid number */
+       if (idx != -EINVAL) {
+               dai_params =
+               (struct snd_soc_pcm_stream *)card->rtd[idx].dai_link->params;
+
+               dai_params->rate_min = clk_rate;
+               dai_params->formats = formats;
+
+               err = snd_soc_dai_set_sysclk(card->rtd[idx].codec_dai,
+                                            WM8960_SYSCLK_MCLK, "<mclk-rate>",
+                                            SND_SOC_CLOCK_IN);
+               if (err < 0) {
+                       dev_err(card->dev, "codec_dai clock not set\n");
+                       return err;
+               }
+       }
+
        /* set clk rate for i2s3 dai link*/
        idx = tegra_machine_get_codec_dai_link_idx_t18x("spdif-dit-2");
        if (idx != -EINVAL) {

Regards,
Jon

1 Like

Ok, I tried the changes, but now I get the following output:

[   48.813898] wm8960 1-001a: failed to configure clock
[   48.824177] wm8960 1-001a: ASoC: Failed to prepare bias: -22
[   48.948021] tegra210-i2s tegra210-i2s.0: Failed at I2S0_TX sw reset
[   48.955167] tegra210-i2s tegra210-i2s.0: ASoC: PRE_PMU: I2S1 DAP TX event failed: -22

I’m not sure, if I used the correct clock. Looking at the schematics, I can see an oscillator with 24 MHz, so I tried 24000000. In the Raspberry Pi device tree overlay, the clock frequency is set to 12288000. I tried both with no success.