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/AM4378: MMC configuration

Part Number: AM4378
Other Parts Discussed in Thread: AM4372

Tool/software: Linux

Hi

On AM4378 processor based board, SDIO interfaced WF111 chip is present. We are able to compile and load the driver(Unifi_sdio) for WF111 chip. Please refer the below link for Pin Numbers and their Connections https://e2e.ti.com/support/arm/sitara_arm/f/791/t/671726?Linux-AM4378-MMC2-WiFi-bring-up

When Unifi_sdio Driver is loaded, it is not able to find the Device.

I have a query that if omap4-hsmmc driver detects SDIO Device, it should print some debug message like "New SDIO Found on MMC2" and then probe the Unifi_sdio. But there is no debug message or device file (sysfs => /sys/class/mmc_host/mmc2 or /dev).

I have the entries for mmc2 pins as below in Device Tree, Please can you suggest me is there anything am I missing in the Device tree or somewhere.

mmc3_pins: mmc3_pins_default {
        pinctrl-single,pins = <
                0x1f0 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AD21) cam1_data2.mmc2_clk */
                0x1f4 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AE22) cam1_data3.mmc2_cmd */
                0x1f8 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AD22) cam1_data4.mmc2_dat0 */
                0x1fc ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AE23) cam1_data5.mmc2_dat1 */
                0x200 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AD23) cam1_data6.mmc2_dat2 */
                0x204 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AE24) cam1_data7.mmc2_dat3 */
        >;
};

&mmc3 {
        #address-cells = <1>;
        #size-cells = <0>;

        vmmc-supply = <&dcdc4>;
        status = "okay";
        ti,non-removable;

        bus-width = <4>;
        pinctrl-names = "default";
        pinctrl-0 = <&mmc3_pins>;

        unifi_sdio: unifi_sdio@1 {
                reg = <1>;
                compatible = "unifi_sdio";
        };
};


mmc3: mmc@47810000 {
        compatible = "ti,omap4-hsmmc";
        reg = <0x47810000 0x1000>;
        ti,hwmods = "mmc3";
        ti,needs-special-reset;
        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
        status = "disabled";
};

Please find the Below Attachments for Reference

root@am437x-evm:~# dmesg
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.28-geed43d1050 (test@test-Lenovo-ideapad-300-15ISK) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #10 PREEMPT Wed Jun 6 15:34:58 IST 2018
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt:Machine model: TI AM437x SK EVM
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 48 MiB at 0x9c800000
[    0.000000] Memory policy: Data cache writeback
[    0.000000] On node 0 totalpages: 131072
[    0.000000] free_area_init_node: node 0, pgdat c0d46ca8, node_mem_map dfb61000
[    0.000000]   Normal zone: 1152 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 131072 pages, LIFO batch:31
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM437x ES1.2 (sgx neon)
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
[    0.000000] Kernel command line: console=ttyS0,115200n8 omapdss.def_disp=display1 omapfb.mode=display1:1024x768MR-24@60 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 456904K/524288K available (8192K kernel code, 292K rwdata, 2404K rodata, 1024K init, 274K bss, 18232K reserved, 49152K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
                   vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                   fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
                   vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
                   lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
                   pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
                   modules : 0xbf000000 - 0xbfe00000   (  14 MB)
                     .text : 0xc0008000 - 0xc0900000   (9184 kB)
                     .init : 0xc0c00000 - 0xc0d00000   (1024 kB)
                     .data : 0xc0d00000 - 0xc0d49188   ( 293 kB)
                      .bss : 0xc0d49188 - 0xc0d8d9e4   ( 275 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] 	Build-time adjustment of leaf fanout to 32.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] L2C: platform modifies aux control register: 0x0e030000 -> 0x3e430000
[    0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 -> 0x3e430000
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] OMAP L2C310: ROM does not support power control setting
[    0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled
[    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c9, AUX_CTRL 0x4e430000
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000015] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000040] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000053] OMAP clocksource: timer1 at 24000000 Hz
[    0.000589] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
[    0.000603] OMAP clocksource: 32k_counter at 32768 Hz
[    0.001050] Console: colour dummy device 80x30
[    0.001094] Calibrating delay loop... 1196.85 BogoMIPS (lpj=5984256)
[    0.090255] pid_max: default: 32768 minimum: 301
[    0.090407] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.090423] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.091333] CPU: Testing write buffer coherency: ok
[    0.091717] Setting up static identity map for 0x80100000 - 0x80100060
[    0.092722] EFI services will not be available.
[    0.093698] devtmpfs: initialized
[    0.109234] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.109591] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.109620] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.113701] pinctrl core: initialized pinctrl subsystem
[    0.115020] NET: Registered protocol family 16
[    0.116824] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.210246] cpuidle: using governor ladder
[    0.240237] cpuidle: using governor menu
[    0.249124] gpio gpiochip0: (gpio): added GPIO chardev (254:0)
[    0.249509] gpiochip_setup_dev: registered GPIOs 0 to 31 on device: gpiochip0 (gpio)
[    0.251205] OMAP GPIO hardware version 0.1
[    0.252047] gpio gpiochip1: (gpio): added GPIO chardev (254:1)
[    0.252408] gpiochip_setup_dev: registered GPIOs 32 to 63 on device: gpiochip1 (gpio)
[    0.254550] gpio gpiochip2: (gpio): added GPIO chardev (254:2)
[    0.254988] gpiochip_setup_dev: registered GPIOs 64 to 95 on device: gpiochip2 (gpio)
[    0.257086] gpio gpiochip3: (gpio): added GPIO chardev (254:3)
[    0.257401] gpiochip_setup_dev: registered GPIOs 96 to 127 on device: gpiochip3 (gpio)
[    0.259507] gpio gpiochip4: (gpio): added GPIO chardev (254:4)
[    0.259845] gpiochip_setup_dev: registered GPIOs 128 to 159 on device: gpiochip4 (gpio)
[    0.262068] gpio gpiochip5: (gpio): added GPIO chardev (254:5)
[    0.262427] gpiochip_setup_dev: registered GPIOs 160 to 191 on device: gpiochip5 (gpio)
[    0.272393] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.272416] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.319577] edma 49000000.edma: TI EDMA DMA engine driver
[    0.324061] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c0_pins, deferring probe
[    0.324138] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c1_pins, deferring probe
[    0.324282] media: Linux media interface: v0.10
[    0.324345] Linux video capture interface: v2.00
[    0.324397] pps_core: LinuxPPS API ver. 1 registered
[    0.324407] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.324437] PTP clock support registered
[    0.324492] EDAC MC: Ver: 3.0.0
[    0.325614] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[    0.326048] Advanced Linux Sound Architecture Driver Initialized.
[    0.326672] Bluetooth: Core ver 2.22
[    0.326735] NET: Registered protocol family 31
[    0.326747] Bluetooth: HCI device and connection manager initialized
[    0.326765] Bluetooth: HCI socket layer initialized
[    0.326779] Bluetooth: L2CAP socket layer initialized
[    0.326814] Bluetooth: SCO socket layer initialized
[    0.327535] clocksource: Switched to clocksource timer1
[    0.339589] NET: Registered protocol family 2
[    0.340446] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.340510] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.340579] TCP: Hash tables configured (established 4096 bind 4096)
[    0.340679] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.340703] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.340886] NET: Registered protocol family 1
[    0.341345] RPC: Registered named UNIX socket transport module.
[    0.341361] RPC: Registered udp transport module.
[    0.341370] RPC: Registered tcp transport module.
[    0.341379] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.341395] PCI: CLS 0 bytes, default 64
[    0.344406] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    0.352672] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.353688] NFS: Registering the id_resolver key type
[    0.353729] Key type id_resolver registered
[    0.353740] Key type id_legacy registered
[    0.353792] ntfs: driver 2.1.32 [Flags: R/O].
[    0.356159] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    0.356181] io scheduler noop registered
[    0.356192] io scheduler deadline registered
[    0.356353] io scheduler cfq registered (default)
[    0.359430] pinctrl-single 44e10800.pinmux: please update dts to use #pinctrl-cells = <1>
[    0.360203] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
[    0.433546] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    0.437108] omap8250 44e09000.serial: No clock speed specified: using default: 48000000
[    0.438033] console [ttyS0] disabled
[    0.438120] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
[    1.110349] console [ttyS0] enabled
[    1.114420] omap8250 48022000.serial: No clock speed specified: using default: 48000000
[    1.123269] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 31, base_baud = 3000000) is a 8250
[    1.132614] omap8250 481a6000.serial: No clock speed specified: using default: 48000000
[    1.141488] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 32, base_baud = 3000000) is a 8250
[    1.150804] omap8250 481a8000.serial: No clock speed specified: using default: 48000000
[    1.159628] 481a8000.serial: ttyS4 at MMIO 0x481a8000 (irq = 33, base_baud = 3000000) is a 8250
[    1.168956] omap8250 481aa000.serial: No clock speed specified: using default: 48000000
[    1.177774] 481aa000.serial: ttyS5 at MMIO 0x481aa000 (irq = 34, base_baud = 3000000) is a 8250
[    1.188759] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[    1.195561] [drm] Initialized
[    1.215755] brd: module loaded
[    1.226567] loop: module loaded
[    1.233063] spi spi1.0: not using DMA for McSPI (-19)
[    1.239533] spi spi2.0: not using DMA for McSPI (-19)
[    1.247019] m25p80 spi0.0: unrecognized JEDEC id bytes: 00, 00, 00
[    1.254153] libphy: Fixed MDIO Bus: probed
[    1.327611] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[    1.333752] davinci_mdio 4a101000.mdio: detected phy mask ffffffef
[    1.340895] libphy: 4a101000.mdio: probed
[    1.344947] davinci_mdio 4a101000.mdio: phy[4]: device 4a101000.mdio:04, driver Atheros 8035 ethernet
[    1.355192] cpsw 4a100000.ethernet: Detected MACID = 50:33:8b:04:6d:90
[    1.361997] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[    1.370502] cpsw 4a100000.ethernet: cpsw: Detected MACID = 50:33:8b:04:6d:92
[    1.379362] mousedev: PS/2 mouse device common for all mice
[    1.385389] i2c /dev entries driver
[    1.390313] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[    1.397049] cpuidle: enable-method property 'ti,am4372' found operations
[    1.405059] omap_hsmmc 48060000.mmc: GPIO lookup for consumer cd
[    1.405070] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[    1.405119] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp@44000000/mmc@48060000[0]' - status (0)
[    1.405190] omap_hsmmc 48060000.mmc: Got CD GPIO
[    1.409939] omap_hsmmc 48060000.mmc: GPIO lookup for consumer wp
[    1.409946] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[    1.409958] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp@44000000/mmc@48060000[0]'
[    1.409967] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp@44000000/mmc@48060000[0]'
[    1.409975] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup
[    1.409984] omap_hsmmc 48060000.mmc: lookup for GPIO wp failed
[    1.438016] omap_hsmmc 47810000.mmc: GPIO lookup for consumer cd
[    1.438029] omap_hsmmc 47810000.mmc: using device tree for GPIO lookup
[    1.438040] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/ocp@44000000/mmc@47810000[0]'
[    1.438049] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/ocp@44000000/mmc@47810000[0]'
[    1.438056] omap_hsmmc 47810000.mmc: using lookup tables for GPIO lookup
[    1.438064] omap_hsmmc 47810000.mmc: lookup for GPIO cd failed
[    1.438075] omap_hsmmc 47810000.mmc: GPIO lookup for consumer wp
[    1.438081] omap_hsmmc 47810000.mmc: using device tree for GPIO lookup
[    1.438088] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp@44000000/mmc@47810000[0]'
[    1.438096] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp@44000000/mmc@47810000[0]'
[    1.438103] omap_hsmmc 47810000.mmc: using lookup tables for GPIO lookup
[    1.438110] omap_hsmmc 47810000.mmc: lookup for GPIO wp failed
[    1.438295] omap_hsmmc 47810000.mmc: RX DMA channel request failed
[    1.468340] ledtrig-cpu: registered to indicate activity on CPUs
[    1.476839] NET: Registered protocol family 10
[    1.483057] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.490010] NET: Registered protocol family 17
[    1.494809] Key type dns_resolver registered
[    1.499528] omap_voltage_late_init: Voltage driver support not added
[    1.556652] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[    1.563770] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
[    1.570991] omap_i2c 4802a000.i2c: bus 1 rev0.12 at 400 kHz
[    1.578737] omap_hsmmc 48060000.mmc: GPIO lookup for consumer cd
[    1.578750] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[    1.578803] of_get_named_gpiod_flags: parsed 'cd-gpios' property of node '/ocp@44000000/mmc@48060000[0]' - status (0)
[    1.578873] omap_hsmmc 48060000.mmc: Got CD GPIO
[    1.583530] omap_hsmmc 48060000.mmc: GPIO lookup for consumer wp
[    1.583537] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[    1.583548] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp@44000000/mmc@48060000[0]'
[    1.583557] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp@44000000/mmc@48060000[0]'
[    1.583564] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup
[    1.583574] omap_hsmmc 48060000.mmc: lookup for GPIO wp failed
[    1.638460] hctosys: unable to open rtc device (rtc0)
[    1.644215] ALSA device list:
[    1.647202]   No soundcards found.
[    1.654718] Waiting for root device /dev/mmcblk0p2...
[    1.693002] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.701141] mmc0: new SDHC card at address 0001
[    1.706399] mmcblk0: mmc0:0001 00000 7.44 GiB 
[    1.713283]  mmcblk0: p1 p2
[    1.840556] random: fast init done
[    1.942084] EXT4-fs (mmcblk0p2): warning: mounting fs with errors, running e2fsck is recommended
[    1.966172] EXT4-fs (mmcblk0p2): recovery complete
[    1.973250] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.981533] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.993238] devtmpfs: mounted
[    1.998682] Freeing unused kernel memory: 1024K (c0c00000 - c0d00000)
[    2.669146] systemd[1]: System time before build time, advancing clock.
[    2.818778] systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
[    2.837819] systemd[1]: Detected architecture arm.
[    2.879637] systemd[1]: Set hostname to <am437x-evm>.
[    3.350506] systemd[1]: Configuration file /etc/systemd/system/start_sys_monitor.service is marked executable. Please remove executable permission bits. Proceeding anyway.
[    3.617903] systemd[1]: sysinit.target: Found ordering cycle on sysinit.target/start
[    3.625728] systemd[1]: sysinit.target: Found dependency on alignment.service/start
[    3.633525] systemd[1]: sysinit.target: Found dependency on basic.target/start
[    3.640895] systemd[1]: sysinit.target: Found dependency on sockets.target/start
[    3.648371] systemd[1]: sysinit.target: Found dependency on dbus.socket/start
[    3.655551] systemd[1]: sysinit.target: Found dependency on sysinit.target/start
[    4.407833] cmemk: loading out-of-tree module taints kernel.
[    4.428814] cmemk: disagrees about version of symbol device_create
[    4.451245] cmemk: Unknown symbol device_create (err -22)
[    4.457244] cmemk: disagrees about version of symbol device_destroy
[    4.467708] cmemk: Unknown symbol device_destroy (err -22)
[    4.564563] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[    4.578718] cryptodev: disagrees about version of symbol crypto_alloc_aead
[    4.578732] cryptodev: Unknown symbol crypto_alloc_aead (err -22)
[    4.578746] cryptodev: disagrees about version of symbol crypto_aead_setauthsize
[    4.578752] cryptodev: Unknown symbol crypto_aead_setauthsize (err -22)
[    4.578832] cryptodev: disagrees about version of symbol crypto_aead_setkey
[    4.578837] cryptodev: Unknown symbol crypto_aead_setkey (err -22)
[    4.579056] cryptodev: disagrees about version of symbol crypto_alloc_skcipher
[    4.579061] cryptodev: Unknown symbol crypto_alloc_skcipher (err -22)
[    4.600475] uio_module_drv: disagrees about version of symbol _dev_info
[    4.600487] uio_module_drv: Unknown symbol _dev_info (err -22)
[    4.600526] uio_module_drv: disagrees about version of symbol dev_err
[    4.600532] uio_module_drv: Unknown symbol dev_err (err -22)
[    4.600620] uio_module_drv: disagrees about version of symbol kobject_uevent
[    4.600626] uio_module_drv: Unknown symbol kobject_uevent (err -22)
[    5.653274] systemd-journald[92]: Received request to flush runtime journal from PID 1
[    6.946531] rtc rtc0: 44e3e000.rtc: dev (253:0)
[    6.946566] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[    7.010905] remoteproc remoteproc0: wkup_m3 is available
[    7.087519] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    7.202869] remoteproc remoteproc0: powering up wkup_m3
[    7.290419] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 224344
[    7.393407] remoteproc remoteproc0: remote processor wkup_m3 is now up
[    7.404748] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
[    7.523428] CAN device driver interface
[    7.525634] of_get_named_gpiod_flags: can't parse 'gpio-reset' property of node '/ocp@44000000/i2c@4802a000/tlv320aic3106@1b[0]'
[    7.528256] OF: graph: no port node found in /ocp@44000000/i2c@4802a000/ov2659@30
[    7.528268] ov2659 1-0030: platform data not specified
[    7.528295] ov2659: probe of 1-0030 failed with error -22
[    7.562642] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=255)
[    8.112945] omap-sham 53100000.sham: hw accel on OMAP rev 0.0
[    8.287000] pvrsrvkm: disagrees about version of symbol dev_err
[    8.313686] omap-aes 53501000.aes: OMAP AES hw accel rev: 0.1
[    8.326692] omap-aes 53501000.aes: will run requests pump with realtime priority
[    8.359817] omap-des 53701000.des: OMAP DES hw accel rev: 0.33
[    8.389088] omap-des 53701000.des: will run requests pump with realtime priority
[    8.714543] pvrsrvkm: Unknown symbol dev_err (err -22)
[    8.822212] PM: bootloader does not support rtc-only!
[    9.097296] pvrsrvkm: disagrees about version of symbol dev_err
[    9.172657] pvrsrvkm: Unknown symbol dev_err (err -22)
[   11.130749] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[   11.240102] net eth1: initializing cpsw version 1.15 (0)
[   11.240113] net eth0: initialized cpsw ale version 1.4
[   11.240118] net eth0: ALE Table size 1024
[   11.260639] libphy: PHY 4a101000.mdio:05 not found
[   11.260657] net eth1: phy "4a101000.mdio:05" not found on slave 1, err -19
[   11.344908] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[   11.390307] net eth0: initializing cpsw version 1.15 (0)
[   11.488151] Atheros 8035 ethernet 4a101000.mdio:04: attached PHY driver [Atheros 8035 ethernet] (mii_bus:phy_addr=4a101000.mdio:04, irq=-1)
[   11.492668] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   13.576340] NET: Registered protocol family 15
[   14.517187] Initializing XFRM netlink socket
[   15.546574] ti-pruss 54400000.pruss: creating PRU cores and other child platform devices
[   15.664010] irq: no irq domain found for /ocp@44000000/pruss_soc_bus@54426000/pruss@54400000/intc@54420000 !
[   15.688643] cpsw 4a100000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   15.688824] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   15.966720] usbcore: registered new interface driver usbfs
[   15.969175] usbcore: registered new interface driver hub
[   15.969650] usbcore: registered new device driver usb
[   16.026679] xhci-hcd xhci-hcd.3.auto: xHCI Host Controller
[   16.026720] xhci-hcd xhci-hcd.3.auto: new USB bus registered, assigned bus number 1
[   16.027218] xhci-hcd xhci-hcd.3.auto: hcc params 0x0238f06d hci version 0x100 quirks 0x02010010
[   16.027271] xhci-hcd xhci-hcd.3.auto: irq 290, io mem 0x48390000
[   16.033332] hub 1-0:1.0: USB hub found
[   16.035265] hub 1-0:1.0: 1 port detected
[   16.035746] xhci-hcd xhci-hcd.3.auto: xHCI Host Controller
[   16.035765] xhci-hcd xhci-hcd.3.auto: new USB bus registered, assigned bus number 2
[   16.035843] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[   16.043121] hub 2-0:1.0: USB hub found
[   16.045083] hub 2-0:1.0: 1 port detected
[   16.048010] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
[   16.048048] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 3
[   16.051208] xhci-hcd xhci-hcd.4.auto: hcc params 0x0238f06d hci version 0x100 quirks 0x02010010
[   16.051265] xhci-hcd xhci-hcd.4.auto: irq 291, io mem 0x483d0000
[   16.064341] hub 3-0:1.0: USB hub found
[   16.064921] hub 3-0:1.0: 1 port detected
[   16.068326] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
[   16.068349] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 4
[   16.068486] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[   16.072623] hub 4-0:1.0: USB hub found
[   16.073809] hub 4-0:1.0: 1 port detected
[   16.281858] random: crng init done
[   16.417690] usb 3-1: new high-speed USB device number 2 using xhci-hcd
[   16.612849] hub 3-1:1.0: USB hub found
[   16.613472] hub 3-1:1.0: 3 ports detected
[   17.290605] irq: no irq domain found for /ocp@44000000/pruss_soc_bus@54426000/pruss@54400000/intc@54420000 !
[   17.363322] ti-pruss 54440000.pruss: creating PRU cores and other child platform devices
[   17.432393] irq: no irq domain found for /ocp@44000000/pruss_soc_bus@54426000/pruss@54440000/intc@54460000 !
[   17.515558] irq: no irq domain found for /ocp@44000000/pruss_soc_bus@54426000/pruss@54440000/intc@54460000 !
[   17.729589] remoteproc remoteproc1: 54434000.pru0 is available
[   17.735546] pru-rproc 54434000.pru0: PRU rproc node /ocp@44000000/pruss_soc_bus@54426000/pruss@54400000/pru@54434000 probed successfully
[   17.875655] remoteproc remoteproc2: 54438000.pru1 is available
[   17.915239] pru-rproc 54438000.pru1: PRU rproc node /ocp@44000000/pruss_soc_bus@54426000/pruss@54400000/pru@54438000 probed successfully
[   18.003003] remoteproc remoteproc3: 54474000.pru0 is available
[   18.047775] pru-rproc 54474000.pru0: PRU rproc node /ocp@44000000/pruss_soc_bus@54426000/pruss@54440000/pru@54474000 probed successfully
[   18.150465] remoteproc remoteproc4: 54478000.pru1 is available
[   18.156424] pru-rproc 54478000.pru1: PRU rproc node /ocp@44000000/pruss_soc_bus@54426000/pruss@54440000/pru@54478000 probed successfully
[   19.119002] pvrsrvkm: disagrees about version of symbol dev_err
[   19.124976] pvrsrvkm: Unknown symbol dev_err (err -22)
[   21.072778] pvrsrvkm: disagrees about version of symbol dev_err
[   21.079355] pvrsrvkm: Unknown symbol dev_err (err -22)
[   22.451078] remoteproc remoteproc4: powering up 54478000.pru1
[   22.522504] remoteproc remoteproc4: Booting fw image am437x-pru0_1-fw, size 85140
[   22.531625] ti-pruss 54440000.pruss: configured system_events = 0x00000000000c0000 intr_channels = 0x0000000a host_intr = 0x0000000a
[   22.565511] remoteproc remoteproc4: registered virtio0 (type 7)
[   22.582657] remoteproc remoteproc4: remote processor 54478000.pru1 is now up
[   22.609280] remoteproc remoteproc3: powering up 54474000.pru0
[   22.697060] virtio_rpmsg_bus virtio0: rpmsg host is online
[   22.719867] remoteproc remoteproc3: Booting fw image am437x-pru0_0-fw, size 91368
[   22.727467] remoteproc remoteproc3: remote processor 54474000.pru0 is now up
[   22.756293] remoteproc remoteproc2: powering up 54438000.pru1
[   22.791745] remoteproc remoteproc2: Booting fw image am437x-pru1_1-fw, size 97816
[   22.800178] ti-pruss 54400000.pruss: configured system_events = 0x00000000000c0000 intr_channels = 0x0000000a host_intr = 0x0000000a
[   22.818984] virtio_rpmsg_bus virtio1: creating channel rpmsg-pru addr 0x21
[   22.827821] virtio_rpmsg_bus virtio1: rpmsg host is online
[   22.841777] remoteproc remoteproc2: registered virtio1 (type 7)
[   22.870590] remoteproc remoteproc2: remote processor 54438000.pru1 is now up
[   22.889813] rpmsg_pru virtio1.rpmsg-pru.-1.33: new rpmsg_pru device: /dev/rpmsg_pru33
[   22.931493] remoteproc remoteproc1: powering up 54434000.pru0
[   22.970720] remoteproc remoteproc1: Booting fw image am437x-pru1_0-fw, size 128944
[   22.979226] ti-pruss 54400000.pruss: configured system_events = 0x0000000000030000 intr_channels = 0x00000005 host_intr = 0x00000005
[   22.999988] virtio_rpmsg_bus virtio2: rpmsg host is online
[   23.012276] remoteproc remoteproc1: registered virtio2 (type 7)
[   23.027773] remoteproc remoteproc1: remote processor 54434000.pru0 is now up
[  193.918857] UniFi SDIO Driver: 5.2.2-r3 Jun  6 2018 14:19:10
[  193.924563] CSR SME with WEXT support
[  193.947670] Split patch support
[  193.959248] Kernel 4.9.28
[  193.963426] UniFi: Using native Linux MMC driver for SDIO.


Thanks

  • You should see something like
    [ 1.410253] mmc0: new high speed SDIO card at address 0001

    I have a Wilink 8 card attached to my board and saw this message so you should see something like that too.

    Why do you have the status = "disabled" in that one node?

    Steve K.
  • Hi Steve,

    The Node which is mentioned as status="disabled" is from am4372.dtsi file, But In am437x-sk-evm.dts, &mmc3 phandle has

    status = "okay";

    Please can you share your node information for reference, Are you using the same omap4-hsmmc driver for mmc0 ?

    Is SDIO communication needs any special tag to be enabled in .config file apart from defualt, Here I am attaching my Device files and .config with .log extention

    Thanks

    /*
     * Device Tree Source for AM4372 SoC
     *
     * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
     *
     * This file is licensed under the terms of the GNU General Public License
     * version 2.  This program is licensed "as is" without any warranty of any
     * kind, whether express or implied.
     */
    
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    
    / {
    	compatible = "ti,am4372", "ti,am43";
    	interrupt-parent = <&wakeupgen>;
    	#address-cells = <1>;
    	#size-cells = <1>;
    	chosen { };
    
    	memory@0 {
    		device_type = "memory";
    		reg = <0 0>;
    	};
    
    	aliases {
    		i2c0 = &i2c0;
    		i2c1 = &i2c1;
    		i2c2 = &i2c2;
    		serial0 = &uart0;
    		serial1 = &uart1;
    		serial2 = &uart2;
    		serial3 = &uart3;
    		serial4 = &uart4;
    		serial5 = &uart5;
    		ethernet0 = &cpsw_emac0;
    		ethernet1 = &cpsw_emac1;
    		spi0 = &qspi;
    	};
    
    	cpus {
    		#address-cells = <1>;
    		#size-cells = <0>;
    		cpu: cpu@0 {
    			compatible = "arm,cortex-a9";
    			enable-method = "ti,am4372";
    			device_type = "cpu";
    			reg = <0>;
    
    			clocks = <&dpll_mpu_ck>;
    			clock-names = "cpu";
    
    			operating-points-v2 = <&cpu0_opp_table>;
    
    			clock-latency = <300000>; /* From omap-cpufreq driver */
    			cpu-idle-states = <&mpu_gate>;
    		};
    
    		idle-states {
    			mpu_gate: mpu_gate {
    				compatible = "arm,idle-state";
    				entry-latency-us = <40>;
    				exit-latency-us = <100>;
    				min-residency-us = <300>;
    				local-timer-stop;
    			};
    		};
    	};
    
    	cpu0_opp_table: opp_table0 {
    		compatible = "operating-points-v2-ti-cpu";
    		ti,syscon-efuse = <&scm_conf 0x610 0x3f 0>;
    		ti,syscon-rev = <&scm_conf 0x600>;
    
    		opp50@300000000 {
    			opp-hz = /bits/ 64 <300000000>;
    			opp-microvolt = <950000 931000 969000>;
    			opp-supported-hw = <0xFF 0x01>;
    			opp-suspend;
    		};
    
    		opp100@600000000 {
    			opp-hz = /bits/ 64 <600000000>;
    			opp-microvolt = <1100000 1078000 1122000>;
    			opp-supported-hw = <0xFF 0x04>;
    		};
    
    		opp120@720000000 {
    			opp-hz = /bits/ 64 <720000000>;
    			opp-microvolt = <1200000 1176000 1224000>;
    			opp-supported-hw = <0xFF 0x08>;
    		};
    
    		oppturbo@800000000 {
    			opp-hz = /bits/ 64 <800000000>;
    			opp-microvolt = <1260000 1234800 1285200>;
    			opp-supported-hw = <0xFF 0x10>;
    		};
    
    		oppnitro@1000000000 {
    			opp-hz = /bits/ 64 <1000000000>;
    			opp-microvolt = <1325000 1298500 1351500>;
    			opp-supported-hw = <0xFF 0x20>;
    		};
    	};
    
    	soc {
    		compatible = "ti,omap-infra";
    		mpu {
    			compatible = "ti,omap4-mpu";
    			ti,hwmods = "mpu";
    			pm-sram = <&pm_sram_code
    				   &pm_sram_data>;
    		};
    	};
    
    	gic: interrupt-controller@48241000 {
    		compatible = "arm,cortex-a9-gic";
    		interrupt-controller;
    		#interrupt-cells = <3>;
    		reg = <0x48241000 0x1000>,
    		      <0x48240100 0x0100>;
    		interrupt-parent = <&gic>;
    	};
    
    	wakeupgen: interrupt-controller@48281000 {
    		compatible = "ti,omap4-wugen-mpu";
    		interrupt-controller;
    		#interrupt-cells = <3>;
    		reg = <0x48281000 0x1000>;
    		interrupt-parent = <&gic>;
    	};
    
    	scu: scu@48240000 {
    		compatible = "arm,cortex-a9-scu";
    		reg = <0x48240000 0x100>;
    	};
    
    	global_timer: timer@48240200 {
    		compatible = "arm,cortex-a9-global-timer";
    		reg = <0x48240200 0x100>;
    		interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
    		interrupt-parent = <&gic>;
    		clocks = <&mpu_periphclk>;
    	};
    
    	local_timer: timer@48240600 {
    		compatible = "arm,cortex-a9-twd-timer";
    		reg = <0x48240600 0x100>;
    		interrupts = <GIC_PPI 13 IRQ_TYPE_EDGE_RISING>;
    		interrupt-parent = <&gic>;
    		clocks = <&mpu_periphclk>;
    	};
    
    	l2-cache-controller@48242000 {
    		compatible = "arm,pl310-cache";
    		reg = <0x48242000 0x1000>;
    		cache-unified;
    		cache-level = <2>;
    	};
    
    	ocp@44000000 {
    		compatible = "ti,am4372-l3-noc", "simple-bus";
    		#address-cells = <1>;
    		#size-cells = <1>;
    		ranges;
    		ti,hwmods = "l3_main";
    		ti,no-idle;
    		reg = <0x44000000 0x400000
    		       0x44800000 0x400000>;
    		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
    			     <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
    
    		l4_wkup: l4_wkup@44c00000 {
    			compatible = "ti,am4-l4-wkup", "simple-bus";
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges = <0 0x44c00000 0x287000>;
    
    			wkup_m3: wkup_m3@100000 {
    				compatible = "ti,am4372-wkup-m3";
    				reg = <0x100000 0x4000>,
    				      <0x180000	0x2000>;
    				reg-names = "umem", "dmem";
    				ti,hwmods = "wkup_m3";
    				ti,pm-firmware = "am335x-pm-firmware.elf";
    			};
    
    			prcm: prcm@1f0000 {
    				compatible = "ti,am4-prcm";
    				reg = <0x1f0000 0x11000>;
    				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
    
    				prcm_clocks: clocks {
    					#address-cells = <1>;
    					#size-cells = <0>;
    				};
    
    				prcm_clockdomains: clockdomains {
    				};
    			};
    
    			scm: scm@210000 {
    				compatible = "ti,am4-scm", "simple-bus";
    				reg = <0x210000 0x4000>;
    				#address-cells = <1>;
    				#size-cells = <1>;
    				ranges = <0 0x210000 0x4000>;
    
    				am43xx_pinmux: pinmux@800 {
    					compatible = "ti,am437-padconf",
    						     "pinctrl-single";
    					reg = <0x800 0x31c>;
    					#address-cells = <1>;
    					#size-cells = <0>;
    					#interrupt-cells = <1>;
    					interrupt-controller;
    					pinctrl-single,register-width = <32>;
    					pinctrl-single,function-mask = <0xffffffff>;
    				};
    
    				scm_conf: scm_conf@0 {
    					compatible = "syscon";
    					reg = <0x0 0x800>;
    					#address-cells = <1>;
    					#size-cells = <1>;
    
    					scm_clocks: clocks {
    						#address-cells = <1>;
    						#size-cells = <0>;
    					};
    				};
    
    				wkup_m3_ipc: wkup_m3_ipc@1324 {
    					compatible = "ti,am4372-wkup-m3-ipc";
    					reg = <0x1324 0x44>;
    					interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
    					ti,rproc = <&wkup_m3>;
    					mboxes = <&mailbox &mbox_wkupm3>;
    				};
    
    				edma_xbar: dma-router@f90 {
    					compatible = "ti,am335x-edma-crossbar";
    					reg = <0xf90 0x40>;
    					#dma-cells = <3>;
    					dma-requests = <64>;
    					dma-masters = <&edma>;
    				};
    
    				scm_clockdomains: clockdomains {
    				};
    			};
    		};
    
    		emif: emif@4c000000 {
    			compatible = "ti,emif-am4372";
    			reg = <0x4c000000 0x1000000>;
    			ti,hwmods = "emif";
    			ti,no-idle;
    			sram = <&pm_sram_code
    				&pm_sram_data>;
    		};
    
    		edma: edma@49000000 {
    			compatible = "ti,edma3-tpcc";
    			ti,hwmods = "tpcc";
    			reg =	<0x49000000 0x10000>;
    			reg-names = "edma3_cc";
    			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
    				     <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
    			interrupt-names = "edma3_ccint", "edma3_mperr",
    					  "edma3_ccerrint";
    			dma-requests = <64>;
    			#dma-cells = <2>;
    
    			ti,tptcs = <&edma_tptc0 7>, <&edma_tptc1 5>,
    				   <&edma_tptc2 0>;
    
    			ti,edma-memcpy-channels = <58 59>;
    		};
    
    		edma_tptc0: tptc@49800000 {
    			compatible = "ti,edma3-tptc";
    			ti,hwmods = "tptc0";
    			reg =	<0x49800000 0x100000>;
    			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
    			interrupt-names = "edma3_tcerrint";
    		};
    
    		edma_tptc1: tptc@49900000 {
    			compatible = "ti,edma3-tptc";
    			ti,hwmods = "tptc1";
    			reg =	<0x49900000 0x100000>;
    			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
    			interrupt-names = "edma3_tcerrint";
    		};
    
    		edma_tptc2: tptc@49a00000 {
    			compatible = "ti,edma3-tptc";
    			ti,hwmods = "tptc2";
    			reg =	<0x49a00000 0x100000>;
    			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
    			interrupt-names = "edma3_tcerrint";
    		};
    
    		uart0: serial@44e09000 {
    			compatible = "ti,am4372-uart","ti,omap2-uart";
    			reg = <0x44e09000 0x2000>;
    			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "uart1";
    			dmas = <&edma 26 0>, <&edma 27 0>;
    			dma-names = "tx", "rx";
    		};
    
    		uart1: serial@48022000 {
    			compatible = "ti,am4372-uart","ti,omap2-uart";
    			reg = <0x48022000 0x2000>;
    			interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "uart2";
    			status = "disabled";
    		};
    
    		uart2: serial@48024000 {
    			compatible = "ti,am4372-uart","ti,omap2-uart";
    			reg = <0x48024000 0x2000>;
    			interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "uart3";
    			status = "disabled";
    		};
    
    		uart3: serial@481a6000 {
    			compatible = "ti,am4372-uart","ti,omap2-uart";
    			reg = <0x481a6000 0x2000>;
    			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "uart4";
    			status = "disabled";
    		};
    
    		uart4: serial@481a8000 {
    			compatible = "ti,am4372-uart","ti,omap2-uart";
    			reg = <0x481a8000 0x2000>;
    			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "uart5";
    			status = "disabled";
    		};
    
    		uart5: serial@481aa000 {
    			compatible = "ti,am4372-uart","ti,omap2-uart";
    			reg = <0x481aa000 0x2000>;
    			interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "uart6";
    			status = "disabled";
    		};
    
    		mailbox: mailbox@480C8000 {
    			compatible = "ti,omap4-mailbox";
    			reg = <0x480C8000 0x200>;
    			interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "mailbox";
    			#mbox-cells = <1>;
    			ti,mbox-num-users = <4>;
    			ti,mbox-num-fifos = <8>;
    			mbox_wkupm3: wkup_m3 {
    				ti,mbox-send-noirq;
    				ti,mbox-tx = <0 0 0>;
    				ti,mbox-rx = <0 0 3>;
    			};
    			mbox_pru1_0: mbox_pru1_0 {
    				ti,mbox-tx = <2 0 0>;
    				ti,mbox-rx = <3 0 0>;
    			};
    			mbox_pru1_1: mbox_pru1_1 {
    				ti,mbox-tx = <4 0 0>;
    				ti,mbox-rx = <5 0 0>;
    			};
    		};
    
    		timer1: timer@44e31000 {
    			compatible = "ti,am4372-timer-1ms","ti,am335x-timer-1ms";
    			reg = <0x44e31000 0x400>;
    			interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
    			ti,timer-alwon;
    			ti,hwmods = "timer1";
    		};
    
    		timer2: timer@48040000  {
    			compatible = "ti,am4372-timer","ti,am335x-timer";
    			reg = <0x48040000  0x400>;
    			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "timer2";
    		};
    
    		timer3: timer@48042000 {
    			compatible = "ti,am4372-timer","ti,am335x-timer";
    			reg = <0x48042000 0x400>;
    			interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "timer3";
    			status = "disabled";
    		};
    
    		timer4: timer@48044000 {
    			compatible = "ti,am4372-timer","ti,am335x-timer";
    			reg = <0x48044000 0x400>;
    			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
    			ti,timer-pwm;
    			ti,hwmods = "timer4";
    			status = "disabled";
    		};
    
    		timer5: timer@48046000 {
    			compatible = "ti,am4372-timer","ti,am335x-timer";
    			reg = <0x48046000 0x400>;
    			interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
    			ti,timer-pwm;
    			ti,hwmods = "timer5";
    			status = "disabled";
    		};
    
    		timer6: timer@48048000 {
    			compatible = "ti,am4372-timer","ti,am335x-timer";
    			reg = <0x48048000 0x400>;
    			interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
    			ti,timer-pwm;
    			ti,hwmods = "timer6";
    			status = "disabled";
    		};
    
    		timer7: timer@4804a000 {
    			compatible = "ti,am4372-timer","ti,am335x-timer";
    			reg = <0x4804a000 0x400>;
    			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
    			ti,timer-pwm;
    			ti,hwmods = "timer7";
    			status = "disabled";
    		};
    
    		timer8: timer@481c1000 {
    			compatible = "ti,am4372-timer","ti,am335x-timer";
    			reg = <0x481c1000 0x400>;
    			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "timer8";
    			status = "disabled";
    		};
    
    		timer9: timer@4833d000 {
    			compatible = "ti,am4372-timer","ti,am335x-timer";
    			reg = <0x4833d000 0x400>;
    			interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "timer9";
    			status = "disabled";
    		};
    
    		timer10: timer@4833f000 {
    			compatible = "ti,am4372-timer","ti,am335x-timer";
    			reg = <0x4833f000 0x400>;
    			interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "timer10";
    			status = "disabled";
    		};
    
    		timer11: timer@48341000 {
    			compatible = "ti,am4372-timer","ti,am335x-timer";
    			reg = <0x48341000 0x400>;
    			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "timer11";
    			status = "disabled";
    		};
    
    		counter32k: counter@44e86000 {
    			compatible = "ti,am4372-counter32k","ti,omap-counter32k";
    			reg = <0x44e86000 0x40>;
    			ti,hwmods = "counter_32k";
    		};
    
    		rtc: rtc@44e3e000 {
    			compatible = "ti,am4372-rtc", "ti,am3352-rtc",
    				     "ti,da830-rtc";
    			reg = <0x44e3e000 0x1000>;
    			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH
    				      GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "rtc";
    			clocks = <&clk_32768_ck>;
    			clock-names = "int-clk";
    			system-power-controller;
    			status = "disabled";
    		};
    
    		wdt: wdt@44e35000 {
    			compatible = "ti,am4372-wdt","ti,omap3-wdt";
    			reg = <0x44e35000 0x1000>;
    			interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "wd_timer2";
    		};
    
    		gpio0: gpio@44e07000 {
    			compatible = "ti,am4372-gpio","ti,omap4-gpio";
    			reg = <0x44e07000 0x1000>;
    			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
    			gpio-controller;
    			#gpio-cells = <2>;
    			interrupt-controller;
    			#interrupt-cells = <2>;
    			ti,hwmods = "gpio1";
    			status = "disabled";
    		};
    
    		gpio1: gpio@4804c000 {
    			compatible = "ti,am4372-gpio","ti,omap4-gpio";
    			reg = <0x4804c000 0x1000>;
    			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
    			gpio-controller;
    			#gpio-cells = <2>;
    			interrupt-controller;
    			#interrupt-cells = <2>;
    			ti,hwmods = "gpio2";
    			status = "disabled";
    		};
    
    		gpio2: gpio@481ac000 {
    			compatible = "ti,am4372-gpio","ti,omap4-gpio";
    			reg = <0x481ac000 0x1000>;
    			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
    			gpio-controller;
    			#gpio-cells = <2>;
    			interrupt-controller;
    			#interrupt-cells = <2>;
    			ti,hwmods = "gpio3";
    			status = "disabled";
    		};
    
    		gpio3: gpio@481ae000 {
    			compatible = "ti,am4372-gpio","ti,omap4-gpio";
    			reg = <0x481ae000 0x1000>;
    			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
    			gpio-controller;
    			#gpio-cells = <2>;
    			interrupt-controller;
    			#interrupt-cells = <2>;
    			ti,hwmods = "gpio4";
    			status = "disabled";
    		};
    
    		gpio4: gpio@48320000 {
    			compatible = "ti,am4372-gpio","ti,omap4-gpio";
    			reg = <0x48320000 0x1000>;
    			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
    			gpio-controller;
    			#gpio-cells = <2>;
    			interrupt-controller;
    			#interrupt-cells = <2>;
    			ti,hwmods = "gpio5";
    			status = "disabled";
    		};
    
    		gpio5: gpio@48322000 {
    			compatible = "ti,am4372-gpio","ti,omap4-gpio";
    			reg = <0x48322000 0x1000>;
    			interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
    			gpio-controller;
    			#gpio-cells = <2>;
    			interrupt-controller;
    			#interrupt-cells = <2>;
    			ti,hwmods = "gpio6";
    			status = "disabled";
    		};
    
    		hwspinlock: spinlock@480ca000 {
    			compatible = "ti,omap4-hwspinlock";
    			reg = <0x480ca000 0x1000>;
    			ti,hwmods = "spinlock";
    			#hwlock-cells = <1>;
    		};
    
    		i2c0: i2c@44e0b000 {
    			compatible = "ti,am4372-i2c","ti,omap4-i2c";
    			reg = <0x44e0b000 0x1000>;
    			interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "i2c1";
    			#address-cells = <1>;
    			#size-cells = <0>;
    			status = "disabled";
    		};
    
    		i2c1: i2c@4802a000 {
    			compatible = "ti,am4372-i2c","ti,omap4-i2c";
    			reg = <0x4802a000 0x1000>;
    			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "i2c2";
    			#address-cells = <1>;
    			#size-cells = <0>;
    			status = "disabled";
    		};
    
    		i2c2: i2c@4819c000 {
    			compatible = "ti,am4372-i2c","ti,omap4-i2c";
    			reg = <0x4819c000 0x1000>;
    			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "i2c3";
    			#address-cells = <1>;
    			#size-cells = <0>;
    			status = "disabled";
    		};
    
    		spi0: spi@48030000 {
    			compatible = "ti,am4372-mcspi","ti,omap4-mcspi";
    			reg = <0x48030000 0x400>;
    			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "spi0";
    			#address-cells = <1>;
    			#size-cells = <0>;
    			status = "disabled";
    		};
    
    		mmc1: mmc@48060000 {
    			compatible = "ti,omap4-hsmmc";
    			reg = <0x48060000 0x1000>;
    			ti,hwmods = "mmc1";
    			ti,dual-volt;
    			ti,needs-special-reset;
    			dmas = <&edma 24 0>,
    				<&edma 25 0>;
    			dma-names = "tx", "rx";
    			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
    			status = "disabled";
    		};
    
    		mmc2: mmc@481d8000 {
    			compatible = "ti,omap4-hsmmc";
    			reg = <0x481d8000 0x1000>;
    			ti,hwmods = "mmc2";
    			ti,needs-special-reset;
    			dmas = <&edma 2 0>,
    				<&edma 3 0>;
    			dma-names = "tx", "rx";
    			interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
    			status = "disabled";
    		};
    
    		mmc3: mmc@47810000 {
    			compatible = "ti,omap4-hsmmc";
    			reg = <0x47810000 0x1000>;
    			ti,hwmods = "mmc3";
    			ti,needs-special-reset;
    			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
    			status = "disabled";
    		};
    
    		spi1: spi@481a0000 {
    			compatible = "ti,am4372-mcspi","ti,omap4-mcspi";
    			reg = <0x481a0000 0x400>;
    			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "spi1";
    			#address-cells = <1>;
    			#size-cells = <0>;
    			status = "disabled";
    		};
    
    		spi2: spi@481a2000 {
    			compatible = "ti,am4372-mcspi","ti,omap4-mcspi";
    			reg = <0x481a2000 0x400>;
    			interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "spi2";
    			#address-cells = <1>;
    			#size-cells = <0>;
    			status = "disabled";
    		};
    
    		spi3: spi@481a4000 {
    			compatible = "ti,am4372-mcspi","ti,omap4-mcspi";
    			reg = <0x481a4000 0x400>;
    			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "spi3";
    			#address-cells = <1>;
    			#size-cells = <0>;
    			status = "disabled";
    		};
    
    		spi4: spi@48345000 {
    			compatible = "ti,am4372-mcspi","ti,omap4-mcspi";
    			reg = <0x48345000 0x400>;
    			interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "spi4";
    			#address-cells = <1>;
    			#size-cells = <0>;
    			status = "disabled";
    		};
    
    		mac: ethernet@4a100000 {
    			compatible = "ti,am4372-cpsw","ti,cpsw";
    			reg = <0x4a100000 0x800
    			       0x4a101200 0x100>;
    			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH
    				      GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH
    				      GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH
    				      GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ti,hwmods = "cpgmac0";
    			clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>,
    				 <&dpll_clksel_mac_clk>;
    			clock-names = "fck", "cpts", "50mclk";
    			assigned-clocks = <&dpll_clksel_mac_clk>;
    			assigned-clock-rates = <50000000>;
    			status = "disabled";
    			cpdma_channels = <8>;
    			ale_entries = <1024>;
    			bd_ram_size = <0x2000>;
    			mac_control = <0x20>;
    			slaves = <2>;
    			active_slave = <0>;
    			cpts_clock_mult = <0x80000000>;
    			cpts_clock_shift = <29>;
    			ranges;
    			syscon = <&scm_conf>;
    
    			davinci_mdio: mdio@4a101000 {
    				compatible = "ti,am4372-mdio","ti,cpsw-mdio","ti,davinci_mdio";
    				reg = <0x4a101000 0x100>;
    				#address-cells = <1>;
    				#size-cells = <0>;
    				ti,hwmods = "davinci_mdio";
    				bus_freq = <1000000>;
    				status = "disabled";
    			};
    
    			cpsw_emac0: slave@4a100200 {
    				/* Filled in by U-Boot */
    				mac-address = [ 00 00 00 00 00 00 ];
    			};
    
    			cpsw_emac1: slave@4a100300 {
    				/* Filled in by U-Boot */
    				mac-address = [ 00 00 00 00 00 00 ];
    			};
    
    			phy_sel: cpsw-phy-sel@44e10650 {
    				compatible = "ti,am43xx-cpsw-phy-sel";
    				reg= <0x44e10650 0x4>;
    				reg-names = "gmii-sel";
    			};
    		};
    
    		epwmss0: epwmss@48300000 {
    			compatible = "ti,am4372-pwmss","ti,am33xx-pwmss";
    			reg = <0x48300000 0x10>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    			ti,hwmods = "epwmss0";
    			status = "disabled";
    
    			ecap0: ecap@48300100 {
    				compatible = "ti,am4372-ecap",
    					     "ti,am3352-ecap",
    					     "ti,am33xx-ecap";
    				#pwm-cells = <3>;
    				reg = <0x48300100 0x80>;
    				clocks = <&l4ls_gclk>;
    				clock-names = "fck";
    				status = "disabled";
    			};
    
    			ehrpwm0: pwm@48300200 {
    				compatible = "ti,am4372-ehrpwm",
    					     "ti,am3352-ehrpwm",
    					     "ti,am33xx-ehrpwm";
    				#pwm-cells = <3>;
    				reg = <0x48300200 0x80>;
    				clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
    				clock-names = "tbclk", "fck";
    				status = "disabled";
    			};
    		};
    
    		epwmss1: epwmss@48302000 {
    			compatible = "ti,am4372-pwmss","ti,am33xx-pwmss";
    			reg = <0x48302000 0x10>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    			ti,hwmods = "epwmss1";
    			status = "disabled";
    
    			ecap1: ecap@48302100 {
    				compatible = "ti,am4372-ecap",
    					     "ti,am3352-ecap",
    					     "ti,am33xx-ecap";
    				#pwm-cells = <3>;
    				reg = <0x48302100 0x80>;
    				clocks = <&l4ls_gclk>;
    				clock-names = "fck";
    				status = "disabled";
    			};
    
    			ehrpwm1: pwm@48302200 {
    				compatible = "ti,am4372-ehrpwm",
    					     "ti,am3352-ehrpwm",
    					     "ti,am33xx-ehrpwm";
    				#pwm-cells = <3>;
    				reg = <0x48302200 0x80>;
    				clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
    				clock-names = "tbclk", "fck";
    				status = "disabled";
    			};
    		};
    
    		epwmss2: epwmss@48304000 {
    			compatible = "ti,am4372-pwmss","ti,am33xx-pwmss";
    			reg = <0x48304000 0x10>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    			ti,hwmods = "epwmss2";
    			status = "disabled";
    
    			ecap2: ecap@48304100 {
    				compatible = "ti,am4372-ecap",
    					     "ti,am3352-ecap",
    					     "ti,am33xx-ecap";
    				#pwm-cells = <3>;
    				reg = <0x48304100 0x80>;
    				clocks = <&l4ls_gclk>;
    				clock-names = "fck";
    				status = "disabled";
    			};
    
    			ehrpwm2: pwm@48304200 {
    				compatible = "ti,am4372-ehrpwm",
    					     "ti,am3352-ehrpwm",
    					     "ti,am33xx-ehrpwm";
    				#pwm-cells = <3>;
    				reg = <0x48304200 0x80>;
    				clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
    				clock-names = "tbclk", "fck";
    				status = "disabled";
    			};
    		};
    
    		epwmss3: epwmss@48306000 {
    			compatible = "ti,am4372-pwmss","ti,am33xx-pwmss";
    			reg = <0x48306000 0x10>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    			ti,hwmods = "epwmss3";
    			status = "disabled";
    
    			ehrpwm3: pwm@48306200 {
    				compatible = "ti,am4372-ehrpwm",
    					     "ti,am3352-ehrpwm",
    					     "ti,am33xx-ehrpwm";
    				#pwm-cells = <3>;
    				reg = <0x48306200 0x80>;
    				clocks = <&ehrpwm3_tbclk>, <&l4ls_gclk>;
    				clock-names = "tbclk", "fck";
    				status = "disabled";
    			};
    		};
    
    		epwmss4: epwmss@48308000 {
    			compatible = "ti,am4372-pwmss","ti,am33xx-pwmss";
    			reg = <0x48308000 0x10>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    			ti,hwmods = "epwmss4";
    			status = "disabled";
    
    			ehrpwm4: pwm@48308200 {
    				compatible = "ti,am4372-ehrpwm",
    					     "ti,am3352-ehrpwm",
    					     "ti,am33xx-ehrpwm";
    				#pwm-cells = <3>;
    				reg = <0x48308200 0x80>;
    				clocks = <&ehrpwm4_tbclk>, <&l4ls_gclk>;
    				clock-names = "tbclk", "fck";
    				status = "disabled";
    			};
    		};
    
    		epwmss5: epwmss@4830a000 {
    			compatible = "ti,am4372-pwmss","ti,am33xx-pwmss";
    			reg = <0x4830a000 0x10>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    			ti,hwmods = "epwmss5";
    			status = "disabled";
    
    			ehrpwm5: pwm@4830a200 {
    				compatible = "ti,am4372-ehrpwm",
    					     "ti,am3352-ehrpwm",
    					     "ti,am33xx-ehrpwm";
    				#pwm-cells = <3>;
    				reg = <0x4830a200 0x80>;
    				clocks = <&ehrpwm5_tbclk>, <&l4ls_gclk>;
    				clock-names = "tbclk", "fck";
    				status = "disabled";
    			};
    		};
    
    		tscadc: tscadc@44e0d000 {
    			compatible = "ti,am3359-tscadc";
    			reg = <0x44e0d000 0x1000>;
    			ti,hwmods = "adc_tsc";
    			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&adc_tsc_fck>;
    			clock-names = "fck";
    			status = "disabled";
    			dmas = <&edma 53 0>, <&edma 57 0>;
    			dma-names = "fifo0", "fifo1";
    
    			tsc {
    				compatible = "ti,am3359-tsc";
    			};
    
    			adc {
    				#io-channel-cells = <1>;
    				compatible = "ti,am3359-adc";
    			};
    
    		};
    
    		sham: sham@53100000 {
    			compatible = "ti,omap5-sham";
    			ti,hwmods = "sham";
    			reg = <0x53100000 0x300>;
    			dmas = <&edma 36 0>;
    			dma-names = "rx";
    			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
    		};
    
    		aes: aes@53501000 {
    			compatible = "ti,omap4-aes";
    			ti,hwmods = "aes";
    			reg = <0x53501000 0xa0>;
    			interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
    			dmas = <&edma 6 0>,
    				<&edma 5 0>;
    			dma-names = "tx", "rx";
    		};
    
    		des: des@53701000 {
    			compatible = "ti,omap4-des";
    			ti,hwmods = "des";
    			reg = <0x53701000 0xa0>;
    			interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
    			dmas = <&edma 34 0>,
    				<&edma 33 0>;
    			dma-names = "tx", "rx";
    		};
    
    		rng: rng@48310000 {
    			compatible = "ti,omap4-rng";
    			ti,hwmods = "rng";
    			reg = <0x48310000 0x2000>;
    			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
    		};
    
    		pruss_soc_bus: pruss_soc_bus@54426000 {
    			compatible = "ti,am4376-pruss-soc-bus";
    			reg = <0x54426000 0x2000>;
    			ti,hwmods = "pruss";
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    			status = "disabled";
    
    			pruss1: pruss@54400000 {
    				compatible = "ti,am4376-pruss";
    				reg = <0x54400000 0x2000>,
    				      <0x54402000 0x2000>,
    				      <0x54410000 0x8000>,
    				      <0x54426000 0x2000>,
    				      <0x5442e000 0x31c>,
    				      <0x54432000 0x58>;
    				reg-names = "dram0", "dram1", "shrdram2", "cfg",
    					    "iep", "mii_rt";
    				#address-cells = <1>;
    				#size-cells = <1>;
    				ranges;
    				status = "disabled";
    
    				pruss1_intc: intc@54420000 {
    					compatible = "ti,am4376-pruss-intc";
    					reg = <0x54420000 0x2000>;
    					reg-names = "intc";
    					interrupts =
    					    <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
    					interrupt-names = "host2", "host3",
    							  "host4", "host5",
    							  "host6", "host8",
    							  "host9";
    					interrupt-controller;
    					#interrupt-cells = <1>;
    				};
    
    				pru1_0: pru@54434000 {
    					compatible = "ti,am4376-pru";
    					reg = <0x54434000 0x3000>,
    					      <0x54422000 0x400>,
    					      <0x54422400 0x100>;
    					reg-names = "iram", "control", "debug";
    					label = "pru0";
    					interrupt-parent = <&pruss1_intc>;
    					interrupts = <16>, <17>;
    					interrupt-names = "vring", "kick";
    					status = "disabled";
    				};
    
    				pru1_1: pru@54438000 {
    					compatible = "ti,am4376-pru";
    					reg = <0x54438000 0x3000>,
    					      <0x54424000 0x400>,
    					      <0x54424400 0x100>;
    					reg-names = "iram", "control", "debug";
    					label = "pru1";
    					interrupt-parent = <&pruss1_intc>;
    					interrupts = <18>, <19>;
    					interrupt-names = "vring", "kick";
    					status = "disabled";
    				};
    
    				pruss1_mdio: mdio@54432400 {
    					compatible = "ti,davinci_mdio";
    					reg = <0x54432400 0x90>;
    					clocks = <&dpll_core_m4_ck>;
    					clock-names = "fck";
    					bus_freq = <1000000>;
    					#address-cells = <1>;
    					#size-cells = <0>;
    					status = "disabled";
    				};
    			};
    
    			pruss0: pruss@54440000 {
    				compatible = "ti,am4376-pruss";
    				reg = <0x54440000 0x1000>,
    				      <0x54442000 0x1000>,
    				      <0x54466000 0x2000>,
    				      <0x5446e000 0x31c>,
    				      <0x54472000 0x58>;
    				reg-names = "dram0", "dram1", "cfg",
    					    "iep", "mii_rt";
    				#address-cells = <1>;
    				#size-cells = <1>;
    				ranges;
    				status = "disabled";
    
    				pruss0_intc: intc@54460000 {
    					compatible = "ti,am4376-pruss-intc";
    					reg = <0x54460000 0x2000>;
    					reg-names = "intc";
    					interrupts =
    					    <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH
    					     GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
    					interrupt-names = "host2", "host3",
    							  "host4", "host5",
    							  "host6", "host8",
    							  "host9";
    					interrupt-controller;
    					#interrupt-cells = <1>;
    				};
    
    				pru0_0: pru@54474000 {
    					compatible = "ti,am4376-pru";
    					reg = <0x54474000 0x1000>,
    					      <0x54462000 0x400>,
    					      <0x54462400 0x100>;
    					reg-names = "iram", "control", "debug";
    					label = "pru0";
    					interrupt-parent = <&pruss0_intc>;
    					interrupts = <16>, <17>;
    					interrupt-names = "vring", "kick";
    					status = "disabled";
    				};
    
    				pru0_1: pru@54478000 {
    					compatible = "ti,am4376-pru";
    					reg = <0x54478000 0x1000>,
    					      <0x54464000 0x400>,
    					      <0x54464400 0x100>;
    					reg-names = "iram", "control", "debug";
    					label = "pru1";
    					interrupt-parent = <&pruss0_intc>;
    					interrupts = <18>, <19>;
    					interrupt-names = "vring", "kick";
    					status = "disabled";
    				};
    			};
    		};
    
    		mcasp0: mcasp@48038000 {
    			compatible = "ti,am33xx-mcasp-audio";
    			ti,hwmods = "mcasp0";
    			reg = <0x48038000 0x2000>,
    			      <0x46000000 0x400000>;
    			reg-names = "mpu", "dat";
    			interrupts = <80>, <81>;
    			interrupt-names = "tx", "rx";
    			status = "disabled";
    			dmas = <&edma 8 2>,
    			       <&edma 9 2>;
    			dma-names = "tx", "rx";
    		};
    
    		mcasp1: mcasp@4803C000 {
    			compatible = "ti,am33xx-mcasp-audio";
    			ti,hwmods = "mcasp1";
    			reg = <0x4803C000 0x2000>,
    			      <0x46400000 0x400000>;
    			reg-names = "mpu", "dat";
    			interrupts = <82>, <83>;
    			interrupt-names = "tx", "rx";
    			status = "disabled";
    			dmas = <&edma 10 2>,
    			       <&edma 11 2>;
    			dma-names = "tx", "rx";
    		};
    
    		elm: elm@48080000 {
    			compatible = "ti,am3352-elm";
    			reg = <0x48080000 0x2000>;
    			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "elm";
    			clocks = <&l4ls_gclk>;
    			clock-names = "fck";
    			status = "disabled";
    		};
    
    		gpmc: gpmc@50000000 {
    			compatible = "ti,am3352-gpmc";
    			ti,hwmods = "gpmc";
    			dmas = <&edma 52 0>;
    			dma-names = "rxtx";
    			clocks = <&l3s_gclk>;
    			clock-names = "fck";
    			reg = <0x50000000 0x2000>;
    			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
    			gpmc,num-cs = <7>;
    			gpmc,num-waitpins = <2>;
    			#address-cells = <2>;
    			#size-cells = <1>;
    			interrupt-controller;
    			#interrupt-cells = <2>;
    			gpio-controller;
    			#gpio-cells = <2>;
    			status = "disabled";
    		};
    
    		ocp2scp0: ocp2scp@483a8000 {
    			compatible = "ti,am437x-ocp2scp", "ti,omap-ocp2scp";
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    			ti,hwmods = "ocp2scp0";
    
    			usb2_phy1: phy@483a8000 {
    				compatible = "ti,am437x-usb2";
    				reg = <0x483a8000 0x8000>;
    				syscon-phy-power = <&scm_conf 0x620>;
    				clocks = <&usb_phy0_always_on_clk32k>,
    					 <&usb_otg_ss0_refclk960m>;
    				clock-names = "wkupclk", "refclk";
    				#phy-cells = <0>;
    				status = "disabled";
    			};
    		};
    
    		ocp2scp1: ocp2scp@483e8000 {
    			compatible = "ti,am437x-ocp2scp", "ti,omap-ocp2scp";
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    			ti,hwmods = "ocp2scp1";
    
    			usb2_phy2: phy@483e8000 {
    				compatible = "ti,am437x-usb2";
    				reg = <0x483e8000 0x8000>;
    				syscon-phy-power = <&scm_conf 0x628>;
    				clocks = <&usb_phy1_always_on_clk32k>,
    					 <&usb_otg_ss1_refclk960m>;
    				clock-names = "wkupclk", "refclk";
    				#phy-cells = <0>;
    				status = "disabled";
    			};
    		};
    
    		dwc3_1: omap_dwc3@48380000 {
    			compatible = "ti,am437x-dwc3";
    			ti,hwmods = "usb_otg_ss0";
    			reg = <0x48380000 0x10000>;
    			interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			utmi-mode = <1>;
    			ranges;
    
    			usb1: usb@48390000 {
    				compatible = "synopsys,dwc3";
    				reg = <0x48390000 0x10000>;
    				interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
    					     <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
    					     <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
    				interrupt-names = "peripheral",
    						  "host",
    						  "otg";
    				phys = <&usb2_phy1>;
    				phy-names = "usb2-phy";
    				maximum-speed = "high-speed";
    				dr_mode = "otg";
    				status = "disabled";
    				snps,dis_u3_susphy_quirk;
    				snps,dis_u2_susphy_quirk;
    				snps,devctrl_halt_quirk;
    			};
    		};
    
    		dwc3_2: omap_dwc3@483c0000 {
    			compatible = "ti,am437x-dwc3";
    			ti,hwmods = "usb_otg_ss1";
    			reg = <0x483c0000 0x10000>;
    			interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    			utmi-mode = <1>;
    			ranges;
    
    			usb2: usb@483d0000 {
    				compatible = "synopsys,dwc3";
    				reg = <0x483d0000 0x10000>;
    				interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
    					     <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
    					     <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
    				interrupt-names = "peripheral",
    						  "host",
    						  "otg";
    				phys = <&usb2_phy2>;
    				phy-names = "usb2-phy";
    				maximum-speed = "high-speed";
    				dr_mode = "otg";
    				status = "disabled";
    				snps,dis_u3_susphy_quirk;
    				snps,dis_u2_susphy_quirk;
    				snps,devctrl_halt_quirk;
    			};
    		};
    
    		qspi: qspi@47900000 {
    			compatible = "ti,am4372-qspi";
    			reg = <0x47900000 0x100>,
    			      <0x30000000 0x4000000>;
    			reg-names = "qspi_base", "qspi_mmap";
    			#address-cells = <1>;
    			#size-cells = <0>;
    			ti,hwmods = "qspi";
    			interrupts = <0 138 0x4>;
    			num-cs = <4>;
    			status = "disabled";
    		};
    
    		hdq: hdq@48347000 {
    			compatible = "ti,am4372-hdq";
    			reg = <0x48347000 0x1000>;
    			interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&func_12m_clk>;
    			clock-names = "fck";
    			ti,hwmods = "hdq1w";
    			status = "disabled";
    		};
    
    		dss: dss@4832a000 {
    			compatible = "ti,omap3-dss";
    			reg = <0x4832a000 0x200>;
    			status = "disabled";
    			ti,hwmods = "dss_core";
    			clocks = <&disp_clk>;
    			clock-names = "fck";
    			#address-cells = <1>;
    			#size-cells = <1>;
    			ranges;
    
    			dispc: dispc@4832a400 {
    				compatible = "ti,omap3-dispc";
    				reg = <0x4832a400 0x400>;
    				interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
    				ti,hwmods = "dss_dispc";
    				clocks = <&disp_clk>;
    				clock-names = "fck";
    			};
    
    			rfbi: rfbi@4832a800 {
    				compatible = "ti,omap3-rfbi";
    				reg = <0x4832a800 0x100>;
    				ti,hwmods = "dss_rfbi";
    				clocks = <&disp_clk>;
    				clock-names = "fck";
    				status = "disabled";
    			};
    		};
    
    		ocmcram: ocmcram@40300000 {
    			compatible = "mmio-sram";
    			reg = <0x40300000 0x40000>; /* 256k */
    			ranges = <0x0 0x40300000 0x40000>;
    			#address-cells = <1>;
    			#size-cells = <1>;
    
    			pm_sram_code: pm-sram-code@0 {
    				compatible = "ti,sram";
    				reg = <0x0 0x1000>;
    				protect-exec;
    			};
    
    			pm_sram_data: pm-sram-data@1000 {
    				compatible = "ti,sram";
    				reg = <0x1000 0x1000>;
    				pool;
    			};
    		};
    
    		dcan0: can@481cc000 {
    			compatible = "ti,am4372-d_can", "ti,am3352-d_can";
    			ti,hwmods = "d_can0";
    			clocks = <&dcan0_fck>;
    			clock-names = "fck";
    			reg = <0x481cc000 0x2000>;
    			syscon-raminit = <&scm_conf 0x644 0>;
    			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
    			status = "disabled";
    		};
    
    		dcan1: can@481d0000 {
    			compatible = "ti,am4372-d_can", "ti,am3352-d_can";
    			ti,hwmods = "d_can1";
    			clocks = <&dcan1_fck>;
    			clock-names = "fck";
    			reg = <0x481d0000 0x2000>;
    			syscon-raminit = <&scm_conf 0x644 1>;
    			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
    			status = "disabled";
    		};
    
    		vpfe0: vpfe@48326000 {
    			compatible = "ti,am437x-vpfe";
    			reg = <0x48326000 0x2000>;
    			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "vpfe0";
    			status = "disabled";
    		};
    
    		vpfe1: vpfe@48328000 {
    			compatible = "ti,am437x-vpfe";
    			reg = <0x48328000 0x2000>;
    			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
    			ti,hwmods = "vpfe1";
    			status = "disabled";
    		};
    
    		/*
    		 * The SGX is disabled by default because it is an optional
    		 * module and only some AM437x variants contain this module,
    		 * such as AM4378 and AM4379. The status should be overwritten
    		 * as "OK" at the corresponding board.dts.
    		 */
    		sgx: sgx@56000000 {
    			compatible = "ti,am4376-sgx530", "img,sgx530";
    			ti,hwmods = "gfx";
    			reg = <0x56000000 0x10000>;
    			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
    			clocks = <&gfx_fck_div_ck>;
    			clock-names = "fclk";
    			status = "disabled";
    		};
    	};
    };
    
    /include/ "am43xx-clocks.dtsi"
    
    /*
     * Copyright (C) 2014 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.
     */
    
    /* AM437x SK EVM */
    
    /dts-v1/;
    
    #include "am4372.dtsi"
    #include <dt-bindings/pinctrl/am43xx.h>
    #include <dt-bindings/pwm/pwm.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/input/input.h>
    
    / {
    	model = "TI AM437x SK EVM";
    	compatible = "ti,am437x-sk-evm","ti,am4372","ti,am43";
    
    	chosen {
    		stdout-path = &uart0;
    	};
    
    	/* fixed 32k external oscillator clock */
    	clk_32k_rtc: clk_32k_rtc {
    		#clock-cells = <0>;
    		compatible = "fixed-clock";
    		clock-frequency = <32768>;
    	};
    };
    
    &am43xx_pinmux {
    
    	cpsw_default: cpsw_default {
    		pinctrl-single,pins = <
    			/* Slave 1 */
    			AM4372_IOPAD(0x92c, PIN_OUTPUT | MUX_MODE2)	/* mii1_txclk.rmii1_tclk */
    			AM4372_IOPAD(0x914, PIN_OUTPUT | MUX_MODE2)	/* mii1_txen.rgmii1_tctl */
    			AM4372_IOPAD(0x928, PIN_OUTPUT | MUX_MODE2)	/* mii1_txd0.rgmii1_td0 */
    			AM4372_IOPAD(0x924, PIN_OUTPUT | MUX_MODE2)	/* mii1_txd1.rgmii1_td1 */
    			AM4372_IOPAD(0x920, PIN_OUTPUT | MUX_MODE2)	/* mii1_txd0.rgmii1_td2 */
    			AM4372_IOPAD(0x91c, PIN_OUTPUT | MUX_MODE2)	/* mii1_txd1.rgmii1_td3 */
    			AM4372_IOPAD(0x930, PIN_INPUT | MUX_MODE2)	/* mii1_rxclk.rmii1_rclk */
    			AM4372_IOPAD(0x918, PIN_INPUT | MUX_MODE2)	/* mii1_rxdv.rgmii1_rctl */
    			AM4372_IOPAD(0x940, PIN_INPUT | MUX_MODE2)	/* mii1_rxd0.rgmii1_rd0 */
    			AM4372_IOPAD(0x93c, PIN_INPUT | MUX_MODE2)	/* mii1_rxd1.rgmii1_rd1 */
    			AM4372_IOPAD(0x938, PIN_INPUT | MUX_MODE2)	/* mii1_rxd0.rgmii1_rd2 */
    			AM4372_IOPAD(0x934, PIN_INPUT | MUX_MODE2)	/* mii1_rxd1.rgmii1_rd3 */
    			/* Slave 2 Setting these gpios explicitly else getting configured as RGMII2(eth) */
    			AM4372_IOPAD(0x858, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x840, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x850, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x84c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x848, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE7)
    
    
    		>;
    	};
    
    	cpsw_sleep: cpsw_sleep {
    		pinctrl-single,pins = <
    			/* Slave 1 reset value */
    			AM4372_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
    
    			/* Slave 2 reset value */
    			AM4372_IOPAD(0x858, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x840, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x850, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x84c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x848, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x85c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x860, PIN_INPUT_PULLDOWN | MUX_MODE7)
    		>;
    	};
    
    	davinci_mdio_default: davinci_mdio_default {
    		pinctrl-single,pins = <
    			/* MDIO */
    			AM4372_IOPAD(0x948, PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0)	/* mdio_data.mdio_data */
    			AM4372_IOPAD(0x94c, PIN_OUTPUT | MUX_MODE0)			/* mdio_clk.mdio_clk */
    		>;
    	};
    
    	davinci_mdio_sleep: davinci_mdio_sleep {
    		pinctrl-single,pins = <
    			/* MDIO reset value */
    			AM4372_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    		>;
    	};
    
    	clkout1_pin: pinmux_clkout1_pin {
    		pinctrl-single,pins = <
    			0x270 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* XDMA_EVENT_INTR0/CLKOUT1 */
    		>;
    	};
    
    	// Above pins required for ethernet to work
    
    	i2c0_pins: i2c0_pins {
    		pinctrl-single,pins = <
    			0x18c ( PIN_INPUT | MUX_MODE0 ) /* (Y22) I2C0_SCL.I2C0_SCL */
    			0x188 ( PIN_INPUT | MUX_MODE0 ) /* (AB24) I2C0_SDA.I2C0_SDA */
    		>;
    	};
    
    	i2c1_pins: i2c1_pins {
    		pinctrl-single,pins = <
    			0x240 ( PIN_INPUT | MUX_MODE1 ) /* (G20) gpio5_10.I2C1_SCL */
    			0x248 ( PIN_INPUT | MUX_MODE1 ) /* (E25) gpio5_12.I2C1_SDA */
    		>;
    	};
    
    	i2c2_pins: i2c2_pins {
    		pinctrl-single,pins = <
    			0x17c ( PIN_INPUT | MUX_MODE3 ) /* (L22) uart1_rtsn.I2C2_SCL */
    			0x178 ( PIN_INPUT | MUX_MODE3 ) /* (K22) uart1_ctsn.I2C2_SDA */
    		>;
    	};
    
    	mmc1_pins: mmc1_pins {
    		pinctrl-single,pins = <
    			0x100 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (D1) mmc0_clk.mmc0_clk */
    			0x104 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (D2) mmc0_cmd.mmc0_cmd */
    			0xfc ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (C1) mmc0_dat0.mmc0_dat0 */
    			0xf8 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (C2) mmc0_dat1.mmc0_dat1 */
    			0xf4 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (B2) mmc0_dat2.mmc0_dat2 */
    			0xf0 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (B1) mmc0_dat3.mmc0_dat3 */
    			0x160 ( PIN_INPUT_PULLUP | MUX_MODE7 ) /* (R25) spi0_cs1.gpio0_6 */
    		>;
    	};
    
    	mmc3_pins: mmc3_pins_default {
    		pinctrl-single,pins = <
    			0x1f0 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AD21) cam1_data2.mmc2_clk */
    			0x1f4 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AE22) cam1_data3.mmc2_cmd */
    			0x1f8 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AD22) cam1_data4.mmc2_dat0 */
    			0x1fc ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AE23) cam1_data5.mmc2_dat1 */
    			0x200 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AD23) cam1_data6.mmc2_dat2 */
    			0x204 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (AE24) cam1_data7.mmc2_dat3 */
    		>;
    	};
    
    	qspi_pins: qspi_pins {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE3)	/* gpmc_csn0.qspi_csn */
    			AM4372_IOPAD(0x888, PIN_OUTPUT | MUX_MODE2)	/* gpmc_csn3.qspi_clk */
    			AM4372_IOPAD(0x890, PIN_INPUT | MUX_MODE3)	/* gpmc_advn_ale.qspi_d0 */
    			AM4372_IOPAD(0x894, PIN_INPUT | MUX_MODE3)	/* gpmc_oen_ren.qspi_d1 */
    			AM4372_IOPAD(0x898, PIN_INPUT | MUX_MODE3)	/* gpmc_wen.qspi_d2 */
    			AM4372_IOPAD(0x89c, PIN_INPUT | MUX_MODE3)	/* gpmc_be0n_cle.qspi_d3 */
    		>;
    	};
    
    	mcasp1_pins: mcasp1_pins {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* mii1_crs.mcasp1_aclkx */
    			AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* mii1_rxerr.mcasp1_fsx */
    			AM4372_IOPAD(0x908, PIN_OUTPUT_PULLDOWN | MUX_MODE4)	/* mii1_col.mcasp1_axr2 */
    			AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE4)	/* rmii1_ref_clk.mcasp1_axr3 */
    		>;
    	};
    
    	mcasp1_pins_sleep: mcasp1_pins_sleep {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM4372_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
    		>;
    	};
    
    	usb1_pins: usb1_pins {
    		pinctrl-single,pins = <
    			0x2c0 ( PIN_OUTPUT | MUX_MODE0 ) /* (G21) USB0_DRVVBUS.USB0_DRVVBUS */
    		>;
    	};
    
    	usb2_pins: usb2_pins {
    		pinctrl-single,pins = <
    			0x2c4 ( PIN_OUTPUT | MUX_MODE0 ) /* (F25) USB1_DRVVBUS.USB1_DRVVBUS */
    		>;
    	};
    
    	pruss0_pru1_output_pins: pruss0_pru1_pins {
    		pinctrl-single,pins = <
    			0x1d0 ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (AD24) cam1_data8.pr0_pru1_gpo[0] */
    			0x1d4 ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (AD25) cam1_hd.pr0_pru1_gpo[1] */
    			0x1d8 ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (AC23) cam1_vd.pr0_pru1_gpo[2] */
    			0xe0  ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (B23) dss_vsync.pr0_pru1_gpo[6] */
    			0xe4  ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (A23) dss_hsync.pr0_pru1_gpo[7] */
    			0xe8  ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (A22) dss_pclk.pr0_pru1_gpo[8] */
    			0xec  ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (A24) dss_ac_bias_en.gpio2[25] */
    			0x208 ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (AE18) cam0_data0.pr0_pru1_gpo[16] */
    			0x20c ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (AB18) cam0_data1.pr0_pru1_gpo[17] */
    			0x230 ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (H22) uart3_ctsn.pr0_pru1_gpo[18] */
    			0x234 ( PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (K24) uart3_rtsn.pr0_pru1_gpo[19] */
    		>;
    	};
    
    	pruss0_pru0_input_pins: pruss0_pru0_pins {
    		pinctrl-single,pins = <
    			0x190 ( PIN_INPUT | MUX_MODE6 ) /* (N24) mcasp0_aclkx.pr0_pru0_gpi[0] */
    			0x194 ( PIN_INPUT | MUX_MODE6 ) /* (N22) mcasp0_fsx.pr0_pru0_gpi[1] */
    			0x198 ( PIN_INPUT | MUX_MODE6 ) /* (H23) mcasp0_axr0.pr0_pru0_gpi[2] */
    			0x19c ( PIN_INPUT | MUX_MODE6 ) /* (M24) mcasp0_ahclkr.pr0_pru0_gpi[3] */
    			0x1a0 ( PIN_INPUT | MUX_MODE6 ) /* (L23) mcasp0_aclkr.pr0_pru0_gpi[4] */
    			0x1a4 ( PIN_INPUT | MUX_MODE6 ) /* (K23) mcasp0_fsr.pr0_pru0_gpi[5] */
    			0x1a8 ( PIN_INPUT | MUX_MODE6 ) /* (M25) mcasp0_axr1.pr0_pru0_gpi[6] */
    			0x1ac ( PIN_INPUT | MUX_MODE6 ) /* (L24) mcasp0_ahclkx.pr0_pru0_gpi[7] */
    			0x1c0 ( PIN_INPUT | MUX_MODE5 ) /* (AC20) cam0_pclk.pr0_pru0_gpi[14] */
    			0x1c4 ( PIN_INPUT | MUX_MODE5 ) /* (AB19) cam0_data8.pr0_pru0_gpi[15] */
    			0x1c8 ( PIN_INPUT | MUX_MODE5 ) /* (AA19) cam0_data9.pr0_pru0_gpi[16] */
    			0x1cc ( PIN_INPUT | MUX_MODE5 ) /* (AC24) cam1_data9.pr0_pru0_gpi[17] */
    		>;
    	};
    
    	spi0_pins: spi0_pins {
    		pinctrl-single,pins = <
    			0x150 ( PIN_OUTPUT | MUX_MODE0 ) /* (P23) spi0_sclk.spi0_sclk */
    			0x154 ( PIN_OUTPUT | MUX_MODE0 ) /* (T22) spi0_d0.spi0_d0 */
    			0x158 ( PIN_OUTPUT | MUX_MODE0 ) /* (T21) spi0_d1.spi0_d1 */
    			0x15c ( PIN_OUTPUT | MUX_MODE0 ) /* (T20) spi0_cs0.spi0_cs0 */
    		>;
    	};
    
    	spi4_pins: spi4_pins {
    		pinctrl-single,pins = <
    			0x250 ( PIN_INPUT | MUX_MODE0 ) /* (P25) spi4_sclk.spi4_sclk */
    			0x254 ( PIN_OUTPUT | MUX_MODE0 ) /* (R24) spi4_d0.spi4_d0 */
    			0x258 ( PIN_INPUT | MUX_MODE0 ) /* (P24) spi4_d1.spi4_d1 */
    			0x25c ( PIN_OUTPUT | MUX_MODE0 ) /* (N25) spi4_cs0.spi4_cs0 */
    		>;
       	};
    
    	dcan1_pins: dcan0_pins {
    		pinctrl-single,pins = <
    			0x16c ( PIN_INPUT | MUX_MODE2 ) /* (J25) uart0_rtsn.dcan1_rx */
    			0x168 ( PIN_OUTPUT | MUX_MODE2 ) /* (L25) uart0_ctsn.dcan1_tx */
    		>;
    	};
    
    	ehrpwm1_pins: ehrpwm1_pins {
    		pinctrl-single,pins = <
    			0x1dc ( PIN_OUTPUT | MUX_MODE6 ) /* (AE21) cam1_pclk.ehrpwm1A */
    			0x1e0 ( PIN_OUTPUT | MUX_MODE6 ) /* (AC25) cam1_field.ehrpwm1B */
    		>;
    	};
    
    	ehrpwm3_pins: ehrpwm3_pins {
    		pinctrl-single,pins = <
    			0x218 ( PIN_OUTPUT | MUX_MODE6 ) /* (AE19) cam0_data4.ehrpwm3A */
    			0x21c ( PIN_OUTPUT | MUX_MODE6 ) /* (AD19) cam0_data5.ehrpwm3B */
    		>;
    	};
    
    	uart0_pins: uart0_pins {
    		pinctrl-single,pins = <
    			0x170 ( PIN_INPUT | MUX_MODE0 ) /* (K25) uart0_rxd.uart0_rxd */
    			0x174 ( PIN_OUTPUT | MUX_MODE0 ) /* (J24) uart0_txd.uart0_txd */
    		>;
    	};
    
    	uart1_pins: uart1_pins {
    		pinctrl-single,pins = <
    			0x1e8 ( PIN_INPUT | MUX_MODE1 ) /* (AB20) cam1_data0.uart1_rxd */
    			0x1ec ( PIN_OUTPUT | MUX_MODE1 ) /* (AC21) cam1_data1.uart1_txd */
    		>;
    	};
    
    	uart3_pins: uart3_pins {
    		pinctrl-single,pins = <
    			0x228 ( PIN_INPUT | MUX_MODE0 ) /* (H25) uart3_rxd.uart3_rxd */
    			0x22c ( PIN_OUTPUT | MUX_MODE0 ) /* (H24) uart3_txd.uart3_txd */
    		>;
    	};
    
    	uart4_pins: uart4_pins {
    		pinctrl-single,pins = <
    			0x70 ( PIN_INPUT | MUX_MODE6 ) /* (A2) gpmc_wait0.uart4_rxd */
    			0x74 ( PIN_OUTPUT | MUX_MODE6 ) /* (B3) gpmc_wpn.uart4_txd */
    		>;
    	};
    
    	uart5_pins: uart5_pins {
    		pinctrl-single,pins = <
    			0x108 ( PIN_INPUT | MUX_MODE3 ) /* (D16) mii1_col.uart5_rxd */
    			0x144 ( PIN_OUTPUT | MUX_MODE3 ) /* (A16) rmii1_ref_clk.uart5_txd */
    		>;
    	};
    
    
    };
    
    &dcan1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&dcan1_pins>;
    };
    
    &uart0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart0_pins>;
    };
    
    &uart1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart1_pins>;
    };
    
    &uart3 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart3_pins>;
    };
    
    &uart4 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart4_pins>;
    };
    
    &uart5 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart5_pins>;
    };
    
    &i2c0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c0_pins>;
    	clock-frequency = <100000>;
    
    	tps@24 {
    		compatible = "ti,tps65218";
    		reg = <0x24>;
    		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
    		interrupt-controller;
    		#interrupt-cells = <2>;
    
    		dcdc1: regulator-dcdc1 {
    			/* VDD_CORE limits min of OPP50 and max of OPP100 */
    			regulator-name = "vdd_core";
    			regulator-min-microvolt = <912000>;
    			regulator-max-microvolt = <1144000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		dcdc2: regulator-dcdc2 {
    			/* VDD_MPU limits min of OPP50 and max of OPP_NITRO */
    			regulator-name = "vdd_mpu";
    			regulator-min-microvolt = <912000>;
    			regulator-max-microvolt = <1378000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		dcdc3: regulator-dcdc3 {
    			regulator-name = "vdds_ddr";
    			regulator-min-microvolt = <1500000>;
    			regulator-max-microvolt = <1500000>;
    			regulator-boot-on;
    			regulator-always-on;
    			regulator-state-mem {
    				regulator-on-in-suspend;
    			};
    			regulator-state-disk {
    				regulator-off-in-suspend;
    			};
    		};
    
    		dcdc4: regulator-dcdc4 {
    			regulator-name = "v3_3d";
    			regulator-min-microvolt = <3300000>;
    			regulator-max-microvolt = <3300000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		dcdc5: regulator-dcdc5 {
    			compatible = "ti,tps65218-dcdc5";
    			regulator-name = "v1_0bat";
    			regulator-min-microvolt = <1000000>;
    			regulator-max-microvolt = <1000000>;
    			regulator-boot-on;
    			regulator-always-on;
    			regulator-state-mem {
    				regulator-on-in-suspend;
    			};
    		};
    
    		dcdc6: regulator-dcdc6 {
    			compatible = "ti,tps65218-dcdc6";
    			regulator-name = "v1_8bat";
    			regulator-min-microvolt = <1800000>;
    			regulator-max-microvolt = <1800000>;
    			regulator-boot-on;
    			regulator-always-on;
    			regulator-state-mem {
    				regulator-on-in-suspend;
    			};
    		};
    
    		ldo1: regulator-ldo1 {
    			regulator-name = "v1_8d";
    			regulator-min-microvolt = <1800000>;
    			regulator-max-microvolt = <1800000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		power-button {
    			compatible = "ti,tps65218-pwrbutton";
    			status = "okay";
    			interrupts = <3 IRQ_TYPE_EDGE_BOTH>;
    		};
    	};
    
    	at24@50 {
    		compatible = "at24,24c256";
    		pagesize = <64>;
    		reg = <0x50>;
    	};
    };
    
    &i2c1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c1_pins>;
    	clock-frequency = <400000>;
    
    	ov2659@30 {
    		compatible = "ovti,ov2659";
    		reg = <0x30>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&clkout1_pin>;
    
    		clocks = <&clkout1_mux_ck>;
    		clock-names = "xvclk";
    		assigned-clocks = <&clkout1_mux_ck>;
    		assigned-clock-parents = <&clkout1_osc_div_ck>;
    	};
    
    	tlv320aic3106: tlv320aic3106@1b {
    		#sound-dai-cells = <0>;
    		compatible = "ti,tlv320aic3106";
    		reg = <0x1b>;
    		status = "okay";
    
    		/* Regulators */
    		AVDD-supply = <&dcdc4>;
    		IOVDD-supply = <&dcdc4>;
    		DRVDD-supply = <&dcdc4>;
    		DVDD-supply = <&ldo1>;
    	};
    
    };
    
    &gpio0 {
    	status = "okay";
    };
    
    &gpio1 {
    	status = "okay";
    };
    
    &gpio2 {
    	status = "okay";
    };
    
    &gpio3 {
    	status = "okay";
    };
    
    &gpio4 {
    	status = "okay";
    };
    
    &gpio5 {
    	status = "okay";
    };
    
    &mmc1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&mmc1_pins>;
    
    	vmmc-supply = <&dcdc4>;
    	bus-width = <4>;
    	cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
    };
    
    &mmc3 {
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	vmmc-supply = <&dcdc4>;
    	status = "okay";
    	ti,non-removable;
    
    	bus-width = <4>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&mmc3_pins>;
    
    	unifi_sdio: unifi_sdio@1 {
    		reg = <1>;
    		compatible = "unifi_sdio";
    	};
    };
    
    &usb2_phy1 {
    	status = "okay";
    };
    
    &usb1 {
    	dr_mode = "host";
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&usb1_pins>;
    };
    
    &usb2_phy2 {
    	status = "okay";
    };
    
    &usb2 {
    	dr_mode = "host";
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&usb2_pins>;
    };
    
    &qspi {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&qspi_pins>;
    
    	spi-max-frequency = <48000000>;
    	m25p80@0 {
    		compatible = "mx66l51235l";
    		spi-max-frequency = <48000000>;
    		reg = <0>;
    		spi-cpol;
    		spi-cpha;
    		spi-tx-bus-width = <1>;
    		spi-rx-bus-width = <4>;
    		#address-cells = <1>;
    		#size-cells = <1>;
    
    		/* MTD partition table.
    		 * The ROM checks the first 512KiB
    		 * for a valid file to boot(XIP).
    		 */
    		partition@0 {
    			label = "QSPI.U_BOOT";
    			reg = <0x00000000 0x000080000>;
    		};
    		partition@1 {
    			label = "QSPI.U_BOOT.backup";
    			reg = <0x00080000 0x00080000>;
    		};
    		partition@2 {
    			label = "QSPI.U-BOOT-SPL_OS";
    			reg = <0x00100000 0x00010000>;
    		};
    		partition@3 {
    			label = "QSPI.U_BOOT_ENV";
    			reg = <0x00110000 0x00010000>;
    		};
    		partition@4 {
    			label = "QSPI.U-BOOT-ENV.backup";
    			reg = <0x00120000 0x00010000>;
    		};
    		partition@5 {
    			label = "QSPI.KERNEL";
    			reg = <0x00130000 0x0800000>;
    		};
    		partition@6 {
    			label = "QSPI.FILESYSTEM";
    			reg = <0x00930000 0x36D0000>;
    		};
    	};
    };
    
    &mac {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&cpsw_default>;
    	pinctrl-1 = <&cpsw_sleep>;
    	dual_emac = <1>;
    	status = "okay";
    };
    
    &davinci_mdio {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&davinci_mdio_default>;
    	pinctrl-1 = <&davinci_mdio_sleep>;
    	status = "okay";
    };
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <4>;
    	phy-mode = "rgmii";
    	dual_emac_res_vlan = <1>;
    };
    
    &cpsw_emac1 {
    	phy_id = <&davinci_mdio>, <5>;
    	phy-mode = "rgmii";
    	dual_emac_res_vlan = <2>;
    };
    
    &elm {
    	status = "okay";
    };
    
    &mcasp1 {
    	#sound-dai-cells = <0>;
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&mcasp1_pins>;
    	pinctrl-1 = <&mcasp1_pins_sleep>;
    
    	status = "disable";
    
    	op-mode = <0>;
    	tdm-slots = <2>;
    	serial-dir = <
    		0 0 1 2
    	>;
    
    	tx-num-evt = <1>;
    	rx-num-evt = <1>;
    };
    
    &rtc {
    	clocks = <&clk_32k_rtc>, <&clk_32768_ck>;
    	clock-names = "ext-clk", "int-clk";
    	status = "okay";
    };
    
    &wdt {
    	status = "okay";
    };
    
    &cpu {
    	cpu0-supply = <&dcdc2>;
    };
    
    &wkup_m3_ipc {
    	ti,scale-data-fw = "am43x-evm-scale-data.bin";
    };
    
    
    &pruss_soc_bus {
    	status = "okay";
    
    	pruss1: pruss@54400000 {
    		status = "okay";
    
    		pru1_0: pru@54434000 {
    			status = "okay";
    			pinctrl-names = "default";
    		};
    
    		pru1_1: pru@54438000 {
    			status = "okay";
    		};
    	};
    
    	pruss0: pruss@54440000 {
    		status = "okay";
    
    		pru0_0: pru@54474000 {
    			status = "okay";
    			pinctrl-names = "default";
    			pinctrl-0 = <&pruss0_pru0_input_pins>;
    		};
    
    		pru0_1: pru@54478000 {
    			status = "okay";
    			pinctrl-names = "default";
    			pinctrl-0 = <&pruss0_pru1_output_pins>;
    		};
    	};
    
    };
    
    &spi0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&spi0_pins>;
    	/*ti,pindir-d0-out-d1-in = <1>;*/
    
    	spidev@0 {
    		spi-max-frequency = <24000000>;
    		reg = <0>;
    		compatible = "rohm,dh2228fv";
    		status = "okay";
    	};
    };
    
    &spi4 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&spi4_pins>;
    	/*ti,pindir-d0-out-d1-in = <1>;*/
    
    	spidev@4 {
    		spi-max-frequency = <24000000>;
    		reg = <0>;
    		compatible = "rohm,dh2228fv";
    		status = "okay";
    	};
    };
    
    &epwmss1 {
    	status = "okay";
    
    	ehrpwm1: pwm@48302200 {
    			status = "okay";
    			pinctrl-names = "default";
    			pinctrl-0 = <&ehrpwm1_pins>;
    	};
    };
    
    &epwmss3 {
    	status = "okay";
    
    	ehrpwm3: pwm@48306200 {
    			status = "okay";
    			pinctrl-names = "default";
    			pinctrl-0 = <&ehrpwm3_pins>;
    	};
    };
    
    &sgx {
    	status = "okay";
    };
    
    config.log