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/AM3354: RMII issue

Part Number: AM3354


Tool/software: Linux

Hi,

I have interfaced micrel ksz8081 with am335x in RMII mode with externel 50MHZ clock. Able to bring up the link but communication is failing, DHCP fails in booting. If I set static IP and ping, I can observe ARP messages on Wireshark, Probed Rx lines on oscilloscope, able to see communication on RXD0 & RXD1, MAC is failing to process the  RX messages to the upper layer. Please guide me how to fix this issue.

Thanks & Regards,

Dileep

  • The Ethernet experts have been notified. They will respond here.
  • Please post the contents of CPSTATS.

    This can be accomplished in Linux with 'ethtool -S eth(n)'
  • ethtool -S eth0
    NIC statistics:
    Good Rx Frames: 0
    Broadcast Rx Frames: 0
    Multicast Rx Frames: 0
    Pause Rx Frames: 0
    Rx CRC Errors: 0
    Rx Align/Code Errors: 0
    Oversize Rx Frames: 0
    Rx Jabbers: 0
    Undersize (Short) Rx Frames: 0
    Rx Fragments: 0
    Rx Octets: 0
    Good Tx Frames: 12
    Broadcast Tx Frames: 4
    Multicast Tx Frames: 8
    Pause Tx Frames: 0
    Deferred Tx Frames: 0
    Collisions: 0
    Single Collision Tx Frames: 0
    Multiple Collision Tx Frames: 0
    Excessive Collisions: 0
    Late Collisions: 0
    Tx Underrun: 0
    Carrier Sense Errors: 0
    Tx Octets: 2064
    Rx + Tx 64 Octet Frames: 0
    Rx + Tx 65-127 Octet Frames: 8
    Rx + Tx 128-255 Octet Frames: 0
    Rx + Tx 256-511 Octet Frames: 4
    Rx + Tx 512-1023 Octet Frames: 0
    Rx + Tx 1024-Up Octet Frames: 0
    Net Octets: 2064
    Rx Start of Frame Overruns: 0
    Rx Middle of Frame Overruns: 0
    Rx DMA Overruns: 0
    Rx DMA chan: head_enqueue: 1
    Rx DMA chan: tail_enqueue: 127
    Rx DMA chan: pad_enqueue: 0
    Rx DMA chan: misqueued: 0
    Rx DMA chan: desc_alloc_fail: 0
    Rx DMA chan: pad_alloc_fail: 0
    Rx DMA chan: runt_receive_buf: 0
    Rx DMA chan: runt_transmit_buf: 0
    Rx DMA chan: empty_dequeue: 0
    Rx DMA chan: busy_dequeue: 0
    Rx DMA chan: good_dequeue: 0
    Rx DMA chan: requeue: 0
    Rx DMA chan: teardown_dequeue: 0
    Tx DMA chan: head_enqueue: 12
    Tx DMA chan: tail_enqueue: 0
    Tx DMA chan: pad_enqueue: 0
    Tx DMA chan: misqueued: 0
    Tx DMA chan: desc_alloc_fail: 0
    Tx DMA chan: pad_alloc_fail: 0
    Tx DMA chan: runt_receive_buf: 0
    Tx DMA chan: runt_transmit_buf: 0
    Tx DMA chan: empty_dequeue: 12
    Tx DMA chan: busy_dequeue: 0
    Tx DMA chan: good_dequeue: 12
    Tx DMA chan: requeue: 0
    Tx DMA chan: teardown_dequeue: 0
  • Thanks.

    Which OS version are you using?
  • OS version: linux-4.9.41 available in ti-sdk

    Attached log & device tree file.

    Kernel image @ 0x82000000 [ 0x000000 - 0x369918 ]
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8fff4000, end 8ffffed1 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.9.41-ge3a80a1c5c (dileep@dileep-linux) (gcc version 4.9.3 20150413 (prerelease) (Linaro GCC 4.9-2015.05) ) #15 PREEMPT Fri Dec 22 12:42:48 UTC 2017
    [    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt:Machine model: TI AM335x EVM
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] cma: Reserved 48 MiB at 0x9d000000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM335X ES2.1 (sgx neon)
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
    [    0.000000] Kernel command line: console=tty0 console=ttyO0,115200n8 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: 457980K/524288K available (7168K kernel code, 281K rwdata, 2356K rodata, 1024K init, 280K bss, 17156K reserved, 49152K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc0800000   (8160 kB)
    [    0.000000]       .init : 0xc0b00000 - 0xc0c00000   (1024 kB)
    [    0.000000]       .data : 0xc0c00000 - 0xc0c464d8   ( 282 kB)
    [    0.000000]        .bss : 0xc0c464d8 - 0xc0c8c81c   ( 281 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] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [    0.000000] OMAP clockevent source: timer2 at 25000000 Hz
    [    0.000013] sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 85899345900ns
    [    0.000030] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 76450417870 ns
    [    0.000038] OMAP clocksource: timer1 at 25000000 Hz
    [    0.000177] clocksource_probe: no matching clocksources found
    [    0.000336] Console: colour dummy device 80x30
    [    0.000995] console [tty0] enabled
    [    0.001029] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [    0.001053] This ensures that you still see kernel messages. Please
    [    0.001077] update your kernel commandline.
    [    0.001113] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
    [    0.089220] pid_max: default: 32768 minimum: 301
    [    0.089355] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.089385] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.090122] CPU: Testing write buffer coherency: ok
    [    0.090495] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.091253] EFI services will not be available.
    [    0.092435] devtmpfs: initialized
    [    0.102370] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [    0.102762] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.102824] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    0.106125] pinctrl core: initialized pinctrl subsystem
    [    0.107322] NET: Registered protocol family 16
    [    0.109018] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.121360] omap_hwmod: debugss: _wait_target_disable failed
    [    0.199195] cpuidle: using governor ladder
    [    0.229185] cpuidle: using governor menu
    [    0.234488] OMAP GPIO hardware version 0.1
    [    0.247522] No ATAGs?
    [    0.247559] hw-breakpoint: debug architecture 0x4 unsupported.
    [    0.286442] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.290341] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
    [    0.290454] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c1_pins, deferring probe
    [    0.290598] media: Linux media interface: v0.10
    [    0.290665] Linux video capture interface: v2.00
    [    0.290725] pps_core: LinuxPPS API ver. 1 registered
    [    0.290749] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.290804] PTP clock support registered
    [    0.290854] EDAC MC: Ver: 3.0.0
    [    0.291855] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.292190] Advanced Linux Sound Architecture Driver Initialized.
    [    0.293353] clocksource: Switched to clocksource timer1
    [    0.302421] NET: Registered protocol family 2
    [    0.303167] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.303246] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.303304] TCP: Hash tables configured (established 4096 bind 4096)
    [    0.303451] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.303487] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.303635] NET: Registered protocol family 1
    [    0.304047] RPC: Registered named UNIX socket transport module.
    [    0.304082] RPC: Registered udp transport module.
    [    0.304105] RPC: Registered tcp transport module.
    [    0.304127] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.304997] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
    [    0.307196] workingset: timestamp_bits=14 max_order=17 bucket_order=3
    [    0.314194] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.315088] NFS: Registering the id_resolver key type
    [    0.315153] Key type id_resolver registered
    [    0.315177] Key type id_legacy registered
    [    0.315235] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.316957] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
    [    0.317020] io scheduler noop registered
    [    0.317042] io scheduler deadline registered
    [    0.317200] io scheduler cfq registered (default)
    [    0.318407] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [    0.372558] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    0.376033] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a 8250
    [    0.975066] console [ttyS0] enabled
    [    0.979604] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 159, base_baud = 3000000) is a 8250
    [    0.990101] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    0.996996] [drm] Initialized
    [    1.012002] brd: module loaded
    [    1.020886] loop: module loaded
    [    1.026215] libphy: Fixed MDIO Bus: probed
    [    1.103433] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    1.109604] davinci_mdio 4a101000.mdio: detected phy mask fffffffa
    [    1.116742] ***************** MICREL_PHY_50MHZ_CLK *****************
    [    1.123915] ***************** MICREL_PHY_50MHZ_CLK *****************
    [    1.130420] libphy: 4a101000.mdio: probed
    [    1.134540] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver Micrel KSZ8081 or KSZ8091
    [    1.144245] davinci_mdio 4a101000.mdio: phy[2]: device 4a101000.mdio:02, driver Micrel KSZ8081 or KSZ8091
    [    1.154640] cpsw 4a100000.ethernet: Detected MACID = 04:a3:16:e0:9b:d3
    [    1.161337] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
    [    1.170203] mousedev: PS/2 mouse device common for all mice
    [    1.176278] i2c /dev entries driver
    [    1.181380] cpuidle: enable-method property 'ti,am3352' found operations
    [    1.243975] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.255140] NET: Registered protocol family 10
    [    1.262068] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    1.271034] NET: Registered protocol family 17
    [    1.275881] Key type dns_resolver registered
    [    1.280416] omap_voltage_late_init: Voltage driver support not added
    [    1.313529] tps65910 0-002d: No interrupt support, no core IRQ
    [    1.320583] tps65910 0-002d: Error in configuring external control EN1
    [    1.327244] tps65910 0-002d: Failed to initialise ext control config
    [    1.333786] vrtc: supplied by vbat
    [    1.337456] vrtc: failed to enable
    [    1.340922] tps65910 0-002d: failed to register tps65910-pmic regulator
    [    1.347650] tps65910-pmic: probe of tps65910-pmic failed with error -121
    [    1.354866] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
    [    1.361904] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz
    [    1.368474] hctosys: unable to open rtc device (rtc0)
    [    1.374099] lis3_reg: disabling
    [    1.377343] wlan-en-regulator: disabling
    [    1.381321] ALSA device list:
    [    1.384367]   No soundcards found.
    [    1.388557] Waiting for root device /dev/mmcblk0p2...
    [    1.400238] mmc0: host does not support reading read-only switch, assuming write-enable
    [    1.412154] mmc0: new high speed SDHC card at address aaaa
    [    1.418426] mmcblk0: mmc0:aaaa SU04G 3.69 GiB
    [    1.424785]  mmcblk0: p1 p2
    [    1.551904] random: fast init done
    [    1.572121] EXT4-fs (mmcblk0p2): recovery complete
    [    1.579149] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    1.587409] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    1.598156] devtmpfs: mounted
    [    1.602637] Freeing unused kernel memory: 1024K (c0b00000 - c0c00000)
    INIT: version 2.88 booting
    Starting udev
    [    2.512608] udevd[100]: starting version 3.1.5
    depmod: ERROR: could not open directory /lib/modules/4.9.41-ge3a80a1c5c: No such file or directory
    depmod: WARNING: -e needs -E or -F
    depmod: ERROR: could not open directory /lib/modules/4.9.41-ge3a80a1c5c: No such file or directory
    depmod: FATAL: could not search modules: No such file or directory
    [    3.132000] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    Error opening /dev/fb0: No such file or directory
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    Wed Dec 20 11:14:07 UTC 2017
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    INIT: Entering runlevel: 5
    Configuring network interfaces... [    4.188299] net eth0: initializing cpsw version 1.12 (0)
    [    4.194554] net eth0: initialized cpsw ale version 1.4
    [    4.199749] net eth0: ALE Table size 1024
    [    4.304533] Micrel KSZ8081 or KSZ8091 4a101000.mdio:02: attached PHY driver [Micrel KSZ8081 or KSZ8091] (mii_bus:phy_addr=4a101000.mdio:02, irq=-1)
    [    4.318547] ************** cpsw_gmii_sel_am3352 : 6 : 1 : 0 ***************
    [    4.325682] libphy: PHY 4a101000.mdio:04 not found
    [    4.330513] net eth0: phy "4a101000.mdio:04" not found on slave 1, err -19
    [    4.345192] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    udhcpc (v1.24.1) started
    Sending discover...
    [    7.444148] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
    [    7.452326] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
    Sending discover...
    Sending discover...
    No lease, forking to background
    ifup: don't have all variables for wlan0/inet
    Starting system message bus: dbus.
    Starting OpenBSD Secure Shell server: sshd
    done.
    hwclock: can't open '/dev/misc/rtc': No such file or directory
    Starting ntpd: done
    Starting syslogd/klogd: done
    Starting php-fpm  done
    Starting crond: OK
    Starting web server: apache2.
    /*
     * Copyright (C) 2012 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 "am33xx.dtsi"
    #include <dt-bindings/interrupt-controller/irq.h>
    
    / {
    	model = "TI AM335x EVM";
    	compatible = "ti,am335x-evm", "ti,am33xx";
    
    	cpus {
    		cpu@0 {
    			cpu0-supply = <&vdd1_reg>;
    		};
    	};
    
    	memory@80000000 {
    		device_type = "memory";
    		reg = <0x80000000 0x10000000>; /* 256 MB */
    	};
    
    	chosen {
    		stdout-path = &uart0;
    	};
    
    	vbat: fixedregulator0 {
    		compatible = "regulator-fixed";
    		regulator-name = "vbat";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		regulator-boot-on;
    	};
    
    	lis3_reg: fixedregulator1 {
    		compatible = "regulator-fixed";
    		regulator-name = "lis3_reg";
    		regulator-boot-on;
    	};
    
    	wlan_en_reg: fixedregulator2 {
    		compatible = "regulator-fixed";
    		regulator-name = "wlan-en-regulator";
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    
    		/* WLAN_EN GPIO for this board - Bank1, pin16 */
    		gpio = <&gpio1 16 0>;
    
    		/* WLAN card specific delay */
    		startup-delay-us = <70000>;
    		enable-active-high;
    	};
    
    	vmmcsd_fixed: fixedregulator@0 {
                    compatible = "regulator-fixed";
                    regulator-name = "vmmcsd_fixed";
                    regulator-min-microvolt = <3300000>;
                    regulator-max-microvolt = <3300000>;
            };
    
    //	matrix_keypad: matrix_keypad0 {
    //		compatible = "gpio-matrix-keypad";
    //		debounce-delay-ms = <5>;
    //		col-scan-delay-us = <2>;
    //
    //		row-gpios = <&gpio1 25 GPIO_ACTIVE_HIGH		/* Bank1, pin25 */
    //			     &gpio1 26 GPIO_ACTIVE_HIGH		/* Bank1, pin26 */
    //			     &gpio1 27 GPIO_ACTIVE_HIGH>;	/* Bank1, pin27 */
    //
    //		col-gpios = <&gpio1 21 GPIO_ACTIVE_HIGH		/* Bank1, pin21 */
    //			     &gpio1 22 GPIO_ACTIVE_HIGH>;	/* Bank1, pin22 */
    //
    //		linux,keymap = <0x0000008b	/* MENU */
    //				0x0100009e	/* BACK */
    //				0x02000069	/* LEFT */
    //				0x0001006a	/* RIGHT */
    //				0x0101001c	/* ENTER */
    //				0x0201006c>;	/* DOWN */
    //	};
    //
    //	gpio_keys: volume_keys0 {
    //		compatible = "gpio-keys";
    //		#address-cells = <1>;
    //		#size-cells = <0>;
    //		autorepeat;
    //
    //		switch9 {
    //			label = "volume-up";
    //			linux,code = <115>;
    //			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
    //			wakeup-source;
    //		};
    //
    //		switch10 {
    //			label = "volume-down";
    //			linux,code = <114>;
    //			gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
    //			wakeup-source;
    //		};
    //	};
    
    //	lcd_bl: backlight {
    //		compatible = "pwm-backlight";
    //		pwms = <&ecap0 0 50000 0>;
    //		brightness-levels = <0 51 53 56 62 75 101 152 255>;
    //		default-brightness-level = <8>;
    //	};
    
    //	panel {
    //		compatible = "ti,tilcdc,panel";
    //		status = "okay";
    //		pinctrl-names = "default";
    //		pinctrl-0 = <&lcd_pins_s0>;
    //		backlight = <&lcd_bl>;
    //		panel-info {
    //			ac-bias           = <255>;
    //			ac-bias-intrpt    = <0>;
    //			dma-burst-sz      = <16>;
    //			bpp               = <32>;
    //			fdd               = <0x80>;
    //			sync-edge         = <0>;
    //			sync-ctrl         = <1>;
    //			raster-order      = <0>;
    //			fifo-th           = <0>;
    //		};
    //
    //		display-timings {
    //			800x480p62 {
    //				clock-frequency = <30000000>;
    //				hactive = <800>;
    //				vactive = <480>;
    //				hfront-porch = <39>;
    //				hback-porch = <39>;
    //				hsync-len = <47>;
    //				vback-porch = <29>;
    //				vfront-porch = <13>;
    //				vsync-len = <2>;
    //				hsync-active = <1>;
    //				vsync-active = <1>;
    //			};
    //		};
    //	};
    
    //	sound {
    //		compatible = "simple-audio-card";
    //		simple-audio-card,name = "AM335x-EVM";
    //		simple-audio-card,widgets =
    //			"Headphone", "Headphone Jack",
    //			"Line", "Line In";
    //		simple-audio-card,routing =
    //			"Headphone Jack",	"HPLOUT",
    //			"Headphone Jack",	"HPROUT",
    //			"LINE1L",		"Line In",
    //			"LINE1R",		"Line In";
    //		simple-audio-card,format = "dsp_b";
    //		simple-audio-card,bitclock-master = <&sound_master>;
    //		simple-audio-card,frame-master = <&sound_master>;
    //		simple-audio-card,bitclock-inversion;
    //
    //		simple-audio-card,cpu {
    //			sound-dai = <&mcasp1>;
    //		};
    
    //		sound_master: simple-audio-card,codec {
    //			sound-dai = <&tlv320aic3106>;
    //			system-clock-frequency = <12000000>;
    //		};
    //	};
    };
    
    &am33xx_pinmux {
    	pinctrl-names = "default";
    	pinctrl-0 = <&clkout2_pin>;
    
    //	matrix_keypad_s0: matrix_keypad_s0 {
    //		pinctrl-single,pins = <
    //			AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a5.gpio1_21 */
    //			AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a6.gpio1_22 */
    //			AM33XX_IOPAD(0x864, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a9.gpio1_25 */
    //			AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a10.gpio1_26 */
    //			AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a11.gpio1_27 */
    //		>;
    //	};
    
    //	volume_keys_s0: volume_keys_s0 {
    //		pinctrl-single,pins = <
    //			AM33XX_IOPAD(0x950, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* spi0_sclk.gpio0_2 */
    //			AM33XX_IOPAD(0x954, PIN_INPUT_PULLDOWN | MUX_MODE7)	/* spi0_d0.gpio0_3 */
    //		>;
    //	};
    
    	i2c0_pins: pinmux_i2c0_pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_sda.i2c0_sda */
    			AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0)	/* i2c0_scl.i2c0_scl */
    		>;
    	};
    
    	i2c1_pins: pinmux_i2c1_pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE2)	/* spi0_d1.i2c1_sda */
    			AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE2)	/* spi0_cs0.i2c1_scl */
    		>;
    	};
    
    	uart0_pins: pinmux_uart0_pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0)	/* uart0_rxd.uart0_rxd */
    			AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* uart0_txd.uart0_txd */
    		>;
    	};
    
    	uart1_pins: pinmux_uart1_pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0)		/* uart1_ctsn.uart1_ctsn */
    			AM33XX_IOPAD(0x97C, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* uart1_rtsn.uart1_rtsn */
    			AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0)	/* uart1_rxd.uart1_rxd */
    			AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* uart1_txd.uart1_txd */
    		>;
    	};
    
    	clkout2_pin: pinmux_clkout2_pin {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* xdma_event_intr1.clkout2 */
    		>;
    	};
    
    //	nandflash_pins_s0: nandflash_pins_s0 {
    //		pinctrl-single,pins = <
    //			AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad0.gpmc_ad0 */
    //			AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad1.gpmc_ad1 */
    //			AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad2.gpmc_ad2 */
    //			AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad3.gpmc_ad3 */
    //			AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad4.gpmc_ad4 */
    //			AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad5.gpmc_ad5 */
    //			AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad6.gpmc_ad6 */
    //			AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_ad7.gpmc_ad7 */
    //			AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE0)	/* gpmc_wait0.gpmc_wait0 */
    //			AM33XX_IOPAD(0x874, PIN_INPUT_PULLUP | MUX_MODE7)	/* gpmc_wpn.gpio0_30 */
    //			AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0)		/* gpmc_csn0.gpmc_csn0  */
    //			AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0)		/* gpmc_advn_ale.gpmc_advn_ale */
    //			AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0)		/* gpmc_oen_ren.gpmc_oen_ren */
    //			AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0)		/* gpmc_wen.gpmc_wen */
    //			AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0)		/* gpmc_be0n_cle.gpmc_be0n_cle */
    //		>;
    //	};
    
    //	ecap0_pins: backlight_pins {
    //		pinctrl-single,pins = <
    //			AM33XX_IOPAD(0x964, MUX_MODE0)	/* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out */
    //		>;
    //	};
    
    	cpsw_default: cpsw_default {
    		pinctrl-single,pins = <
    			/* Slave 1 */
    		0x10c ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (H17) gmii1_crs.rmii1_crs_dv */
    		0x110 ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (J15) gmii1_rxer.rmii1_rxer */
    		0x114 ( PIN_OUTPUT_PULLUP | MUX_MODE1 ) /* (J16) gmii1_txen.rmii1_txen */
    		0x128 ( PIN_OUTPUT_PULLUP | MUX_MODE1 ) /* (K17) gmii1_txd0.rmii1_txd0 */
    		0x124 ( PIN_OUTPUT_PULLUP | MUX_MODE1 ) /* (K16) gmii1_txd1.rmii1_txd1 */
    		0x140 ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (M16) gmii1_rxd0.rmii1_rxd0 */
    		0x13c ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (L15) gmii1_rxd1.rmii1_rxd1 */
    		0x144 ( PIN_INPUT | MUX_MODE0 ) /* (H18) rmii1_refclk.rmii1_refclk */
    		>;
    	};
    
    	cpsw_sleep: cpsw_sleep {
    		pinctrl-single,pins = <
    			/* Slave 1 reset value */
    		0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (H17) gmii1_crs.rmii1_crs_dv */
    		0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (J15) gmii1_rxer.rmii1_rxer */
    		0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (J16) gmii1_txen.rmii1_txen */
    		0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K17) gmii1_txd0.rmii1_txd0 */
    		0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K16) gmii1_txd1.rmii1_txd1 */
    		0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (M16) gmii1_rxd0.rmii1_rxd0 */
    		0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (L15) gmii1_rxd1.rmii1_rxd1 */
    		0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (H18) rmii1_refclk.rmii1_refclk */
    		>;
    	};
    
    	davinci_mdio_default: davinci_mdio_default {
    		pinctrl-single,pins = <
    			/* MDIO */
    			AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)	/* mdio_data.mdio_data */
    			AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0)			/* mdio_clk.mdio_clk */
    		>;
    	};
    
    	davinci_mdio_sleep: davinci_mdio_sleep {
    		pinctrl-single,pins = <
    			/* MDIO reset value */
    			AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
    			AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    		>;
    	};
    
    	mmc1_pins_default: pinmux_mmc1_pins {
    		pinctrl-single,pins = <
    			0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat3.mmc0_dat3 */
    			0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat2.mmc0_dat2 */
    			0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat1.mmc0_dat1 */
    			0x0FC (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_dat0.mmc0_dat0 */
    			0x100 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_clk.mmc0_clk */
    			0x104 (PIN_INPUT_PULLUP | MUX_MODE0)    /* mmc0_cmd.mmc0_cmd */
    			0x1A4 (PIN_INPUT_PULLUP | MUX_MODE7)    /* mcasp0_fsr.gpio3_19 */
    		>;
    	};
    
    	mmc1_pins_sleep: pinmux_mmc1_pins_sleep {
    		pinctrl-single,pins = <
    			0x0F0 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x0F4 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x0F8 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x0FC (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x100 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x104 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x1A4 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    		>;
    	};
    
    //	wlan_pins: pinmux_wlan_pins {
    //		pinctrl-single,pins = <
    //			AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* gpmc_a0.gpio1_16 */
    //			AM33XX_IOPAD(0x99c, PIN_INPUT | MUX_MODE7)		/* mcasp0_ahclkr.gpio3_17 */
    //			AM33XX_IOPAD(0x9ac, PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* mcasp0_ahclkx.gpio3_21 */
    //		>;
    //	};
    
    //	lcd_pins_s0: lcd_pins_s0 {
    //		pinctrl-single,pins = <
    //			AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad8.lcd_data23 */
    //			AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad9.lcd_data22 */
    //			AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad10.lcd_data21 */
    //			AM33XX_IOPAD(0x82c, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad11.lcd_data20 */
    //			AM33XX_IOPAD(0x830, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad12.lcd_data19 */
    //			AM33XX_IOPAD(0x834, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad13.lcd_data18 */
    //			AM33XX_IOPAD(0x838, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad14.lcd_data17 */
    //			AM33XX_IOPAD(0x83c, PIN_OUTPUT | MUX_MODE1)		/* gpmc_ad15.lcd_data16 */
    //			AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0)		/* lcd_data0.lcd_data0 */
    //			AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0)		/* lcd_data1.lcd_data1 */
    //			AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0)		/* lcd_data2.lcd_data2 */
    //			AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0)		/* lcd_data3.lcd_data3 */
    //			AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0)		/* lcd_data4.lcd_data4 */
    //			AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0)		/* lcd_data5.lcd_data5 */
    //			AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0)		/* lcd_data6.lcd_data6 */
    //			AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0)		/* lcd_data7.lcd_data7 */
    //			AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0)		/* lcd_data8.lcd_data8 */
    //			AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0)		/* lcd_data9.lcd_data9 */
    //			AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0)		/* lcd_data10.lcd_data10 */
    //			AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0)		/* lcd_data11.lcd_data11 */
    //			AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0)		/* lcd_data12.lcd_data12 */
    //			AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0)		/* lcd_data13.lcd_data13 */
    //			AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0)		/* lcd_data14.lcd_data14 */
    //			AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0)		/* lcd_data15.lcd_data15 */
    //			AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0)		/* lcd_vsync.lcd_vsync */
    //			AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0)		/* lcd_hsync.lcd_hsync */
    //			AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0)		/* lcd_pclk.lcd_pclk */
    //			AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0)		/* lcd_ac_bias_en.lcd_ac_bias_en */
    //		>;
    //	};
    
    //	mcasp1_pins: mcasp1_pins {
    //		pinctrl-single,pins = <
    //			AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
    //			AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
    //			AM33XX_IOPAD(0x908, PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
    //			AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
    //		>;
    //	};
    
    //	mcasp1_pins_sleep: mcasp1_pins_sleep {
    //		pinctrl-single,pins = <
    //			AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    //			AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
    //			AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7)
    //			AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
    //		>;
    //	};
    
    //	dcan1_pins_default: dcan1_pins_default {
    //		pinctrl-single,pins = <
    //			AM33XX_IOPAD(0x968, PIN_OUTPUT | MUX_MODE2) /* uart0_ctsn.d_can1_tx */
    //			AM33XX_IOPAD(0x96c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* uart0_rtsn.d_can1_rx */
    //		>;
    //	};
    };
    
    &uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart0_pins>;
    
    	status = "okay";
    };
    
    &uart1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart1_pins>;
    
    	status = "okay";
    };
    
    &i2c0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c0_pins>;
    
    	status = "okay";
    	clock-frequency = <400000>;
    
    	tps: tps@2d {
    		reg = <0x2d>;
    	};
    };
    
    &mmc1 {
    	status = "okay";
    	vmmc-supply = <&vmmcsd_fixed>;
    	bus-width = <4>;
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&mmc1_pins_default>;
    	pinctrl-1 = <&mmc1_pins_sleep>;
    };
    
    &usb {
    	status = "okay";
    };
    
    &usb_ctrl_mod {
    	status = "okay";
    };
    
    &usb0_phy {
    	status = "okay";
    };
    
    &usb1_phy {
    	status = "okay";
    };
    
    &usb0 {
    	status = "okay";
    };
    
    &usb1 {
    	status = "okay";
    	dr_mode = "host";
    };
    
    &cppi41dma  {
    	status = "okay";
    };
    
    &i2c1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c1_pins>;
    
    	status = "okay";
    	clock-frequency = <100000>;
    
    	lis331dlh: lis331dlh@18 {
    		compatible = "st,lis331dlh", "st,lis3lv02d";
    		reg = <0x18>;
    		Vdd-supply = <&lis3_reg>;
    		Vdd_IO-supply = <&lis3_reg>;
    
    		st,click-single-x;
    		st,click-single-y;
    		st,click-single-z;
    		st,click-thresh-x = <10>;
    		st,click-thresh-y = <10>;
    		st,click-thresh-z = <10>;
    		st,irq1-click;
    		st,irq2-click;
    		st,wakeup-x-lo;
    		st,wakeup-x-hi;
    		st,wakeup-y-lo;
    		st,wakeup-y-hi;
    		st,wakeup-z-lo;
    		st,wakeup-z-hi;
    		st,min-limit-x = <120>;
    		st,min-limit-y = <120>;
    		st,min-limit-z = <140>;
    		st,max-limit-x = <550>;
    		st,max-limit-y = <550>;
    		st,max-limit-z = <750>;
    	};
    
    	tsl2550: tsl2550@39 {
    		compatible = "taos,tsl2550";
    		reg = <0x39>;
    	};
    
    	tmp275: tmp275@48 {
    		compatible = "ti,tmp275";
    		reg = <0x48>;
    	};
    
    //	tlv320aic3106: tlv320aic3106@1b {
    //		#sound-dai-cells = <0>;
    //		compatible = "ti,tlv320aic3106";
    //		reg = <0x1b>;
    //		status = "okay";
    //
    //		/* Regulators */
    //		AVDD-supply = <&vaux2_reg>;
    //		IOVDD-supply = <&vaux2_reg>;
    //		DRVDD-supply = <&vaux2_reg>;
    //		DVDD-supply = <&vbat>;
    //	};
    };
    
    //&lcdc {
    //	status = "okay";
    //
    //	blue-and-red-wiring = "crossed";
    //};
    
    //&elm {
    //	status = "okay";
    //};
    
    //&epwmss0 {
    //	status = "okay";
    //
    //	ecap0: ecap@48300100 {
    //		status = "okay";
    //		pinctrl-names = "default";
    //		pinctrl-0 = <&ecap0_pins>;
    //	};
    //};
    
    //&gpmc {
    //	status = "okay";
    //	pinctrl-names = "default";
    //	pinctrl-0 = <&nandflash_pins_s0>;
    //	ranges = <0 0 0x08000000 0x1000000>;	/* CS0: 16MB for NAND */
    //	nand@0,0 {
    //		compatible = "ti,omap2-nand";
    //		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
    //		interrupt-parent = <&gpmc>;
    //		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
    //			     <1 IRQ_TYPE_NONE>;	/* termcount */
    //		rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
    //		ti,nand-ecc-opt = "bch8";
    //		ti,elm-id = <&elm>;
    //		nand-bus-width = <8>;
    //		gpmc,device-width = <1>;
    //		gpmc,sync-clk-ps = <0>;
    //		gpmc,cs-on-ns = <0>;
    //		gpmc,cs-rd-off-ns = <44>;
    //		gpmc,cs-wr-off-ns = <44>;
    //		gpmc,adv-on-ns = <6>;
    //		gpmc,adv-rd-off-ns = <34>;
    //		gpmc,adv-wr-off-ns = <44>;
    //		gpmc,we-on-ns = <0>;
    //		gpmc,we-off-ns = <40>;
    //		gpmc,oe-on-ns = <0>;
    //		gpmc,oe-off-ns = <54>;
    //		gpmc,access-ns = <64>;
    //		gpmc,rd-cycle-ns = <82>;
    //		gpmc,wr-cycle-ns = <82>;
    //		gpmc,bus-turnaround-ns = <0>;
    //		gpmc,cycle2cycle-delay-ns = <0>;
    //		gpmc,clk-activation-ns = <0>;
    //		gpmc,wr-access-ns = <40>;
    //		gpmc,wr-data-mux-bus-ns = <0>;
    //		/* MTD partition table */
    //		/* All SPL-* partitions are sized to minimal length
    //		 * which can be independently programmable. For
    //		 * NAND flash this is equal to size of erase-block */
    //		#address-cells = <1>;
    //		#size-cells = <1>;
    //		partition@0 {
    //			label = "NAND.SPL";
    //			reg = <0x00000000 0x000020000>;
    //		};
    //		partition@1 {
    //			label = "NAND.SPL.backup1";
    //			reg = <0x00020000 0x00020000>;
    //		};
    //		partition@2 {
    //			label = "NAND.SPL.backup2";
    //			reg = <0x00040000 0x00020000>;
    //		};
    //		partition@3 {
    //			label = "NAND.SPL.backup3";
    //			reg = <0x00060000 0x00020000>;
    //		};
    //		partition@4 {
    //			label = "NAND.u-boot-spl-os";
    //			reg = <0x00080000 0x00040000>;
    //		};
    //		partition@5 {
    //			label = "NAND.u-boot";
    //			reg = <0x000C0000 0x00100000>;
    //		};
    //		partition@6 {
    //			label = "NAND.u-boot-env";
    //			reg = <0x001C0000 0x00020000>;
    //		};
    //		partition@7 {
    //			label = "NAND.u-boot-env.backup1";
    //			reg = <0x001E0000 0x00020000>;
    //		};
    //		partition@8 {
    //			label = "NAND.kernel";
    //			reg = <0x00200000 0x00800000>;
    //		};
    //		partition@9 {
    //			label = "NAND.file-system";
    //			reg = <0x00A00000 0x0F600000>;
    //		};
    //	};
    //};
    
    #include "tps65910.dtsi"
    
    //&mcasp1 {
    //	#sound-dai-cells = <0>;
    //	pinctrl-names = "default", "sleep";
    //	pinctrl-0 = <&mcasp1_pins>;
    //	pinctrl-1 = <&mcasp1_pins_sleep>;
    
    //	status = "okay";
    
    //	op-mode = <0>;          /* MCASP_IIS_MODE */
    //	tdm-slots = <2>;
    //	/* 4 serializers */
    //	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
    //		0 0 1 2
    //	>;
    //	tx-num-evt = <32>;
    //	rx-num-evt = <32>;
    //};
    
    &tps {
    	vcc1-supply = <&vbat>;
    	vcc2-supply = <&vbat>;
    	vcc3-supply = <&vbat>;
    	vcc4-supply = <&vbat>;
    	vcc5-supply = <&vbat>;
    	vcc6-supply = <&vbat>;
    	vcc7-supply = <&vbat>;
    	vccio-supply = <&vbat>;
    
    	regulators {
    		vrtc_reg: regulator@0 {
    			regulator-always-on;
    		};
    
    		vio_reg: regulator@1 {
    			regulator-always-on;
    		};
    
    		vdd1_reg: regulator@2 {
    			/* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
    			regulator-name = "vdd_mpu";
    			regulator-min-microvolt = <912500>;
    			regulator-max-microvolt = <1351500>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		vdd2_reg: regulator@3 {
    			/* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
    			regulator-name = "vdd_core";
    			regulator-min-microvolt = <912500>;
    			regulator-max-microvolt = <1150000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		vdd3_reg: regulator@4 {
    			regulator-always-on;
    		};
    
    		vdig1_reg: regulator@5 {
    			regulator-always-on;
    		};
    
    		vdig2_reg: regulator@6 {
    			regulator-always-on;
    		};
    
    		vpll_reg: regulator@7 {
    			regulator-always-on;
    		};
    
    		vdac_reg: regulator@8 {
    			regulator-always-on;
    		};
    
    		vaux1_reg: regulator@9 {
    			regulator-always-on;
    		};
    
    		vaux2_reg: regulator@10 {
    			regulator-always-on;
    		};
    
    		vaux33_reg: regulator@11 {
    			regulator-always-on;
    		};
    
    		vmmc_reg: regulator@12 {
    			regulator-min-microvolt = <1800000>;
    			regulator-max-microvolt = <3300000>;
    			regulator-always-on;
    		};
    	};
    };
    
    &mac {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&cpsw_default>;
    	pinctrl-1 = <&cpsw_sleep>;
    	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>, <2>;
    	phy-mode = "rmii";
    };
    
    &cpsw_emac1 {
    	phy_id = <&davinci_mdio>, <4>;
    	phy-mode = "rmii";
    };
    
    &phy_sel {
    	rmii-clock-ext;
    };
    
    //&tscadc {
    //	status = "okay";
    //	tsc {
    //		ti,wires = <4>;
    //		ti,x-plate-resistance = <200>;
    //		ti,coordinate-readouts = <5>;
    //		ti,wire-config = <0x00 0x11 0x22 0x33>;
    //		ti,charge-delay = <0x400>;
    //	};
    //
    //	adc {
    //		ti,adc-channels = <4 5 6 7>;
    //	};
    //};
    
    //&mmc1 {
    //	status = "okay";
    //	vmmc-supply = <&vmmc_reg>;
    //	bus-width = <4>;
    //	pinctrl-names = "default";
    //	pinctrl-0 = <&mmc1_pins>;
    //	cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
    //};
    
    //&mmc3 {
    //	/* these are on the crossbar and are outlined in the
    //	   xbar-event-map element */
    //	dmas = <&edma_xbar 12 0 1
    //		&edma_xbar 13 0 2>;
    //	dma-names = "tx", "rx";
    //	status = "okay";
    //	vmmc-supply = <&wlan_en_reg>;
    //	bus-width = <4>;
    //	pinctrl-names = "default";
    //	pinctrl-0 = <&mmc3_pins &wlan_pins>;
    //	ti,non-removable;
    //	ti,needs-special-hs-handling;
    //	cap-power-off-card;
    //	keep-power-in-suspend;
    
    //	#address-cells = <1>;
    //	#size-cells = <0>;
    //	wlcore: wlcore@0 {
    //		compatible = "ti,wl1835";
    //		reg = <2>;
    //		interrupt-parent = <&gpio3>;
    //		interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
    //	};
    //};
    
    &sham {
    	status = "okay";
    };
    
    &aes {
    	status = "okay";
    };
    
    //&dcan1 {
    //	status = "disabled";	/* Enable only if Profile 1 is selected */
    //	pinctrl-names = "default";
    //	pinctrl-0 = <&dcan1_pins_default>;
    //};
    
    &rtc {
    	clocks = <&clk_32768_ck>, <&clkdiv32k_ick>;
    	clock-names = "ext-clk", "int-clk";
    };
    
    &wkup_m3_ipc {
    	ti,scale-data-fw = "am335x-evm-scale-data.bin";
    };
    
    &pruss_soc_bus {
    	status = "okay";
    
    	pruss: pruss@4a300000 {
    		status = "okay";
    
    		pru0: pru@4a334000 {
    			status = "okay";
    		};
    
    		pru1: pru@4a338000 {
    			status = "okay";
    		};
    	};
    };
    
    &sgx {
    	status = "okay";
    };
    

  • CPSTATS isn't reporting any RX packets at all, yet you say that you see activity on the RX lines. Please check your pinmuxing.
  • I had attached log and device tree files in reply.

    Contents i am pasting w.r.t mii

    cpsw_default: cpsw_default {
    pinctrl-single,pins = <
    /* Slave 1 */
    0x10c ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (H17) gmii1_crs.rmii1_crs_dv */
    0x110 ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (J15) gmii1_rxer.rmii1_rxer */
    0x114 ( PIN_OUTPUT_PULLUP | MUX_MODE1 ) /* (J16) gmii1_txen.rmii1_txen */
    0x128 ( PIN_OUTPUT_PULLUP | MUX_MODE1 ) /* (K17) gmii1_txd0.rmii1_txd0 */
    0x124 ( PIN_OUTPUT_PULLUP | MUX_MODE1 ) /* (K16) gmii1_txd1.rmii1_txd1 */
    0x140 ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (M16) gmii1_rxd0.rmii1_rxd0 */
    0x13c ( PIN_INPUT_PULLDOWN | MUX_MODE1 ) /* (L15) gmii1_rxd1.rmii1_rxd1 */
    0x144 ( PIN_INPUT | MUX_MODE0 ) /* (H18) rmii1_refclk.rmii1_refclk */
    >;
    };

    cpsw_sleep: cpsw_sleep {
    pinctrl-single,pins = <
    /* Slave 1 reset value */
    0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (H17) gmii1_crs.rmii1_crs_dv */
    0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (J15) gmii1_rxer.rmii1_rxer */
    0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (J16) gmii1_txen.rmii1_txen */
    0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K17) gmii1_txd0.rmii1_txd0 */
    0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K16) gmii1_txd1.rmii1_txd1 */
    0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (M16) gmii1_rxd0.rmii1_rxd0 */
    0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (L15) gmii1_rxd1.rmii1_rxd1 */
    0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (H18) rmii1_refclk.rmii1_refclk */
    >;
    };

    davinci_mdio_default: davinci_mdio_default {
    pinctrl-single,pins = <
    /* MDIO */
    AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
    AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
    >;
    };

    davinci_mdio_sleep: davinci_mdio_sleep {
    pinctrl-single,pins = <
    /* MDIO reset value */
    AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
    AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
    >;
    };

    &mac {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&cpsw_default>;
    pinctrl-1 = <&cpsw_sleep>;
    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>, <2>;
    phy-mode = "rmii";
    };

    &cpsw_emac1 {
    phy_id = <&davinci_mdio>, <4>;
    phy-mode = "rmii";
    };

    &phy_sel {
    rmii-clock-ext;
    };

    Regards,
    Dileep
  • I don't see an issue with this assuming you are using the ZCZ package and have wired your port to RMII1 and not RMII2.

    It would be useful to verify that the relevant PADCONF registers actually contain the values programmed in the pinmux.
    Also, please dump the PHY regs (uboot 'mii dump [PHY ADDRESS]') and the relevant MACCONTROL register and post the values here.