This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM5728: am5728 xref_clk issues with Linux booting

Part Number: AM5728
Other Parts Discussed in Thread: BEAGLEBOARD-X15, , DRA752, TMP102, DRA742, TPS51200, TPD12S015, TLV320AIC3104

Tool/software: Linux

Hello everyone,

I am using BeagleBone Black X15 dev board and processor SDK 5 with default device tree and kernel settings.
When I tried to assign xref_clk1 (or any other xref_clk) to ahclkx, Linux doesn't boot anymore (kernel panic).
Here is the device tree snippet for mcasp2 configuration:

&mcasp2 {
#sound-dai-cells = <0>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&mcasp2_pins_default>;
assigned-clocks = <&mcasp2_ahclkx_mux>;
assigned-clock-parents = <&ref_clkin1_ck>;
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
/* mcasp1_axr0 = RX, mcasp1_axr1 = TX */
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
2 1 0 0 // AXR0 and AXR1 pins
0 0 0 0
0 0 0 0
0 0 0 0
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
};

Pin muxing is correct also (E17 ball is set to xref_clk1 mode).
What could be the problem here? When I select abe_24m_fclk instead of any xrefs, Linux boots and mcasp works fine.  

  • Hi Aleksandar,

    xref_clk1 (ref_clkin1_ck) is AM572x device pin input. You need to provide external clock source for that pin.

    In BeagleBoad-X15 we have:

    &mcasp3 {
    #sound-dai-cells = <0>;
    assigned-clocks = <&mcasp3_ahclkx_mux>;
    assigned-clock-parents = <&sys_clkin2>;

    sys_clkin2 is documented as SYS_CLK2 in AM572x TRM and DM, and is supplied by OSC1 22.5792MHz clock source.

    Note also that if your use case is as below, it is not possible:

    xref_clk1 -----> McASP2 module, AHCLKX input --> AHCLKX pin output ----> Codec Master clock

    Refer to the below e2e threads for details:

    e2e.ti.com/.../1782796
    e2e.ti.com/.../2139528



    Regards,
    Pavel
  • Hi Pavel,

    Thanks for the response.

    My use case is : XREF_CLK1 -> AHCLKX input. 

    I want to use external  xref_clk (6.144 MHz) in order to get ACLKX and AFSX for 8KHz, 16KHz and 48KHz sample rates because my McASP should be master for the external codec. I don't need to have AHCLKX as output.

    The funny thing is that when I set abe_sys_clk_div as input for mcasp2_ahclkx_mux in the device tree, Linux boots, and audio works, but it doesn't with ref_clkin1_ck (or with any other xref).

    So, how can I configure device tree to clock McASP AHCLKX with the external xref clock? (as described in the last post here: e2e.ti.com/.../1782796

    I also set xref_clk1 pin as an input, mode0 (0x298 (PIN_INPUT_PULLUP | MUX_MODE0) /*XREF1 */) but that doesn't solve the problem with kernel panic.

    Here is my am57xx-beagle-x15-common.dtsi and kernel printout:

    Starting kernel ...

    [ 0.000000] Booting Linux on physical CPU 0x0
    [ 0.000000] Linux version 4.14.40-g4796173fc5 (aleksandar@aleksandar-ThinkPad-T470p) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #29 SMP8
    [ 0.000000] CPU: ARMv7 Processor [412fc0f2] revision 2 (ARMv7), cr=30c5387d
    [ 0.000000] CPU: div instructions available: patching division code
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
    [ 0.000000] OF: fdt: Machine model: TI AM5728 BeagleBoard-X15 rev C
    [ 0.000000] Memory policy: Data cache writealloc
    [ 0.000000] efi: Getting EFI parameters from FDT:
    [ 0.000000] efi: UEFI not found.
    [ 0.000000] Reserved memory: created CMA memory pool at 0x0000000095800000, size 56 MiB
    [ 0.000000] OF: reserved mem: initialized node ipu2-memory@95800000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created CMA memory pool at 0x0000000099000000, size 64 MiB
    [ 0.000000] OF: reserved mem: initialized node dsp1-memory@99000000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created CMA memory pool at 0x000000009d000000, size 32 MiB
    [ 0.000000] OF: reserved mem: initialized node ipu1-memory@9d000000, compatible id shared-dma-pool
    [ 0.000000] Reserved memory: created CMA memory pool at 0x000000009f000000, size 8 MiB
    [ 0.000000] OF: reserved mem: initialized node dsp2-memory@9f000000, compatible id shared-dma-pool
    [ 0.000000] cma: Reserved 24 MiB at 0x00000000fe400000
    [ 0.000000] OMAP4: Map 0x00000000ffd00000 to fe600000 for dram barrier
    [ 0.000000] DRA752 ES2.0
    [ 0.000000] percpu: Embedded 15 pages/cpu @eed37000 s31308 r8192 d21940 u61440
    [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 472640
    [ 0.000000] Kernel command line: console=ttyO2,115200n8 root=/dev/nfs nfsroot=10.12.0.54:/home/aleksandar/ti-processor-sdk-linux-am57xx-evm-05.00.p
    [ 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: 1675660K/1897472K available (8192K kernel code, 347K rwdata, 2512K rodata, 2048K init, 299K bss, 33396K reserved, 188416K cma-)
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
    [ 0.000000] vmalloc : 0xf0800000 - 0xff800000 ( 240 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xf0000000 ( 768 MB)
    [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
    [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc0a00000 (10208 kB)
    [ 0.000000] .init : 0xc0e00000 - 0xc1000000 (2048 kB)
    [ 0.000000] .data : 0xc1000000 - 0xc1056fe8 ( 348 kB)
    [ 0.000000] .bss : 0xc1058000 - 0xc10a2cfc ( 300 kB)
    [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    [ 0.000000] Preemptible hierarchical RCU implementation.
    [ 0.000000] Tasks RCU enabled.
    [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
    [ 0.000000] GIC: Using split EOI/Deactivate mode
    [ 0.000000] OMAP clockevent source: timer1 at 32786 Hz
    [ 0.000000] arch_timer: cp15 timer(s) running at 6.14MHz (phys).
    [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x16af5adb9, max_idle_ns: 440795202250 ns
    [ 0.000005] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 4398046511023ns
    [ 0.000017] Switching to timer-based delay loop, resolution 162ns
    [ 0.000348] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [ 0.000357] OMAP clocksource: 32k_counter at 32768 Hz
    [ 0.000798] Console: colour dummy device 80x30
    [ 0.000817] WARNING: Your 'console=ttyO2' has been replaced by 'ttyS2'
    [ 0.000824] This ensures that you still see kernel messages. Please
    [ 0.000831] update your kernel commandline.
    [ 0.000853] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.29 BogoMIPS (lpj=61475)
    [ 0.000870] pid_max: default: 32768 minimum: 301
    [ 0.000989] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.001003] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.001522] CPU: Testing write buffer coherency: ok
    [ 0.001734] /cpus/cpu@0 missing clock-frequency property
    [ 0.001752] /cpus/cpu@1 missing clock-frequency property
    [ 0.001764] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
    [ 0.039877] Setting up static identity map for 0x80200000 - 0x80200060
    [ 0.059886] Hierarchical SRCU implementation.
    [ 0.080076] EFI services will not be available.
    [ 0.099949] smp: Bringing up secondary CPUs ...
    [ 0.170263] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
    [ 0.170357] smp: Brought up 1 node, 2 CPUs
    [ 0.170371] SMP: Total of 2 processors activated (24.59 BogoMIPS).
    [ 0.170379] CPU: All CPU(s) started in HYP mode.
    [ 0.170386] CPU: Virtualization extensions available.
    [ 0.170898] devtmpfs: initialized
    [ 0.188090] random: get_random_u32 called from bucket_table_alloc+0x108/0x230 with crng_init=0
    [ 0.188340] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
    [ 0.188532] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [ 0.188550] futex hash table entries: 512 (order: 3, 32768 bytes)
    [ 0.192340] pinctrl core: initialized pinctrl subsystem
    [ 0.192793] DMI not present or invalid.
    [ 0.193036] NET: Registered protocol family 16
    [ 0.194079] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [ 0.195010] omap_hwmod: l3_main_2 using broken dt data from ocp
    [ 0.304138] omap_hwmod: dcan1: _wait_target_disable failed
    [ 0.402145] cpuidle: using governor ladder
    [ 0.402177] cpuidle: using governor menu
    [ 0.410165] OMAP GPIO hardware version 0.1
    [ 0.436684] No ATAGs?
    [ 0.436753] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
    [ 0.436767] hw-breakpoint: maximum watchpoint size is 8 bytes.
    [ 0.437124] omap4_sram_init:Unable to allocate sram needed to handle errata I688
    [ 0.437134] omap4_sram_init:Unable to get sram pool needed to handle errata I688
    [ 0.437645] OMAP DMA hardware revision 0.0
    [ 0.452683] omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver (LinkedList1/2/3 supported)
    [ 0.453948] edma 43300000.edma: memcpy is disabled
    [ 0.457209] edma 43300000.edma: TI EDMA DMA engine driver
    [ 0.457843] evm_5v0: supplied by main_12v0
    [ 0.460952] omap-iommu 40d01000.mmu: 40d01000.mmu registered
    [ 0.461147] omap-iommu 40d02000.mmu: 40d02000.mmu registered
    [ 0.461396] omap-iommu 58882000.mmu: 58882000.mmu registered
    [ 0.461633] omap-iommu 55082000.mmu: 55082000.mmu registered
    [ 0.461969] omap-iommu 41501000.mmu: 41501000.mmu registered
    [ 0.462165] omap-iommu 41502000.mmu: 41502000.mmu registered
    [ 0.462394] iommu: Adding device 58820000.ipu to group 1
    [ 0.462470] iommu: Adding device 55020000.ipu to group 2
    [ 0.462607] iommu: Adding device 40800000.dsp to group 0
    [ 0.462835] iommu: Adding device 41000000.dsp to group 3
    [ 0.464774] palmas 0-0058: Irq flag is 0x00000008
    [ 0.492121] palmas 0-0058: Muxing GPIO 2f, PWM 0, LED 0
    [ 0.493624] SMPS12: supplied by regulator-dummy
    [ 0.495300] SMPS3: supplied by regulator-dummy
    [ 0.496932] SMPS45: supplied by regulator-dummy
    [ 0.498720] SMPS6: supplied by regulator-dummy
    [ 0.500148] SMPS7: supplied by regulator-dummy
    [ 0.501562] SMPS8: supplied by regulator-dummy
    [ 0.502801] SMPS9: supplied by regulator-dummy
    [ 0.503503] LDO1: supplied by regulator-dummy
    [ 0.511340] LDO2: supplied by regulator-dummy
    [ 0.521178] random: fast init done
    [ 0.521217] LDO3: supplied by regulator-dummy
    [ 0.531222] LDO4: supplied by regulator-dummy
    [ 0.541256] LDO5: supplied by regulator-dummy
    [ 0.541963] LDO6: supplied by regulator-dummy
    [ 0.542665] LDO7: supplied by regulator-dummy
    [ 0.543385] LDO8: supplied by regulator-dummy
    [ 0.544089] LDO9: supplied by regulator-dummy
    [ 0.551278] LDOLN: supplied by regulator-dummy
    [ 0.561288] LDOUSB: supplied by regulator-dummy
    [ 0.573709] omap_i2c 48070000.i2c: bus 0 rev0.12 at 400 kHz
    [ 0.574243] omap_i2c 48060000.i2c: bus 2 rev0.12 at 400 kHz
    [ 0.574426] media: Linux media interface: v0.10
    [ 0.574463] Linux video capture interface: v2.00
    [ 0.574545] pps_core: LinuxPPS API ver. 1 registered
    [ 0.574554] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [ 0.574573] PTP clock support registered
    [ 0.574605] EDAC MC: Ver: 3.0.0
    [ 0.580754] dmi: Firmware registration failed.
    [ 0.581122] omap-mailbox 48840000.mailbox: omap mailbox rev 0x400
    [ 0.581397] omap-mailbox 48842000.mailbox: omap mailbox rev 0x400
    [ 0.581705] Advanced Linux Sound Architecture Driver Initialized.
    [ 0.590835] clocksource: Switched to clocksource arch_sys_counter
    [ 0.598788] NET: Registered protocol family 2
    [ 0.599308] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
    [ 0.599372] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
    [ 0.599498] TCP: Hash tables configured (established 8192 bind 8192)
    [ 0.599567] UDP hash table entries: 512 (order: 2, 16384 bytes)
    [ 0.599600] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
    [ 0.599729] NET: Registered protocol family 1
    [ 0.600013] RPC: Registered named UNIX socket transport module.
    [ 0.600023] RPC: Registered udp transport module.
    [ 0.600030] RPC: Registered tcp transport module.
    [ 0.600038] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 0.600969] hw perfevents: no interrupt-affinity property for /pmu, guessing.
    [ 0.601142] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
    [ 0.602136] workingset: timestamp_bits=14 max_order=19 bucket_order=5
    [ 0.606281] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [ 0.606759] NFS: Registering the id_resolver key type
    [ 0.606783] Key type id_resolver registered
    [ 0.606792] Key type id_legacy registered
    [ 0.606833] ntfs: driver 2.1.32 [Flags: R/O].
    [ 0.608069] bounce: pool size: 64 pages
    [ 0.608114] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
    [ 0.608125] io scheduler noop registered
    [ 0.608134] io scheduler deadline registered
    [ 0.608287] io scheduler cfq registered (default)
    [ 0.608298] io scheduler mq-deadline registered
    [ 0.608306] io scheduler kyber registered
    [ 0.613338] pinctrl-single 4a003400.pinmux: 282 pins at pa fc003400 size 1128
    [ 0.615942] dra7-pcie 51000000.pcie: Linked as a consumer to phy-4a094000.pciephy.3
    [ 0.616310] OF: PCI: host bridge /ocp/axi@0/pcie@51000000 ranges:
    [ 0.616346] OF: PCI: IO 0x20003000..0x20012fff -> 0x00000000
    [ 0.616370] OF: PCI: MEM 0x20013000..0x2fffffff -> 0x20013000
    [ 1.611064] dra7-pcie 51000000.pcie: phy link never came up
    [ 1.611193] dra7-pcie 51000000.pcie: PCI host bridge to bus 0000:00
    [ 1.611207] pci_bus 0000:00: root bus resource [bus 00-ff]
    [ 1.611218] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
    [ 1.611228] pci_bus 0000:00: root bus resource [mem 0x20013000-0x2fffffff]
    [ 1.611544] PCI: bus0: Fast back to back transfers disabled
    [ 1.611633] PCI: bus1: Fast back to back transfers enabled
    [ 1.611670] pci 0000:00:00.0: BAR 0: assigned [mem 0x20100000-0x201fffff 64bit]
    [ 1.611688] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
    [ 1.611996] pcieport 0000:00:00.0: Signaling PME with IRQ 170
    [ 1.612123] pcieport 0000:00:00.0: AER enabled with IRQ 170
    [ 1.614956] vdd_3v3: supplied by regen1
    [ 1.615218] aic_dvdd_fixed: supplied by vdd_3v3
    [ 1.615295] vtt_fixed: supplied by smps3
    [ 1.657305] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [ 1.659825] 48020000.serial: ttyS2 at MMIO 0x48020000 (irq = 45, base_baud = 3000000) is a 8250
    [ 2.750753] console [ttyS2] enabled
    [ 2.756038] omap_rng 48090000.rng: Random Number Generator ver. 20
    [ 2.763550] DSS: OMAP DSS rev 6.1
    [ 2.767349] omapdss_dss 58000000.dss: bound 58001000.dispc (ops dispc_component_ops)
    [ 2.784560] brd: module loaded
    [ 2.793060] loop: module loaded
    [ 2.796789] at24 0-0050: 4096 byte 24c32 EEPROM, writable, 1 bytes/write
    [ 2.806138] libphy: Fixed MDIO Bus: probed
    [ 2.870858] davinci_mdio 48485000.mdio: davinci mdio revision 1.6, bus freq 1000000
    [ 2.878553] libphy: 48485000.mdio: probed
    [ 2.887287] davinci_mdio 48485000.mdio: phy[1]: device 48485000.mdio:01, driver Micrel KSZ9031 Gigabit PHY
    [ 2.897038] davinci_mdio 48485000.mdio: phy[2]: device 48485000.mdio:02, driver Micrel KSZ9031 Gigabit PHY
    [ 2.907275] cpsw 48484000.ethernet: Detected MACID = d4:36:39:2c:82:ac
    [ 2.913928] cpsw 48484000.ethernet: initialized cpsw ale version 1.4
    [ 2.920314] cpsw 48484000.ethernet: ALE Table size 1024
    [ 2.925613] cpsw 48484000.ethernet: device node lookup for pps timer failed
    [ 2.932682] cpsw 48484000.ethernet: cpts: overflow check period 500 (jiffies)
    [ 2.940558] cpsw 48484000.ethernet: cpsw: Detected MACID = d4:36:39:2c:82:ad
    [ 2.948759] i2c /dev entries driver
    [ 2.953067] IR NEC protocol handler initialized
    [ 2.957619] IR RC5(x/sz) protocol handler initialized
    [ 2.962715] IR RC6 protocol handler initialized
    [ 2.967266] IR JVC protocol handler initialized
    [ 2.971853] IR Sony protocol handler initialized
    [ 2.976491] IR SANYO protocol handler initialized
    [ 2.981476] IR Sharp protocol handler initialized
    [ 2.986201] IR MCE Keyboard/mouse protocol handler initialized
    [ 2.992074] IR XMP protocol handler initialized
    [ 2.998858] gpio-fan gpio_fan: GPIO fan initialized
    [ 3.004875] tmp102 0-0048: initialized
    [ 3.012733] sdhci: Secure Digital Host Controller Interface driver
    [ 3.018942] sdhci: Copyright(c) Pierre Ossman
    [ 3.024143] sdhci-pltfm: SDHCI platform and OF driver helper
    [ 3.030689] sdhci-omap 4809c000.mmc: Got CD GPIO
    [ 3.036069] sdhci-omap 4809c000.mmc: no pinctrl state for ddr_1_8v mode
    [ 3.042743] sdhci-omap 4809c000.mmc: no pinctrl state for hs200_1_8v mode
    [ 3.101058] mmc0: SDHCI controller on 4809c000.mmc [4809c000.mmc] using ADMA
    [ 3.148845] mmc0: host does not support reading read-only switch, assuming write-enable
    [ 3.159731] mmc0: new high speed SDHC card at address 0007
    [ 3.165568] mmcblk0: mmc0:0007 SD16G 14.5 GiB
    [ 3.170871] mmc1: SDHCI controller on 480b4000.mmc [480b4000.mmc] using ADMA
    [ 3.178118] mmcblk0: p1 p2
    [ 3.182378] ledtrig-cpu: registered to indicate activity on CPUs
    [ 3.193339] aloecare audio codec probing...
    [ 3.198189] mcasp_reparent_fck
    [ 3.203637] omap_hwmod: mcasp2: _wait_target_ready failed: -16
    [ 3.209497] davinci-mcasp 48464000.mcasp: use pm_runtime_put_sync_suspend() in driver?
    [ 3.217463] Unhandled fault: asynchronous external abort (0x1211) at 0x00000000
    [ 3.217467] ------------[ cut here ]------------
    [ 3.217481] WARNING: CPU: 0 PID: 0 at drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x254/0x370
    [ 3.217486] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4_PER2_P3 (Read): Data Access in User mode during Functional access
    [ 3.217488] Modules linked in:
    [ 3.217496] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.14.40-g4796173fc5 #29
    [ 3.217498] Hardware name: Generic DRA74X (Flattened Device Tree)
    [ 3.217500] Backtrace:
    [ 3.217510] [<c020b5bc>] (dump_backtrace) from [<c020b8a0>] (show_stack+0x18/0x1c)
    [ 3.217515] r7:00000009 r6:60000193 r5:00000000 r4:c1053e2c
    [ 3.217524] [<c020b888>] (show_stack) from [<c0926468>] (dump_stack+0x90/0xa4)
    [ 3.217533] [<c09263d8>] (dump_stack) from [<c022b720>] (__warn+0xec/0x104)
    [ 3.217537] r7:00000009 r6:c0bc8874 r5:00000000 r4:c1001ca8
    [ 3.217544] [<c022b634>] (__warn) from [<c022b778>] (warn_slowpath_fmt+0x40/0x48)
    [ 3.217548] r9:0000001a r8:ee9f2050 r7:c0bc86e0 r6:00000002 r5:c0bc87a0 r4:c0bc8844
    [ 3.217555] [<c022b73c>] (warn_slowpath_fmt) from [<c05199bc>] (l3_interrupt_handler+0x254/0x370)
    [ 3.217558] r3:eea03e80 r2:c0bc8844
    [ 3.217561] r4:80080003
    [ 3.217569] [<c0519768>] (l3_interrupt_handler) from [<c027f040>] (__handle_irq_event_percpu+0x6c/0x134)
    [ 3.217573] r10:c105584d r9:eea0e500 r8:00000017 r7:c1001dcc r6:00000000 r5:eea0e500
    [ 3.217575] r4:ee9f23c0
    [ 3.217581] [<c027efd4>] (__handle_irq_event_percpu) from [<c027f12c>] (handle_irq_event_percpu+0x24/0x60)
    [ 3.217586] r10:c1003ce4 r9:c1000000 r8:ee808000 r7:00000000 r6:c10093ec r5:eea0e500
    [ 3.217587] r4:eea0e500
    [ 3.217593] [<c027f108>] (handle_irq_event_percpu) from [<c027f1a8>] (handle_irq_event+0x40/0x64)
    [ 3.217596] r5:eea0e564 r4:eea0e500
    [ 3.217602] [<c027f168>] (handle_irq_event) from [<c0282a7c>] (handle_fasteoi_irq+0xac/0x160)
    [ 3.217606] r7:00000000 r6:c10093ec r5:eea0e564 r4:eea0e500
    [ 3.217611] [<c02829d0>] (handle_fasteoi_irq) from [<c027e290>] (generic_handle_irq+0x2c/0x3c)
    [ 3.217615] r7:00000000 r6:00000000 r5:00000017 r4:c0e64afc
    [ 3.217619] [<c027e264>] (generic_handle_irq) from [<c027e818>] (__handle_domain_irq+0x64/0xbc)
    [ 3.217625] [<c027e7b4>] (__handle_domain_irq) from [<c0201474>] (gic_handle_irq+0x44/0x80)
    [ 3.217629] r9:c1000000 r8:fa213000 r7:fa212000 r6:c1001e88 r5:fa21200c r4:c1004000
    [ 3.217635] [<c0201430>] (gic_handle_irq) from [<c020c478>] (__irq_svc+0x58/0x8c)
    [ 3.217638] Exception stack(0xc1001e88 to 0xc1001ed0)
    [ 3.217642] 1e80: edc52bcc 40000013 00000002 c1000000 edc52b3c edc52bd0
    [ 3.217645] 1ea0: 000000ff edc52bcc 00000002 c0e643b8 c1003ce4 c1001ee4 c1001ee8 c1001ed8
    [ 3.217649] 1ec0: c077c164 c093f1fc 60000013 ffffffff
    [ 3.217653] r9:c1000000 r8:00000002 r7:c1001ebc r6:ffffffff r5:60000013 r4:c093f1fc
    [ 3.217662] [<c093f1e8>] (_raw_read_unlock) from [<c077c164>] (led_trigger_event+0x58/0x5c)
    [ 3.217669] [<c077c10c>] (led_trigger_event) from [<c077e330>] (ledtrig_cpu+0xac/0xe4)
    [ 3.217672] r7:00000001 r6:eed3d658 r5:000001fe r4:c109703c
    [ 3.217679] [<c077e284>] (ledtrig_cpu) from [<c0208860>] (arch_cpu_idle_exit+0x14/0x18)
    [ 3.217683] r9:c0e643b8 r8:00000000 r7:00000000 r6:c1003c78 r5:c1003cd8 r4:ffffe000
    [ 3.217690] [<c020884c>] (arch_cpu_idle_exit) from [<c026afcc>] (do_idle+0x78/0x224)
    [ 3.217694] [<c026af54>] (do_idle) from [<c026b43c>] (cpu_startup_entry+0x20/0x24)
    [ 3.217698] r10:c0e4aa30 r9:c1058000 r8:ffffffff r7:c1058000 r6:00000000 r5:00000002
    [ 3.217700] r4:000000be
    [ 3.217706] [<c026b41c>] (cpu_startup_entry) from [<c09394cc>] (rest_init+0xd8/0xdc)
    [ 3.217713] [<c09393f4>] (rest_init) from [<c0e00d9c>] (start_kernel+0x3ec/0x3f8)
    [ 3.217716] r5:00000000 r4:c105804c
    [ 3.217721] [<c0e009b0>] (start_kernel) from [<80008090>] (0x80008090)
    [ 3.217725] r10:00000000 r9:412fc0f2 r8:80007000 r7:c1008490 r6:c0e4aa2c r5:c1003c58
    [ 3.217727] r4:c1058214
    [ 3.217733] ---[ end trace 154538f52b4c25e0 ]---
    [ 3.239620] mmc1: new DDR MMC card at address 0001
    [ 3.239848] mmcblk1: mmc1:0001 M62704 3.53 GiB
    [ 3.250886] mmcblk1boot0: mmc1:0001 M62704 partition 1 2.00 MiB
    [ 3.251007] mmcblk1boot1: mmc1:0001 M62704 partition 2 2.00 MiB
    [ 3.251120] mmcblk1rpmb: mmc1:0001 M62704 partition 3 512 KiB
    [ 3.251821] mmcblk1: p1
    [ 3.613564] pgd = c0003000
    [ 3.616276] [00000000] *pgd=80000080004003, *pmd=00000000
    [ 3.621705] Internal error: : 1211 [#1] PREEMPT SMP ARM
    [ 3.626949] Modules linked in:
    [ 3.630017] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W 4.14.40-g4796173fc5 #29
    [ 3.638402] Hardware name: Generic DRA74X (Flattened Device Tree)
    [ 3.644518] task: ee880000 task.stack: ee87e000
    [ 3.649073] PC is at __pm_runtime_idle+0x24/0x88
    [ 3.653710] LR is at davinci_mcasp_probe+0x9e4/0xbac
    [ 3.658694] pc : [<c0655cb4>] lr : [<c07e3f58>] psr: 20000013
    [ 3.664985] sp : ee87fd18 ip : ee87fd38 fp : ee87fd34
    [ 3.670228] r10: 00000000 r9 : eed9594c r8 : 00000000
    [ 3.675470] r7 : ee9c0d10 r6 : 00000000 r5 : 00000005 r4 : eea61810
    [ 3.682020] r3 : eea618e4 r2 : 00000000 r1 : 00000005 r0 : eea61810
    [ 3.688573] Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
    [ 3.695736] Control: 30c5387d Table: 80003000 DAC: 55555555
    [ 3.701503] Process swapper/0 (pid: 1, stack limit = 0xee87e210)
    [ 3.707532] Stack: (0xee87fd18 to 0xee880000)
    [ 3.711905] fd00: edc72410 eea61810
    [ 3.720114] fd20: 00000000 ee9c0d10 ee87fdcc ee87fd38 c07e3f58 c0655c9c 00002000 ee9c5d10
    [ 3.728324] fd40: edc72410 c0bd3a64 00000001 00000000 ee87fd74 00000020 eed5c77c 00000002
    [ 3.736535] fd60: 00000082 00000001 ee87fd94 00000000 ee9c9a80 c0bd9d18 ee9c9b40 00000001
    [ 3.744743] fd80: eea583c0 00000000 ee87fdbc ee87fd98 c03a698c c03a2ecc eea61810 00000000
    [ 3.752954] fda0: eea61818 eea61810 ffffffed c104c6b4 fffffdfb c104c6b4 00000000 00000000
    [ 3.761164] fdc0: ee87fdec ee87fdd0 c064d6d8 c07e3580 eea61810 c10953f8 c10953fc 00000000
    [ 3.769373] fde0: ee87fe1c ee87fdf0 c064bc14 c064d68c 00000000 eea61810 c104c6b4 eea61844
    [ 3.777584] fe00: 00000000 c0e4a834 000000d3 c1058000 ee87fe3c ee87fe20 c064bd70 c064b9e0
    [ 3.785792] fe20: 00000000 c104c6b4 c064bcc4 00000000 ee87fe64 ee87fe40 c0649f4c c064bcd0
    [ 3.794003] fe40: ee862858 eea51934 ee86286c c104c6b4 ee9c0b80 c1032750 ee87fe74 ee87fe68
    [ 3.802213] fe60: c064b590 c0649f04 ee87fe9c ee87fe78 c064b0a4 c064b578 c0c1c180 ee87fe88
    [ 3.810424] fe80: c104c6b4 00000000 c0e34598 c1058000 ee87feb4 ee87fea0 c064c6e0 c064af20
    [ 3.818634] fea0: c1032750 00000000 ee87fecc ee87feb8 c064d630 c064c66c ffffe000 00000000
    [ 3.826845] fec0: ee87fedc ee87fed0 c0e345b4 c064d5f4 ee87ff4c ee87fee0 c02019fc c0e345a4
    [ 3.835054] fee0: ee87ff4c ee87fef0 c0247e00 c0e00624 c0ba2a50 c0ba2a30 c0ba2a7c c0bad978
    [ 3.843264] ff00: 00000000 c0ba2a08 00000006 00000006 c0bf8724 c0c72d14 effff868 effff86b
    [ 3.851472] ff20: 00000000 c0c72d14 00000007 c0c72d14 c0e5d238 00000007 c1058000 c0e4a834
    [ 3.859680] ff40: ee87ff94 ee87ff50 c0e00f80 c02019bc 00000006 00000006 00000000 c0e00618
    [ 3.867890] ff60: 00000001 c0e00618 c0251980 00000000 c09394d0 00000000 00000000 00000000
    [ 3.876100] ff80: 00000000 00000000 ee87ffac ee87ff98 c09394e0 c0e00db4 00000000 c09394d0
    [ 3.884310] ffa0: 00000000 ee87ffb0 c0207d58 c09394dc 00000000 00000000 00000000 00000000
    [ 3.892520] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [ 3.900728] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000 ffffffff 00000000
    [ 3.908934] Backtrace:
    [ 3.911397] [<c0655c90>] (__pm_runtime_idle) from [<c07e3f58>] (davinci_mcasp_probe+0x9e4/0xbac)
    [ 3.920217] r7:ee9c0d10 r6:00000000 r5:eea61810 r4:edc72410
    [ 3.925903] [<c07e3574>] (davinci_mcasp_probe) from [<c064d6d8>] (platform_drv_probe+0x58/0xb4)
    [ 3.934636] r10:00000000 r9:00000000 r8:c104c6b4 r7:fffffdfb r6:c104c6b4 r5:ffffffed
    [ 3.942494] r4:eea61810
    [ 3.945038] [<c064d680>] (platform_drv_probe) from [<c064bc14>] (driver_probe_device+0x240/0x2f0)
    [ 3.953946] r7:00000000 r6:c10953fc r5:c10953f8 r4:eea61810
    [ 3.959630] [<c064b9d4>] (driver_probe_device) from [<c064bd70>] (__driver_attach+0xac/0xb0)
    [ 3.968100] r10:c1058000 r9:000000d3 r8:c0e4a834 r7:00000000 r6:eea61844 r5:c104c6b4
    [ 3.975961] r4:eea61810 r3:00000000
    [ 3.979552] [<c064bcc4>] (__driver_attach) from [<c0649f4c>] (bus_for_each_dev+0x54/0xa4)
    [ 3.987759] r7:00000000 r6:c064bcc4 r5:c104c6b4 r4:00000000
    [ 3.993443] [<c0649ef8>] (bus_for_each_dev) from [<c064b590>] (driver_attach+0x24/0x28)
    [ 4.001476] r6:c1032750 r5:ee9c0b80 r4:c104c6b4
    [ 4.006111] [<c064b56c>] (driver_attach) from [<c064b0a4>] (bus_add_driver+0x190/0x214)
    [ 4.014147] [<c064af14>] (bus_add_driver) from [<c064c6e0>] (driver_register+0x80/0xfc)
    [ 4.022182] r7:c1058000 r6:c0e34598 r5:00000000 r4:c104c6b4
    [ 4.027867] [<c064c660>] (driver_register) from [<c064d630>] (__platform_driver_register+0x48/0x50)
    [ 4.036945] r5:00000000 r4:c1032750
    [ 4.040539] [<c064d5e8>] (__platform_driver_register) from [<c0e345b4>] (davinci_mcasp_driver_init+0x1c/0x20)
    [ 4.050492] r5:00000000 r4:ffffe000
    [ 4.054083] [<c0e34598>] (davinci_mcasp_driver_init) from [<c02019fc>] (do_one_initcall+0x4c/0x170)
    [ 4.063168] [<c02019b0>] (do_one_initcall) from [<c0e00f80>] (kernel_init_freeable+0x1d8/0x274)
    [ 4.071899] r8:c0e4a834 r7:c1058000 r6:00000007 r5:c0e5d238 r4:c0c72d14
    [ 4.078628] [<c0e00da8>] (kernel_init_freeable) from [<c09394e0>] (kernel_init+0x10/0x110)
    [ 4.086927] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c09394d0
    [ 4.094785] r4:00000000
    [ 4.097327] [<c09394d0>] (kernel_init) from [<c0207d58>] (ret_from_fork+0x14/0x3c)
    [ 4.104923] r5:c09394d0 r4:00000000
    [ 4.108515] Code: e1a04000 0a00000a f57ff05b e28030d4 (f593f000)
    [ 4.114638] ---[ end trace 154538f52b4c25e1 ]---
    [ 4.119323] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
    [ 4.119323]
    [ 4.128496] CPU0: stopping
    [ 4.131217] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G D W 4.14.40-g4796173fc5 #29
    [ 4.139601] Hardware name: Generic DRA74X (Flattened Device Tree)
    [ 4.145716] Backtrace:
    [ 4.148175] [<c020b5bc>] (dump_backtrace) from [<c020b8a0>] (show_stack+0x18/0x1c)
    [ 4.155775] r7:fa212000 r6:20000193 r5:00000000 r4:c1053e2c
    [ 4.161460] [<c020b888>] (show_stack) from [<c0926468>] (dump_stack+0x90/0xa4)
    [ 4.168714] [<c09263d8>] (dump_stack) from [<c020eb78>] (handle_IPI+0x1b8/0x1cc)
    [ 4.176140] r7:fa212000 r6:00000000 r5:00000000 r4:c0e64afc
    [ 4.181823] [<c020e9c0>] (handle_IPI) from [<c02014ac>] (gic_handle_irq+0x7c/0x80)
    [ 4.189419] r6:c1001ed0 r5:fa21200c r4:c1004000
    [ 4.194053] [<c0201430>] (gic_handle_irq) from [<c020c478>] (__irq_svc+0x58/0x8c)
    [ 4.201564] Exception stack(0xc1001ed0 to 0xc1001f18)
    [ 4.206633] 1ec0: 00000001 00000000 00000000 c02197a0
    [ 4.214844] 1ee0: ffffe000 c1003cd8 c1003c78 00000000 00000000 c0e643b8 c1003ce4 c1001f2c
    [ 4.223054] 1f00: c1001f30 c1001f20 c0208818 c020881c 60000013 ffffffff
    [ 4.229694] r9:c1000000 r8:00000000 r7:c1001f04 r6:ffffffff r5:60000013 r4:c020881c
    [ 4.237472] [<c02087dc>] (arch_cpu_idle) from [<c093ec5c>] (default_idle_call+0x28/0x34)
    [ 4.245597] [<c093ec34>] (default_idle_call) from [<c026b0e8>] (do_idle+0x194/0x224)
    [ 4.253372] [<c026af54>] (do_idle) from [<c026b43c>] (cpu_startup_entry+0x20/0x24)
    [ 4.260972] r10:c0e4aa30 r9:c1058000 r8:ffffffff r7:c1058000 r6:00000000 r5:00000002
    [ 4.268829] r4:000000be
    [ 4.271372] [<c026b41c>] (cpu_startup_entry) from [<c09394cc>] (rest_init+0xd8/0xdc)
    [ 4.279147] [<c09393f4>] (rest_init) from [<c0e00d9c>] (start_kernel+0x3ec/0x3f8)
    [ 4.286656] r5:00000000 r4:c105804c
    [ 4.290246] [<c0e009b0>] (start_kernel) from [<80008090>] (0x80008090)
    [ 4.296800] r10:00000000 r9:412fc0f2 r8:80007000 r7:c1008490 r6:c0e4aa2c r5:c1003c58
    [ 4.304658] r4:c1058214
    [ 4.307205] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

  • This is my device tree:

    /*
    * Copyright (C) 2014-2016 Texas Instruments Incorporated - http://www.ti.com/
    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of the GNU General Public License version 2 as
    * published by the Free Software Foundation.
    */
    /dts-v1/;

    #include "dra74x.dtsi"
    #include "am57xx-commercial-grade.dtsi"
    #include "dra74x-mmc-iodelay.dtsi"
    #include "dra74-ipu-dsp-common.dtsi"
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    / {
    compatible = "ti,am572x-beagle-x15", "ti,am5728", "ti,dra742", "ti,dra74", "ti,dra7";

    aliases {
    rtc0 = &mcp_rtc;
    rtc1 = &tps659038_rtc;
    rtc2 = &rtc;
    // display0 = &hdmi0;

    sound0 = &sound0;
    // sound1 = &hdmi;
    };

    chosen {
    stdout-path = &uart3;
    };

    memory@0 {
    device_type = "memory";
    reg = <0x0 0x80000000 0x0 0x80000000>;
    };

    reserved-memory {
    #address-cells = <2>;
    #size-cells = <2>;
    ranges;

    ipu2_memory_region: ipu2-memory@95800000 {
    compatible = "shared-dma-pool";
    reg = <0x0 0x95800000 0x0 0x3800000>;
    reusable;
    status = "okay";
    };

    dsp1_memory_region: dsp1-memory@99000000 {
    compatible = "shared-dma-pool";
    reg = <0x0 0x99000000 0x0 0x4000000>;
    reusable;
    status = "okay";
    };

    ipu1_memory_region: ipu1-memory@9d000000 {
    compatible = "shared-dma-pool";
    reg = <0x0 0x9d000000 0x0 0x2000000>;
    reusable;
    status = "okay";
    };

    dsp2_memory_region: dsp2-memory@9f000000 {
    compatible = "shared-dma-pool";
    reg = <0x0 0x9f000000 0x0 0x800000>;
    reusable;
    status = "okay";
    };
    };

    main_12v0: fixedregulator-main_12v0 {
    /* main supply */
    compatible = "regulator-fixed";
    regulator-name = "main_12v0";
    regulator-min-microvolt = <12000000>;
    regulator-max-microvolt = <12000000>;
    regulator-always-on;
    regulator-boot-on;
    };

    evm_5v0: fixedregulator-evm_5v0 {
    /* Output of TPS54531D */
    compatible = "regulator-fixed";
    regulator-name = "evm_5v0";
    regulator-min-microvolt = <5000000>;
    regulator-max-microvolt = <5000000>;
    vin-supply = <&main_12v0>;
    regulator-always-on;
    regulator-boot-on;
    };

    vdd_3v3: fixedregulator-vdd_3v3 {
    compatible = "regulator-fixed";
    regulator-name = "vdd_3v3";
    vin-supply = <&regen1>;
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    };

    aic_dvdd: fixedregulator-aic_dvdd {
    compatible = "regulator-fixed";
    regulator-name = "aic_dvdd_fixed";
    vin-supply = <&vdd_3v3>;
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    };

    vtt_fixed: fixedregulator-vtt {
    /* TPS51200 */
    compatible = "regulator-fixed";
    regulator-name = "vtt_fixed";
    vin-supply = <&smps3_reg>;
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-always-on;
    regulator-boot-on;
    enable-active-high;
    gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
    };

    leds {
    compatible = "gpio-leds";

    led0 {
    label = "beagle-x15:usr0";
    gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
    linux,default-trigger = "heartbeat";
    default-state = "off";
    };

    led1 {
    label = "beagle-x15:usr1";
    gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
    linux,default-trigger = "cpu0";
    default-state = "off";
    };

    led2 {
    label = "beagle-x15:usr2";
    gpios = <&gpio7 14 GPIO_ACTIVE_HIGH>;
    linux,default-trigger = "mmc0";
    default-state = "off";
    };

    led3 {
    label = "beagle-x15:usr3";
    gpios = <&gpio7 15 GPIO_ACTIVE_HIGH>;
    linux,default-trigger = "disk-activity";
    default-state = "off";
    };
    };

    gpio_fan: gpio_fan {
    /* Based on 5v 500mA AFB02505HHB */
    compatible = "gpio-fan";
    gpios = <&tps659038_gpio 2 GPIO_ACTIVE_HIGH>;
    gpio-fan,speed-map = <0 0>,
    <13000 1>;
    #cooling-cells = <2>;
    };

    // hdmi0: connector {
    // compatible = "hdmi-connector";
    // label = "hdmi";
    //
    // type = "a";
    //
    // port {
    // hdmi_connector_in: endpoint {
    // remote-endpoint = <&tpd12s015_out>;
    // };
    // };
    // };

    // tpd12s015: encoder {
    // compatible = "ti,tpd12s015";
    //
    // ports {
    // #address-cells = <1>;
    // #size-cells = <0>;
    //
    // port@0 {
    // reg = <0>;
    //
    // tpd12s015_in: endpoint {
    // remote-endpoint = <&hdmi_out>;
    // };
    // };
    //
    // port@1 {
    // reg = <1>;
    //
    // tpd12s015_out: endpoint {
    // remote-endpoint = <&hdmi_connector_in>;
    // };
    // };
    // };
    // };

    // sound0: sound0 {
    // compatible = "simple-audio-card";
    // simple-audio-card,name = "BeagleBoard-X15";
    // simple-audio-card,widgets =
    // "Line", "Line Out",
    // "Line", "Line In";
    // simple-audio-card,routing =
    // "Line Out", "LLOUT",
    // "Line Out", "RLOUT",
    // "MIC2L", "Line In",
    // "MIC2R", "Line In";
    // simple-audio-card,format = "dsp_b";
    // simple-audio-card,bitclock-master = <&sound0_master>;
    // simple-audio-card,frame-master = <&sound0_master>;
    // simple-audio-card,bitclock-inversion;
    //
    // simple-audio-card,cpu {
    // sound-dai = <&mcasp3>;
    // };
    //
    // sound0_master: simple-audio-card,codec {
    // sound-dai = <&tlv320aic3104>;
    // clocks = <&clkout2_clk>;
    // };
    // };


    // sound {
    // compatible = "ti,piccolo-dsp";
    // ti,model = "Piccolo DSP Audio Subsystem";
    // ti,audio-codec = <&piccolodsp>;
    // ti,mcasp-controller = <&mcasp2>;
    // //ti,codec-clock-rate = <19200000>;
    // clock-names = "mclk";
    // };
    //
    // piccolodsp: piccolodsp {
    // compatible = "ti,piccolo";
    // status = "okay";
    // };


    // sound0: sound0 {
    // compatible = "simple-audio-card";
    // simple-audio-card,format = "i2s";
    // simple-audio-card,cpu {
    // sound-dai = <&mcasp2>;
    // // bitclock-master;
    // // bitclock-inversion;
    // // frame-master;
    // // system-clock-frequency = <20000000>;
    // // system-clock-direction = "out";
    // simple-audio-card,bitclock-master = <&sound_master>;
    // simple-audio-card,frame-master = <&sound_master>;
    // };
    //
    sound0: sound0 {
    compatible = "simple-audio-card";
    simple-audio-card,name = "TI BeagleBone Black";
    simple-audio-card,format = "i2s";
    simple-audio-card,bitclock-master = <&sound_master>;
    simple-audio-card,frame-master = <&sound_master>;
    system-clock-direction = "in";
    sound_master:simple-audio-card,cpu {
    sound-dai = <&mcasp2>;
    // 22579200
    system-clock-frequency = <12288000>; //<22579200>;
    system-clock-id = <0>;
    };

    simple-audio-card,codec {
    sound-dai = <&aloecareaif>;
    };
    };

    aloecareaif: aloecareaif {
    #sound-dai-cells = <0>;
    compatible = "ti,aloecare";
    status = "okay";
    };
    };

    &dra7_pmx_core {

    mcasp2_pins_default: mcasp2_pins_default {
    pinctrl-single,pins = <
    0x2f4 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp2_aclkx.aclkx */
    0x2f8 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp2_fsx.fsx */
    0x304 (PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp2_axr0.axr0 */
    0x308 (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp2_axr1.axr1 */

    0x294 (PIN_INPUT_PULLUP | MUX_MODE0) /*XREF0 */
    0x298 (PIN_INPUT_PULLUP | MUX_MODE0) /*XREF1 */
    >;
    };
    };

    &i2c1 {
    status = "okay";
    clock-frequency = <400000>;

    tps659038: tps659038@58 {
    compatible = "ti,tps659038";
    reg = <0x58>;
    interrupt-parent = <&gpio1>;
    interrupts = <0 IRQ_TYPE_LEVEL_LOW>;

    #interrupt-cells = <2>;
    interrupt-controller;

    ti,system-power-controller;
    ti,palmas-override-powerhold;

    tps659038_pmic {
    compatible = "ti,tps659038-pmic";

    regulators {
    smps12_reg: smps12 {
    /* VDD_MPU */
    regulator-name = "smps12";
    regulator-min-microvolt = < 850000>;
    regulator-max-microvolt = <1250000>;
    regulator-always-on;
    regulator-boot-on;
    };

    smps3_reg: smps3 {
    /* VDD_DDR */
    regulator-name = "smps3";
    regulator-min-microvolt = <1350000>;
    regulator-max-microvolt = <1350000>;
    regulator-always-on;
    regulator-boot-on;
    };

    smps45_reg: smps45 {
    /* VDD_DSPEVE, VDD_IVA, VDD_GPU */
    regulator-name = "smps45";
    regulator-min-microvolt = < 850000>;
    regulator-max-microvolt = <1250000>;
    regulator-always-on;
    regulator-boot-on;
    };

    smps6_reg: smps6 {
    /* VDD_CORE */
    regulator-name = "smps6";
    regulator-min-microvolt = <850000>;
    regulator-max-microvolt = <1150000>;
    regulator-always-on;
    regulator-boot-on;
    };

    /* SMPS7 unused */

    smps8_reg: smps8 {
    /* VDD_1V8 */
    regulator-name = "smps8";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-always-on;
    regulator-boot-on;
    };

    /* SMPS9 unused */

    ldo1_reg: ldo1 {
    /* VDD_SD / VDDSHV8 */
    regulator-name = "ldo1";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <3300000>;
    regulator-boot-on;
    regulator-always-on;
    };

    ldo2_reg: ldo2 {
    /* VDD_SHV5 */
    regulator-name = "ldo2";
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-always-on;
    regulator-boot-on;
    };

    ldo3_reg: ldo3 {
    /* VDDA_1V8_PHYA */
    regulator-name = "ldo3";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-always-on;
    regulator-boot-on;
    };

    ldo4_reg: ldo4 {
    /* VDDA_1V8_PHYB */
    regulator-name = "ldo4";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-always-on;
    regulator-boot-on;
    };

    ldo9_reg: ldo9 {
    /* VDD_RTC */
    regulator-name = "ldo9";
    regulator-min-microvolt = <1050000>;
    regulator-max-microvolt = <1050000>;
    regulator-always-on;
    regulator-boot-on;
    };

    ldoln_reg: ldoln {
    /* VDDA_1V8_PLL */
    regulator-name = "ldoln";
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-always-on;
    regulator-boot-on;
    };

    ldousb_reg: ldousb {
    /* VDDA_3V_USB: VDDA_USBHS33 */
    regulator-name = "ldousb";
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-boot-on;
    };

    regen1: regen1 {
    /* VDD_3V3_ON */
    regulator-name = "regen1";
    regulator-boot-on;
    regulator-always-on;
    };
    };
    };

    tps659038_rtc: tps659038_rtc {
    compatible = "ti,palmas-rtc";
    interrupt-parent = <&tps659038>;
    interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
    wakeup-source;
    };

    tps659038_pwr_button: tps659038_pwr_button {
    compatible = "ti,palmas-pwrbutton";
    interrupt-parent = <&tps659038>;
    interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
    wakeup-source;
    ti,palmas-long-press-seconds = <12>;
    };

    tps659038_gpio: tps659038_gpio {
    compatible = "ti,palmas-gpio";
    gpio-controller;
    #gpio-cells = <2>;
    };

    extcon_usb2: tps659038_usb {
    compatible = "ti,palmas-usb-vid";
    ti,enable-vbus-detection;
    vbus-gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
    };

    };

    tmp102: tmp102@48 {
    compatible = "ti,tmp102";
    reg = <0x48>;
    interrupt-parent = <&gpio7>;
    interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
    #thermal-sensor-cells = <1>;
    };

    // tlv320aic3104: tlv320aic3104@18 {
    // #sound-dai-cells = <0>;
    // compatible = "ti,tlv320aic3104";
    // reg = <0x18>;
    // assigned-clocks = <&clkoutmux2_clk_mux>;
    // assigned-clock-parents = <&sys_clk2_dclk_div>;
    //
    // status = "okay";
    // adc-settle-ms = <40>;
    //
    // AVDD-supply = <&vdd_3v3>;
    // IOVDD-supply = <&vdd_3v3>;
    // DRVDD-supply = <&vdd_3v3>;
    // DVDD-supply = <&aic_dvdd>;
    // };

    eeprom: eeprom@50 {
    compatible = "atmel,24c32";
    reg = <0x50>;
    };
    };

    &i2c3 {
    status = "okay";
    clock-frequency = <400000>;

    mcp_rtc: rtc@6f {
    compatible = "microchip,mcp7941x";
    reg = <0x6f>;
    interrupts-extended = <&crossbar_mpu GIC_SPI 2 IRQ_TYPE_EDGE_RISING>,
    <&dra7_pmx_core 0x424>;
    interrupt-names = "irq", "wakeup";

    vcc-supply = <&vdd_3v3>;
    wakeup-source;
    };
    };

    &gpio7 {
    ti,no-reset-on-init;
    ti,no-idle-on-init;
    };

    &cpu0 {
    vdd-supply = <&smps12_reg>;
    voltage-tolerance = <1>;
    };

    &uart3 {
    status = "okay";
    interrupts-extended = <&crossbar_mpu GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
    <&dra7_pmx_core 0x3f8>;
    };

    &davinci_mdio {
    phy0: ethernet-phy@1 {
    reg = <1>;
    };

    phy1: ethernet-phy@2 {
    reg = <2>;
    };
    };

    &mac {
    status = "okay";
    dual_emac;
    };

    &cpsw_emac0 {
    phy-handle = <&phy0>;
    phy-mode = "rgmii";
    dual_emac_res_vlan = <1>;
    };

    &cpsw_emac1 {
    phy-handle = <&phy1>;
    phy-mode = "rgmii";
    dual_emac_res_vlan = <2>;
    };

    &mmc1 {
    status = "okay";

    pinctrl-names = "default";
    pinctrl-0 = <&mmc1_pins_default>;

    bus-width = <4>;
    cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
    };

    &mmc2 {
    status = "okay";

    pinctrl-names = "default";
    pinctrl-0 = <&mmc2_pins_default>;

    vmmc-supply = <&vdd_3v3>;
    vqmmc-supply = <&vdd_3v3>;
    bus-width = <8>;
    non-removable;
    no-1-8-v;
    };

    &sata {
    status = "okay";
    };

    &usb2_phy1 {
    phy-supply = <&ldousb_reg>;
    };

    &usb2_phy2 {
    phy-supply = <&ldousb_reg>;
    };

    &usb1 {
    dr_mode = "host";
    };

    &omap_dwc3_2 {
    extcon = <&extcon_usb2>;
    };

    &usb2 {
    /*
    * Stand alone usage is peripheral only.
    * However, with some resistor modifications
    * this port can be used via expansion connectors
    * as "host" or "dual-role". If so, provide
    * the necessary dr_mode override in the expansion
    * board's DT.
    */
    dr_mode = "peripheral";
    };

    &cpu_trips {
    cpu_alert1: cpu_alert1 {
    temperature = <50000>; /* millicelsius */
    hysteresis = <2000>; /* millicelsius */
    type = "active";
    };
    };

    &cpu_cooling_maps {
    map1 {
    trip = <&cpu_alert1>;
    cooling-device = <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    };
    };

    &thermal_zones {
    board_thermal: board_thermal {
    polling-delay-passive = <1250>; /* milliseconds */
    polling-delay = <1500>; /* milliseconds */

    /* sensor ID */
    thermal-sensors = <&tmp102 0>;

    board_trips: trips {
    board_alert0: board_alert {
    temperature = <40000>; /* millicelsius */
    hysteresis = <2000>; /* millicelsius */
    type = "active";
    };

    board_crit: board_crit {
    temperature = <105000>; /* millicelsius */
    hysteresis = <0>; /* millicelsius */
    type = "critical";
    };
    };

    board_cooling_maps: cooling-maps {
    map0 {
    trip = <&board_alert0>;
    cooling-device =
    <&gpio_fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
    };
    };
    };
    };

    &gpu {
    status = "ok";
    };

    &dss {
    status = "ok";

    vdda_video-supply = <&ldoln_reg>;
    };

    &bb2d {
    status = "okay";
    };

    // &hdmi {
    // status = "ok";
    // vdda-supply = <&ldo4_reg>;
    //
    // port {
    // hdmi_out: endpoint {
    // remote-endpoint = <&tpd12s015_in>;
    // };
    // };
    // };

    &pcie1_rc {
    status = "ok";
    gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
    };

    &pcie1_ep {
    gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
    };

    // &mcasp3 {
    // #sound-dai-cells = <0>;
    // assigned-clocks = <&mcasp3_ahclkx_mux>;
    // assigned-clock-parents = <&sys_clkin2>;
    // status = "okay";
    //
    // op-mode = <0>; /* MCASP_IIS_MODE */
    // tdm-slots = <2>;
    // /* 4 serializers */
    // serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
    // 1 2 0 0
    // >;
    // tx-num-evt = <32>;
    // rx-num-evt = <32>;
    // };

    &mcasp2 {
    #sound-dai-cells = <0>;
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&mcasp2_pins_default>;
    assigned-clocks = <&mcasp2_ahclkx_mux>; //<&mcasp2_aux_gfclk_mux>;
    assigned-clock-parents = <&abe_sys_clk_div>;
    //fck_parent = "ref_clkin1_ck";
    //pinctrl-1 = <&mcasp2_pins_sleep>;

    op-mode = <0>; /* MCASP_IIS_MODE */
    tdm-slots = <2>;
    /* mcasp1_axr0 = RX, mcasp1_axr1 = TX */
    serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
    2 1 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    >;
    tx-num-evt = <32>;
    rx-num-evt = <32>;
    };


    &pruss_soc_bus1 {
    status = "okay";

    pruss1: pruss@0 {
    status = "okay";
    };
    };

    &pruss_soc_bus2 {
    status = "okay";

    pruss2: pruss@0 {
    status = "okay";
    };
    };

    &ipu2 {
    status = "okay";
    memory-region = <&ipu2_memory_region>;
    };

    &ipu1 {
    status = "okay";
    memory-region = <&ipu1_memory_region>;
    };

    &dsp1 {
    status = "okay";
    memory-region = <&dsp1_memory_region>;
    };

    &dsp2 {
    status = "okay";
    memory-region = <&dsp2_memory_region>;
    };
  • Aleksandar,

    From what I understand when you have [1] your board is working fine, but when you have [2], the kernel boot report errors, is that correct?

    [1] assigned-clocks = <&mcasp2_ahclkx_mux>;
    assigned-clock-parents = <&abe_sys_clk_div>;

    [2] assigned-clocks = <&mcasp2_ahclkx_mux>;
    assigned-clock-parents = <&ref_clkin1_ck>;

    ABE_SYS_CLK is derived directly from the main oscillator OSC0/SYS_CLK1, thus you have valid clock source there.

    Regarding xref_clk1, I would suggest you to measure that pin with oscilloscope and verify you have there valid and stable clock signal. And note that pinmux is done in u-boot SPL/MLO, not in kernel. Check below e2e thread for more info:

    e2e.ti.com/.../661048

    So I would suggest you to make your pinmux in below file:

    u-boot/board/ti/am57xx/mux_data.h

    const struct pad_conf_entry core_padconf_array_essential_x15[] = {

    -{XREF_CLK1, (M14 | PIN_INPUT_PULLDOWN)}, /* xref_clk1.gpio6_18 */
    +{XREF_CLK1, (M0 | PIN_INPUT_PULLDOWN)}, /* xref_clk1.xref_clk1 */

    Then you can boot your board in mode [1] and check the below register value in user space with devmem2 tool:

    CTRL_CORE_PAD_XREF_CLK1/0x4A003698

    Make sure you have the correct value in this register.

    Regards,
    Pavel
  • Thanks Pavel,
    That solves the problem.
    I also found thet Linux won't boot if there is no external clock on xref provided (I am using signal generator).
    So there are two conditions that are important : seting the muxing for xref pins in u-boot (I also did the same in Kernel dts) and providing some clocking on that xref pin during Linux kernel booting.