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/PROCESSOR-SDK-AM437X: Error detecting PHY chip

Part Number: PROCESSOR-SDK-AM437X
Other Parts Discussed in Thread: AM4378, DP83620

Tool/software: Linux

We're working on a custom board, based on the am4378 SDK. I'm having some trouble getting Ethernet to work, as the PHY chip does not get detected. I get the following in my message log:

libphy: Fixed MDIO Bus: probed
[ 2.066152] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 2.072287] davinci_mdio 4a101000.mdio: detected phy mask fffffff9
[ 2.088103] libphy: 4a101000.mdio: probed
[ 2.092162] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver TI DP83620 10/100 Mbps PHY
[ 2.101966] davinci_mdio 4a101000.mdio: phy[2]: device 4a101000.mdio:02, driver TI DP83620 10/100 Mbps PHY
[ 2.112710] cpsw 4a100000.ethernet: Detected MACID = c4:be:84:cb:56:13
[ 2.120137] cpsw 4a100000.ethernet: cpsw: Detected MACID = c4:be:84:cb:56:15

which tells me that the PHY was detected. However, I get the following, later in the log:

[ 7.945033] net eth0: initializing cpsw version 1.15 (0)
[ 7.950515] net eth0: initialized cpsw ale version 1.4
[ 7.955678] net eth0: ALE Table size 1024
[ 7.961430] libphy: PHY 4a101000.mdio:04 not found
[ 7.966264] net eth0: phy "4a101000.mdio:04" not found on slave 0, err -19
[ 7.980243] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

Any help on this is appreciated. 

Thank you.

  • Please post the SDK version you are using. Also follow this checklist and post the results here: processors.wiki.ti.com/.../5x_CPSW
  • The MDIO driver is reporting the PHYs found on the MDIO bus, in this case it found two PHYs with addresses 1 and 2.
    [ 2.092162] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver TI DP83620 10/100 Mbps PHY
    [ 2.101966] davinci_mdio 4a101000.mdio: phy[2]: device 4a101000.mdio:02, driver TI DP83620 10/100 Mbps PHY

    In the device tree that was loaded with the kernel there appears to be a PHY with a different address definition for eth0, in this case 4.

    [ 7.961430] libphy: PHY 4a101000.mdio:04 not found
    [ 7.966264] net eth0: phy "4a101000.mdio:04" not found on slave 0, err -19

    Is the PHY with address 1 intended for eth0?

    We can take a look at your DTS file if you want. Please attach the DTS file for the custom board, or least the portion that is defining the emac and PHYs.
  • The Device tree source file:

    /*
     * 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>
    #include <dt-bindings/interrupt-controller/irq.h>
    
    / {
    	model = "TI AM437x SK EVM";
    	compatible = "ti,am437x-sk-evm","ti,am4372","ti,am43";
    
    	aliases {
    		display0 = &lcd0;
    	};
    
    	/* fixed 32k external oscillator clock */
    	clk_32k_rtc: clk_32k_rtc {
    		#clock-cells = <0>;
    		compatible = "fixed-clock";
    		clock-frequency = <32768>;
    	};
    
    	backlight {
    		compatible = "pwm-backlight";
    		pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>;
    		brightness-levels = <0 51 53 56 62 75 101 152 255>;
    		default-brightness-level = <8>;
    	};
    
    	/* SK EVM, not used on GC150
        sound {
    		compatible = "simple-audio-card";
    		simple-audio-card,name = "AM437x-SK-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 = <24000000>;
    		};
    	};*/
    
    	matrix_keypad: matrix_keypad@0 {
    		compatible = "gpio-matrix-keypad";
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&matrix_keypad_pins>;
    
    		debounce-delay-ms = <5>;
    		col-scan-delay-us = <5>;
    
    		row-gpios = <&gpio5 5 GPIO_ACTIVE_HIGH		/* Bank5, pin5 */
    				&gpio5 6 GPIO_ACTIVE_HIGH>;	/* Bank5, pin6 */
    
    		col-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH		/* Bank5, pin13 */
    				&gpio5 4 GPIO_ACTIVE_HIGH>;	/* Bank5, pin4 */
    
    		linux,keymap = <
    				MATRIX_KEY(0, 0, KEY_DOWN)
    				MATRIX_KEY(0, 1, KEY_RIGHT)
    				MATRIX_KEY(1, 0, KEY_LEFT)
    				MATRIX_KEY(1, 1, KEY_UP)
    			>;
    	};
    
    	leds {
    		compatible = "gpio-leds";
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&leds_pins>;
    
    		led@0 {
    			label = "am437x-sk:red:heartbeat";
    			gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;	/* Bank 5, pin 0 */
    			linux,default-trigger = "heartbeat";
    			default-state = "off";
    		};
    
    		led@1 {
    			label = "am437x-sk:green:mmc1";
    			gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;	/* Bank 5, pin 1 */
    			linux,default-trigger = "mmc0";
    			default-state = "off";
    		};
    
    		led@2 {
    			label = "am437x-sk:blue:cpu0";
    			gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;	/* Bank 5, pin 2 */
    			linux,default-trigger = "cpu0";
    			default-state = "off";
    		};
    
    		led@3 {
    			label = "am437x-sk:blue:usr3";
    			gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;	/* Bank 5, pin 3 */
    			default-state = "off";
    		};
    	};
    
    	lcd0: display {
    		compatible = "newhaven,nhd-4.3-480272ef-atxl", "panel-dpi";
    		label = "lcd";
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&lcd_pins>;
    		
    		/*backlight = <&lcd_bl>;*/
    
    		enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
    
    		panel-timing {
    			clock-frequency = <9000000>;
    			hactive = <480>;
    			vactive = <272>;
    			hfront-porch = <2>;
    			hback-porch = <2>;
    			hsync-len = <41>;
    			vfront-porch = <2>;
    			vback-porch = <2>;
    			vsync-len = <10>;
    			hsync-active = <0>;
    			vsync-active = <0>;
    			de-active = <1>;
    			pixelclk-active = <1>;
    		};
    
    		port {
    			lcd_in: endpoint {
    				remote-endpoint = <&dpi_out>;
    			};
    		};
    	};
    
    	vmmcwl_fixed: fixedregulator-mmcwl {
    		compatible = "regulator-fixed";
    		regulator-name = "vmmcwl_fixed";
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    		gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>;
    		enable-active-high;
    	};
    };
    
    &am43xx_pinmux {
    	matrix_keypad_pins: matrix_keypad_pins {
    		pinctrl-single,pins = <
    			0x24c (PIN_OUTPUT | MUX_MODE7)	/* gpio5_13.gpio5_13 */
    			0x250 (PIN_OUTPUT | MUX_MODE7)	/* spi4_sclk.gpio5_4 */
    			0x254 (PIN_INPUT | MUX_MODE7)	/* spi4_d0.gpio5_5 */
    			0x258 (PIN_INPUT | MUX_MODE7)	/* spi4_d1.gpio5_5 */
    		>;
    	};
    
    	leds_pins: leds_pins {
    		pinctrl-single,pins = <
    			0x228 (PIN_OUTPUT | MUX_MODE7)	/* uart3_rxd.gpio5_2 */
    			0x22c (PIN_OUTPUT | MUX_MODE7)	/* uart3_txd.gpio5_3 */
    			0x230 (PIN_OUTPUT | MUX_MODE7)	/* uart3_ctsn.gpio5_0 */
    			0x234 (PIN_OUTPUT | MUX_MODE7)	/* uart3_rtsn.gpio5_1 */
    		>;
    	};
    
    	i2c0_pins: i2c0_pins {
    		pinctrl-single,pins = <
    			0x188 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0)  /* i2c0_sda.i2c0_sda */
    			0x18c (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0)  /* i2c0_scl.i2c0_scl */
    		>;
    	};
    
    	i2c1_pins: i2c1_pins {
    		pinctrl-single,pins = <
    			0x15c (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE2)  /* spi0_cs0.i2c1_scl */
    			0x158 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE2)  /* spi0_d1.i2c1_sda  */
    		>;
    	};
    
        on_board_emmc_pins_default: on_board_emmc_pins_default {
        	pinctrl-single,pins = <
        		0xf0 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (B1) mmc0_dat3.mmc0_dat3 */
        		0xf4 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (B2) mmc0_dat2.mmc0_dat2 */
        		0xf8 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (C2) mmc0_dat1.mmc0_dat1 */
        		0xfc ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (C1) mmc0_dat0.mmc0_dat0 */
        		0x100 ( PIN_INPUT | MUX_MODE0 ) /* (D1) mmc0_clk.mmc0_clk */
        		0x104 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (D2) mmc0_cmd.mmc0_cmd */
        		0x12c ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (D14) mii1_tx_clk.mmc0_dat7 */
        		0x130 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (D13) mii1_rx_clk.mmc0_dat6 */
        		0x134 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (C14) mii1_rxd3.mmc0_dat5 */
        		0x138 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (E16) mii1_rxd2.mmc0_dat4 */
        	>;
        };
        
        /* the original device tree pin assignments for the MMC0 device */
    	mmc1_pins: pinmux_mmc1_pins {
    		pinctrl-single,pins = <
    			0x0f0 (PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
    			0x0f4 (PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
    			0x0f8 (PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
    			0x0fc (PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
    			0x100 (PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */
    			0x104 (PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
    			0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
    		>;
    	};
    
    	ecap0_pins: backlight_pins {
    		pinctrl-single,pins = <
    			0x164 (PIN_OUTPUT | MUX_MODE0) /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out */
    		>;
    	};
    
    	edt_ft5306_ts_pins: edt_ft5306_ts_pins {
    		pinctrl-single,pins = <
    			0x74 (PIN_INPUT | MUX_MODE7)	/* gpmc_wpn.gpio0_31 */
    			0x78 (PIN_OUTPUT | MUX_MODE7)	/* gpmc_be1n.gpio1_28 */
    		>;
    	};
    
    	vpfe0_pins_default: vpfe0_pins_default {
    		pinctrl-single,pins = <
    			0x1b0 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_hd mode 0*/
    			0x1b4 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_vd mode 0*/
    			0x1b8 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_field mode 0*/
    			0x1bc (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_wen mode 0*/
    			0x1c0 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_pclk mode 0*/
    			0x1c4 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data8 mode 0*/
    			0x1c8 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data9 mode 0*/
    			0x208 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data0 mode 0*/
    			0x20c (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data1 mode 0*/
    			0x210 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data2 mode 0*/
    			0x214 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data3 mode 0*/
    			0x218 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data4 mode 0*/
    			0x21c (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data5 mode 0*/
    			0x220 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data6 mode 0*/
    			0x224 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data7 mode 0*/
    		>;
    	};
    
    	vpfe0_pins_sleep: vpfe0_pins_sleep {
    		pinctrl-single,pins = <
    			0x1b0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x1b4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x1b8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x1bc (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x1c0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x1c4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x1c8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x208 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x20c (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x210 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x214 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x218 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x21c (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x220 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    			0x224 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
    		>;
    	};
    
    	clkout1_pin: pinmux_clkout1_pin {
    		pinctrl-single,pins = <
    			0x270 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)	/* XDMA_EVENT_INTR0/CLKOUT1 */
    		>;
    	};
    
        /* GC150 */
        ethernet_phy_pins_default: ethernet_phy_pins_default {
        	pinctrl-single,pins = <
                /* phy 1 */
        		0x10c ( PIN_INPUT | MUX_MODE1 ) /* (B14) mii1_crs.rmii1_crs_dv */
        		0x110 ( PIN_INPUT | MUX_MODE1 ) /* (B13) mii1_rx_er.rmii1_rxer */
        		0x114 ( PIN_OUTPUT | MUX_MODE1 ) /* (A13) mii1_tx_en.rmii1_txen */
        		0x124 ( PIN_OUTPUT | MUX_MODE1 ) /* (A14) mii1_txd1.rmii1_txd1 */
        		0x128 ( PIN_OUTPUT | MUX_MODE1 ) /* (B15) mii1_txd0.rmii1_txd0 */
        		0x13c ( PIN_INPUT | MUX_MODE1 ) /* (B16) mii1_rxd1.rmii1_rxd1 */
        		0x140 ( PIN_INPUT | MUX_MODE1 ) /* (F17) mii1_rxd0.rmii1_rxd0 */
        		0x144 ( PIN_INPUT | MUX_MODE0 ) /* (A16) rmii1_ref_clk.rmii1_refclk */
    
                /* phy 2 */
        		0x40 ( PIN_OUTPUT | MUX_MODE3 ) /* (C3) gpmc_a0.rmii2_txen */
        		0x50 ( PIN_OUTPUT | MUX_MODE3 ) /* (D7) gpmc_a4.rmii2_txd1 */
        		0x54 ( PIN_OUTPUT | MUX_MODE3 ) /* (E7) gpmc_a5.rmii2_txd0 */
        		0x6c ( PIN_INPUT | MUX_MODE3 ) /* (D8) gpmc_a11.rmii2_rxd0 */
        		0x68 ( PIN_INPUT | MUX_MODE3 ) /* (G8) gpmc_a10.rmii2_rxd1 */
        		0x70 ( PIN_INPUT | MUX_MODE3 ) /* (A2) gpmc_wait0.rmii2_crs_dv */
        		0x74 ( PIN_INPUT | MUX_MODE3 ) /* (B3) gpmc_wpn.rmii2_rxer */
        		0x108 ( PIN_INPUT | MUX_MODE1 ) /* (D16) mii1_col.rmii2_refclk */
         	>;
        };
    
    	ethernet_phy_pins_sleep: ethernet_phy_pins_sleep{
    		pinctrl-single,pins = <
    			/* phy 1*/
    			0x10c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B14) mii1_crs.rmii1_crs_dv */
    			0x110 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B13) mii1_rx_er.rmii1_rxer */
    			0x114 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A13) mii1_tx_en.rmii1_txen */
                     	0x124 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A14) mii1_txd1.rmii1_txd1 */
                     	0x128 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B15) mii1_txd0.rmii1_txd0 */
                     	0x13c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B16) mii1_rxd1.rmii1_rxd1 */
                     	0x140 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F17) mii1_rxd0.rmii1_rxd0 */
                     	0x144 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A16) rmii1_ref_clk.rmii1_refclk */
    	
    		         /* phy 2 */
    	                 0x40 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C3) gpmc_a0.rmii2_txen */
    	                 0x50 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D7) gpmc_a4.rmii2_txd1 */
    	                 0x54 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (E7) gpmc_a5.rmii2_txd0 */
    	                 0x6c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D8) gpmc_a11.rmii2_rxd0 */
    	                 0x68 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (G8) gpmc_a10.rmii2_rxd1 */
    	                 0x70 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A2) gpmc_wait0.rmii2_crs_dv */
    	                 0x74 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B3) gpmc_wpn.rmii2_rxer */
    	                 0x108 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D16) mii1_col.rmii2_refclk */
    			>;
    		};
    
        /* SK EVM and GC150 */
    	ethernet_mdio_pins_default: ethernet_mdio_pins_default {
    		pinctrl-single,pins = <
    			/* MDIO */
    			0x148 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0)	/* mdio_data.mdio_data */
    			0x14c (PIN_OUTPUT | MUX_MODE0)			/* mdio_clk.mdio_clk */
    		>;
    	};
    
        /* SK EVM and GC150 */
    	ethernet_mdio_pins_sleep: ethernet_mdio_pins_sleep {
    		pinctrl-single,pins = <
    			/* MDIO reset value */
    			0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    		>;
    	};
    
    	dss_pins: dss_pins {
    		pinctrl-single,pins = <
    			0x020 (PIN_OUTPUT | MUX_MODE1)	/* gpmc ad 8 -> DSS DATA 23 */
    			0x024 (PIN_OUTPUT | MUX_MODE1)
    			0x028 (PIN_OUTPUT | MUX_MODE1)
    			0x02c (PIN_OUTPUT | MUX_MODE1)
    			0x030 (PIN_OUTPUT | MUX_MODE1)
    			0x034 (PIN_OUTPUT | MUX_MODE1)
    			0x038 (PIN_OUTPUT | MUX_MODE1)
    			0x03c (PIN_OUTPUT | MUX_MODE1)	/* gpmc ad 15 -> DSS DATA 16 */
    			0x0a0 (PIN_OUTPUT | MUX_MODE0)	/* DSS DATA 0 */
    			0x0a4 (PIN_OUTPUT | MUX_MODE0)
    			0x0a8 (PIN_OUTPUT | MUX_MODE0)
    			0x0ac (PIN_OUTPUT | MUX_MODE0)
    			0x0b0 (PIN_OUTPUT | MUX_MODE0)
    			0x0b4 (PIN_OUTPUT | MUX_MODE0)
    			0x0b8 (PIN_OUTPUT | MUX_MODE0)
    			0x0bc (PIN_OUTPUT | MUX_MODE0)
    			0x0c0 (PIN_OUTPUT | MUX_MODE0)
    			0x0c4 (PIN_OUTPUT | MUX_MODE0)
    			0x0c8 (PIN_OUTPUT | MUX_MODE0)
    			0x0cc (PIN_OUTPUT | MUX_MODE0)
    			0x0d0 (PIN_OUTPUT | MUX_MODE0)
    			0x0d4 (PIN_OUTPUT | MUX_MODE0)
    			0x0d8 (PIN_OUTPUT | MUX_MODE0)
    			0x0dc (PIN_OUTPUT | MUX_MODE0)	/* DSS DATA 15 */
    			0x0e0 (PIN_OUTPUT | MUX_MODE0)	/* DSS VSYNC */
    			0x0e4 (PIN_OUTPUT | MUX_MODE0)	/* DSS HSYNC */
    			0x0e8 (PIN_OUTPUT | MUX_MODE0)	/* DSS PCLK */
    			0x0ec (PIN_OUTPUT | MUX_MODE0)	/* DSS AC BIAS EN */
    
    		>;
    	};
    
    	qspi_pins: qspi_pins {
    		pinctrl-single,pins = <
    			0x7c (PIN_OUTPUT | MUX_MODE3)	/* gpmc_csn0.qspi_csn */
    			0x88 (PIN_OUTPUT | MUX_MODE2)	/* gpmc_csn3.qspi_clk */
    			0x90 (PIN_INPUT | MUX_MODE3)	/* gpmc_advn_ale.qspi_d0 */
    			0x94 (PIN_INPUT | MUX_MODE3)	/* gpmc_oen_ren.qspi_d1 */
    			0x98 (PIN_INPUT | MUX_MODE3)	/* gpmc_wen.qspi_d2 */
    			0x9c (PIN_INPUT | MUX_MODE3)	/* gpmc_be0n_cle.qspi_d3 */
    		>;
    	};
    
    	mcasp1_pins: mcasp1_pins {
    		pinctrl-single,pins = <
    			0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4)	/* mii1_crs.mcasp1_aclkx */
    			0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4)	/* mii1_rxerr.mcasp1_fsx */
    			0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4)	/* mii1_col.mcasp1_axr2 */
    			0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4)	/* rmii1_ref_clk.mcasp1_axr3 */
    		>;
    	};
    
    	mcasp1_pins_sleep: mcasp1_pins_sleep {
    		pinctrl-single,pins = <
    			0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    			0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
    		>;
    	};
    
    	lcd_pins: lcd_pins {
    		pinctrl-single,pins = <
    			0x1c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpcm_ad7.gpio1_7 */
    		>;
    	};
    
    	usb1_pins: usb1_pins {
    		pinctrl-single,pins = <
    			0x2c0 (PIN_OUTPUT | MUX_MODE0) /* usb0_drvvbus.usb0_drvvbus */
    		>;
    	};
    
    	usb2_pins: usb2_pins {
    		pinctrl-single,pins = <
    			0x2c4 (PIN_OUTPUT | MUX_MODE0) /* usb0_drvvbus.usb0_drvvbus */
    		>;
    	};
    
    	mmc3_pins_default: pinmux_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_pins_sleep: pinmux_mmc3_pins_sleep {
    		pinctrl-single,pins = <
    			0x1f0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD21) cam1_data2.mmc2_clk */
    			0x1f4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AE22) cam1_data3.mmc2_cmd */
    			0x1f8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD22) cam1_data4.mmc2_dat0 */
    			0x1fc (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AE23) cam1_data5.mmc2_dat1 */
    			0x200 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD23) cam1_data6.mmc2_dat2 */
    			0x204 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AE24) cam1_data7.mmc2_dat3 */
    		>;
    	};
    
    	wlan_pins_default: pinmux_wlan_pins_default {
    		pinctrl-single,pins = <
    			0x1d0 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)		/* cam1_data8.gpio4_8 WL_EN */
    			0x1e4 (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)	/* cam1_wen.gpio4_13 WL_IRQ */
    		>;
    	};
    
    	wlan_pins_sleep: pinmux_wlan_pins_sleep {
    		pinctrl-single,pins = <
    			0x1d0 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)		/* cam1_data8.gpio4_8 WL_EN */
    			0x1e4 (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)	/* cam1_wen.gpio4_13 WL_IRQ */
    		>;
    	};
    
    	uart1_bt_pins_default: pinmux_uart1_bt_pins_default {
    		pinctrl-single,pins = <
    			0x180 (PIN_INPUT | MUX_MODE0)		/* uart1_rxd.uart1_rxd */
    			0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
    			0x178 (PIN_INPUT_PULLUP | MUX_MODE0)	/* uart1_ctsn.uart1_ctsn */
    			0x17c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */
    			0x1cc (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* cam1_data9.gpiop BT_EN */
    		>;
    	};
    
    	uart1_bt_pins_sleep: pinmux_uart1_bt_pins_sleep {
    		pinctrl-single,pins = <
    			0x180 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* uart1_rxd.uart1_rxd */
    			0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_txd.uart1_txd */
    			0x178 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)	/* uart1_ctsn.uart1_ctsn */
    			0x17c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_rtsn.uart1_rtsn */
    			0x1cc (PIN_OUTPUT_PULLUP | MUX_MODE7)	/* cam1_data9.gpio4_7 BT_EN */
    		>;
    	};
    };
    
    &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 {
    			compatible = "ti,tps65218-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 {
    			compatible = "ti,tps65218-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 {
    			compatible = "ti,tps65218-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 {
    			compatible = "ti,tps65218-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 {
    			compatible = "ti,tps65218-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>;
    
    		port {
    			ov2659_1: endpoint {
    				remote-endpoint = <&vpfe0_ep>;
    				link-frequencies = /bits/ 64 <70000000>;
    			};
    		};
    	};
    
    	edt-ft5306@38 {
    		status = "okay";
    		compatible = "edt,edt-ft5306", "edt,edt-ft5x06";
    		pinctrl-names = "default";
    		pinctrl-0 = <&edt_ft5306_ts_pins>;
    
    		reg = <0x38>;
    		interrupt-parent = <&gpio0>;
    		interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
    
    		reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
    
    		touchscreen-size-x = <480>;
    		touchscreen-size-y = <272>;
    	};
    
    	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>;
    	};
    
    	lis331dlh@18 {
    		compatible = "st,lis331dlh";
    		reg = <0x18>;
    		status = "okay";
    
    		Vdd-supply = <&dcdc4>;
    		Vdd_IO-supply = <&dcdc4>;
    		interrupts-extended = <&gpio1 6 0>, <&gpio2 1 0>;
    	};
    };
    
    &epwmss0 {
    	status = "okay";
    };
    
    &ecap0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&ecap0_pins>;
    };
    
    &gpio0 {
    	status = "okay";
    };
    
    &gpio1 {
    	status = "okay";
    };
    
    &gpio4 {
    	status = "okay";
    };
    
    &gpio5 {
    	status = "okay";
    };
    
    &mmc1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&on_board_emmc_pins_default>;
    	/* SK EVM pins for MMC0 pinctrl-0 = <&mmc1_pins>;*/
    
    	vmmc-supply = <&dcdc4>;
    	bus-width = <8>;
        ti,non-removable;
    	/*cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;*/
    };
    
    &uart1 {
    	status = "okay";
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&uart1_bt_pins_default>;
    	pinctrl-1 = <&uart1_bt_pins_sleep>;
    };
    
    &mmc3 {
    	status = "okay";
    	/* these are on the crossbar and are outlined in the
    	 * xbar-event-map element
    	 */
    	dmas = <&edma_xbar 30 0 1>,
    		<&edma_xbar 31 0 2>;
    	dma-names = "tx", "rx";
    	vmmc-supply = <&vmmcwl_fixed>;
    	bus-width = <4>;
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&mmc3_pins_default>;
    	pinctrl-1 = <&mmc3_pins_sleep>;
    	cap-power-off-card;
    	keep-power-in-suspend;
    	ti,non-removable;
    
    	#address-cells = <1>;
    	#size-cells = <0>;
    	wlcore: wlcore@0 {
    		compatible = "ti,wl1835";
    		pinctrl-names = "default", "sleep";
    		pinctrl-0 = <&wlan_pins_default>;
    		pinctrl-1 = <&wlan_pins_sleep>;
    		reg = <2>;
    		interrupt-parent = <&gpio4>;
    		interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
    	};
    };
    
    &edma {
    	ti,edma-xbar-event-map = /bits/ 16 <1 30
    					    2 31>;
    };
    
    &usb2_phy1 {
    	status = "okay";
    };
    
    &usb1 {
    	dr_mode = "otg";
    	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 = <&ethernet_phy_pins_default>;
    	pinctrl-1 = <&ethernet_phy_pins_default>;
    	/* SK EVM pinctrl-0 = <&cpsw_default>;*/
    	/* SK EVM pinctrl-1 = <&cpsw_sleep>;*/
    	dual_emac = <1>;
    	status = "okay";
    };
    
    &davinci_mdio {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&ethernet_mdio_pins_default>;
    	pinctrl-1 = <&ethernet_mdio_pins_sleep>;
    	status = "okay";
    };
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <4>;
    	phy-mode = "rmii";
    };
    
    &cpsw_emac1 {
    	phy_id = <&davinci_mdio>, <5>;
    	phy-mode = "rmii";
    };
    
    &elm {
    	status = "okay";
    };
    
    /*  SK EVM, Not used on GC150
    &mcasp1 {
    	#sound-dai-cells = <0>;
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&mcasp1_pins>;
    	pinctrl-1 = <&mcasp1_pins_sleep>;
    
    	status = "okay";
    
    	op-mode = <0>;
    	tdm-slots = <2>;
    	serial-dir = <
    		0 0 1 2
    	>;
    
    	tx-num-evt = <1>;
    	rx-num-evt = <1>;
    };*/
    
    &dss {
    	status = "okay";
    
    	pinctrl-names = "default";
    	pinctrl-0 = <&dss_pins>;
    
    	port {
    		dpi_out: endpoint@0 {
    			remote-endpoint = <&lcd_in>;
    			data-lines = <24>;
    		};
    	};
    };
    
    &rtc {
    	clocks = <&clk_32k_rtc>, <&clk_32768_ck>;
    	clock-names = "ext-clk", "int-clk";
    	system-power-controller;
    	status = "okay";
    };
    
    &wdt {
    	status = "okay";
    };
    
    &cpu {
    	cpu0-supply = <&dcdc2>;
    };
    
    &vpfe0 {
    	status = "okay";
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&vpfe0_pins_default>;
    	pinctrl-1 = <&vpfe0_pins_sleep>;
    
    	/* Camera port */
    	port {
    		vpfe0_ep: endpoint {
    			remote-endpoint = <&ov2659_1>;
    			ti,am437x-vpfe-interface = <0>;
    			bus-width = <8>;
    			hsync-active = <0>;
    			vsync-active = <0>;
    		};
    	};
    };
    
    &wkup_m3_ipc {
    	ti,scale-data-fw = "am43x-evm-scale-data.bin";
    };
    
    &sgx {
    	status = "okay";
    };
    

    The boot process log:

    U-Boot SPL 2016.05-00123-ge1e1700 (May 25 2017 - 13:02:26)
    Trying to boot from USB eth
    Using default environment
    
    usb_ether
    Error: usb_ether address not set.
    
    using dwc3-gadget, OUT ep2out IN ep1in STATUS ep3in
    MAC c4:be:84:cb:56:13
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    DHCP client bound to address 192.168.43.53 (2812 ms)
    Using usb_ether device
    TFTP from server 192.168.43.44; our IP address is 192.168.43.53
    Filename 'u-boot-restore.img'.
    Load address: 0x80800000
    Loading: #########################################
             6.1 MiB/s
    done
    Bytes transferred = 595656 (916c8 hex)
    
    
    U-Boot 2016.05-00123-ge1e1700 (May 25 2017 - 13:02:26 -0600)
    
    I2C:   ready
    DRAM:  256 MiB
    PMIC:  TPS65218
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0
    MMC: no card present
    ** Bad device mmc 0 **
    Using default environment
    
    Net:   <ethaddr> not set. Validating first E-fuse MAC
    Could not get PHY for cpsw: addr 0
    cpsw, usb_ether
    Hit any key to stop autoboot:  0
    using dwc3-gadget, OUT ep2out IN ep1in STATUS ep3in
    MAC c4:be:84:cb:56:15
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    BOOTP broadcast 1
    BOOTP broadcast 2
    BOOTP broadcast 3
    BOOTP broadcast 4
    DHCP client bound to address 192.168.43.54 (2807 ms)
    Using usb_ether device
    TFTP from server 192.168.43.44; our IP address is 192.168.43.54
    Filename 'zImage'.
    Load address: 0x82000000
    Loading: #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             ####################################################
             3.7 MiB/s
    done
    Bytes transferred = 14112512 (d75700 hex)
    using dwc3-gadget, OUT ep2out IN ep1in STATUS ep3in
    MAC c4:be:84:cb:56:15
    HOST MAC de:ad:be:af:00:00
    RNDIS ready
    high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
    USB RNDIS network up!
    Using usb_ether device
    TFTP from server 192.168.43.44; our IP address is 192.168.43.54
    Filename 'am437x-sk-evm.dtb'.
    Load address: 0x88000000
    Loading: ####
             3.1 MiB/s
    done
    Bytes transferred = 49304 (c098 hex)
    Kernel image @ 0x82000000 [ 0x000000 - 0xd75700 ]
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8eeff000, end 8ef0e097 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Initializing cgroup subsys cpuacct
    [    0.000000] Linux version 4.4.19-gab4071c-dirty (gfenty@RandD-1.littelfus9-2015.05) ) #15 PREEMPT Thu Jun 1 14:27:18 CST 2017
    [    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instru
    [    0.000000] Machine model: TI AM437x SK EVM
    [    0.000000] cma: Reserved 24 MiB at 0x8d000000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM437x ES1.2 (neon )
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total
    [    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/ram0 rwev_addr=02:DC:C8:F8:75:35
    [    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 byte
    [    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Memory: 214000K/262144K available (7171K kernel code, 303K rw576K 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 : 0xd0800000 - 0xff800000   ( 752 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
    [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
    [    0.000000]       .text : 0xc0008000 - 0xc0975064   (9653 kB)
    [    0.000000]       .init : 0xc0976000 - 0xc13b6000   (10496 kB)
    [    0.000000]       .data : 0xc13b6000 - 0xc1401d68   ( 304 kB)
    [    0.000000]        .bss : 0xc1403000 - 0xc1445870   ( 267 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 -> 0x
    [    0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 ->
    [    0.000000] L2C-310 erratum 769419 enabled
    [    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.000012] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 8
    [    0.000032] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff,
    [    0.000042] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000607] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffff
    [    0.000620] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.001119] Console: colour dummy device 80x30
    [    0.001147] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [    0.001154] This ensures that you still see kernel messages. Please
    [    0.001159] update your kernel commandline.
    [    0.001174] Calibrating delay loop... 1594.16 BogoMIPS (lpj=7970816)
    [    0.090207] pid_max: default: 32768 minimum: 301
    [    0.090321] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.090333] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 byt
    [    0.091017] Initializing cgroup subsys io
    [    0.091045] Initializing cgroup subsys memory
    [    0.091083] Initializing cgroup subsys devices
    [    0.091097] Initializing cgroup subsys freezer
    [    0.091112] Initializing cgroup subsys perf_event
    [    0.091125] Initializing cgroup subsys pids
    [    0.091151] CPU: Testing write buffer coherency: ok
    [    0.091521] Setting up static identity map for 0x80008200 - 0x80008258
    [    0.092995] devtmpfs: initialized
    [    0.105586] VFP support v0.3: implementor 41 architecture 3 part 30 varia
    [    0.181887] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff
    [    0.184080] pinctrl core: initialized pinctrl subsystem
    [    0.185305] NET: Registered protocol family 16
    [    0.187581] DMA: preallocated 256 KiB pool for atomic coherent allocation
    [    0.210216] cpuidle: using governor ladder
    [    0.240204] cpuidle: using governor menu
    [    0.246663] OMAP GPIO hardware version 0.1
    [    0.255889] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpo
    [    0.255909] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.297649] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.301585] vgaarb: loaded
    [    0.302124] SCSI subsystem initialized
    [    0.302405] usbcore: registered new interface driver usbfs
    [    0.302465] usbcore: registered new interface driver hub
    [    0.302556] usbcore: registered new device driver usb
    [    0.303186] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/lbe
    [    0.303237] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp/lbe
    [    0.303355] media: Linux media interface: v0.10
    [    0.303410] Linux video capture interface: v2.00
    [    0.303468] pps_core: LinuxPPS API ver. 1 registered
    [    0.303476] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo G
    [    0.303504] PTP clock support registered
    [    0.303734] EDAC MC: Ver: 3.0.0
    [    0.304687] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.305020] Advanced Linux Sound Architecture Driver Initialized.
    [    0.306079] clocksource: Switched to clocksource timer1
    [    0.315822] NET: Registered protocol family 2
    [    0.316612] TCP established hash table entries: 2048 (order: 1, 8192 byte
    [    0.316647] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.316680] TCP: Hash tables configured (established 2048 bind 2048)
    [    0.316775] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.316793] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.316939] NET: Registered protocol family 1
    [    0.317290] RPC: Registered named UNIX socket transport module.
    [    0.317303] RPC: Registered udp transport module.
    [    0.317310] RPC: Registered tcp transport module.
    [    0.317316] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    1.102893] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    1.109753] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    1.110491] NFS: Registering the id_resolver key type
    [    1.110554] Key type id_resolver registered
    [    1.110563] Key type id_legacy registered
    [    1.110631] ntfs: driver 2.1.32 [Flags: R/O].
    [    1.112481] Block layer SCSI generic (bsg) driver version 0.4 loaded (maj
    [    1.112508] io scheduler noop registered
    [    1.112520] io scheduler deadline registered
    [    1.112561] io scheduler cfq registered (default)
    [    1.115718] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size
    [    1.118802] backlight supply power not found, using dummy regulator
    [    1.171498] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    1.174306] omap8250 44e09000.serial: No clock speed specified: using def
    [    1.175033] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_bau
    [    1.869245] console [ttyS0] enabled
    [    1.873254] omap8250 48022000.serial: No clock speed specified: using def
    [    1.881982] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 31, base_bau
    [    1.891849] [drm] Initialized drm 1.1.0 20060810
    [    1.897957] 4832a000.dss supply vdda_video not found, using dummy regulat
    [    1.905064] OMAP DSS rev 2.0
    [    1.908186] omapdss_dss 4832a000.dss: bound 4832a400.dispc (ops dispc_com
    [    1.925038] loop: module loaded
    [    1.931128] m25p80 spi32766.0: mx66l51235l (65536 Kbytes)
    [    1.936691] 7 ofpart partitions found on MTD device spi32766.0
    [    1.942553] Creating 7 MTD partitions on "spi32766.0":
    [    1.947740] 0x000000000000-0x000000080000 : "QSPI.U_BOOT"
    [    1.954318] 0x000000080000-0x000000100000 : "QSPI.U_BOOT.backup"
    [    1.961424] 0x000000100000-0x000000110000 : "QSPI.U-BOOT-SPL_OS"
    [    1.968416] 0x000000110000-0x000000120000 : "QSPI.U_BOOT_ENV"
    [    1.975085] 0x000000120000-0x000000130000 : "QSPI.U-BOOT-ENV.backup"
    [    1.982471] 0x000000130000-0x000000930000 : "QSPI.KERNEL"
    [    1.988894] 0x000000930000-0x000004000000 : "QSPI.FILESYSTEM"
    [    1.997214] libphy: Fixed MDIO Bus: probed
    [    2.066138] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    2.072275] davinci_mdio 4a101000.mdio: detected phy mask fffffff9
    [    2.088104] libphy: 4a101000.mdio: probed
    [    2.092159] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01,
    [    2.101962] davinci_mdio 4a101000.mdio: phy[2]: device 4a101000.mdio:02,
    [    2.112711] cpsw 4a100000.ethernet: Detected MACID = c4:be:84:cb:56:13
    [    2.120140] cpsw 4a100000.ethernet: cpsw: Detected MACID = c4:be:84:cb:56
    [    2.127964] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet
    [    2.135489] usbcore: registered new interface driver pegasus
    [    2.141296] usbcore: registered new interface driver asix
    [    2.146794] usbcore: registered new interface driver ax88179_178a
    [    2.152959] usbcore: registered new interface driver cdc_ether
    [    2.158894] usbcore: registered new interface driver smsc75xx
    [    2.164731] usbcore: registered new interface driver smsc95xx
    [    2.170568] usbcore: registered new interface driver net1080
    [    2.176434] usbcore: registered new interface driver cdc_subset
    [    2.182429] usbcore: registered new interface driver zaurus
    [    2.188141] usbcore: registered new interface driver cdc_ncm
    [    2.599045] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [    2.605624] ehci-pci: EHCI PCI platform driver
    [    2.610210] ehci-platform: EHCI generic platform driver
    [    2.615699] ehci-omap: OMAP-EHCI Host Controller driver
    [    2.621110] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    [    2.627361] ohci-pci: OHCI PCI platform driver
    [    2.631889] ohci-platform: OHCI generic platform driver
    [    2.637665] usbcore: registered new interface driver usb-storage
    [    2.643867] using random self ethernet address
    [    2.648376] using random host ethernet address
    [    2.652845] using host ethernet address: 02:DC:C8:F7:75:37
    [    2.658193] using self ethernet address: 02:DC:C8:F8:75:35[    2.664252]
    [    2.668668] usb0: MAC 02:dc:c8:f8:75:35
    [    2.672561] using random self ethernet address
    [    2.677050] using random host ethernet address
    [    2.681591] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
    [    2.688293] g_ether gadget: g_ether ready
    [    2.693112] mousedev: PS/2 mouse device common for all mice
    [    2.699824] i2c /dev entries driver
    [    2.704954] cpuidle: enable-method property 'ti,am4372' found operations
    [    2.711964] sdhci: Secure Digital Host Controller Interface driver
    [    2.718219] sdhci: Copyright(c) Pierre Ossman
    [    2.786400] Synopsys Designware Multimedia Card Interface Driver
    [    2.796201] sdhci-pltfm: SDHCI platform and OF driver helper
    [    2.803827] ledtrig-cpu: registered to indicate activity on CPUs
    [    2.810246] usbcore: registered new interface driver usbhid
    [    2.815907] usbhid: USB HID core driver
    [    2.823376] NET: Registered protocol family 10
    [    2.829379] sit: IPv6 over IPv4 tunneling driver
    [    2.834714] NET: Registered protocol family 17
    [    2.839665] Key type dns_resolver registered
    [    2.844186] omap_voltage_late_init: Voltage driver support not added
    [    2.851722] ThumbEE CPU extension supported.
    [    2.856042] Registering SWP/SWPB emulation handler
    [    2.863748] omapdrm omapdrm.0: DMM not available, disable DMM support
    [    2.871284] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
    [    2.878067] [drm] No driver support for vblank timestamp query.
    [    2.924987] Console: switching to colour frame buffer device 60x34
    [    2.947898] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
    [    2.976125] [drm] Initialized omapdrm 1.0.0 20110917 on minor 0
    [    3.015443] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/wri
    [    3.022546] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
    [    3.029783] omap_i2c 4802a000.i2c: bus 1 rev0.12 at 400 kHz
    [    3.064221] g_ether gadget: high-speed config #1: CDC Ethernet (ECM)
    [    3.078140] hctosys: unable to open rtc device (rtc0)
    [    3.091083] vmmcwl_fixed: disabling
    [    3.094830] ALSA device list:
    [    3.097971]   No soundcards found.
    [    3.101561] Warning: unable to open an initial console.
    [    3.128039] Freeing unused kernel memory: 10496K (c0976000 - c13b6000)
    [    3.134608] This architecture does not have kernel memory protection.
    [    3.155051] mmc1: MAN_BKOPS_EN bit is not set
    [    3.162801] mmc1: new high speed MMC card at address 0001
    [    3.169068] mmcblk0: mmc1:0001 Q2J54A 3.59 GiB
    [    3.173900] mmcblk0boot0: mmc1:0001 Q2J54A partition 1 16.0 MiB
    [    3.180330] mmcblk0boot1: mmc1:0001 Q2J54A partition 2 16.0 MiB
    [    3.187676]  mmcblk0: p1 p2
    [    4.069055] udevd[91]: starting version 182
    udevd[188]: failed to execute '/etc/udev/scripts/mount.sh' '/etc/udev/script
    
    udevd[189]: failed to execute '/etc/udev/scripts/mount.sh' '/etc/udev/script
    
    [    8.130940] net eth0: initializing cpsw version 1.15 (0)
    [    8.136376] net eth0: initialized cpsw ale version 1.4
    [    8.141541] net eth0: ALE Table size 1024
    [    8.147310] libphy: PHY 4a101000.mdio:04 not found
    [    8.152128] net eth0: phy "4a101000.mdio:04" not found on slave 0, err -1
    [    8.165955] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
    [   17.616519] NOHZ: local_softirq_pending 08
    [   17.933817] NOHZ: local_softirq_pending 08
    [   17.997809] NOHZ: local_softirq_pending 08
    [   18.618193] NOHZ: local_softirq_pending 08
    [   18.934466] NOHZ: local_softirq_pending 08
    [   18.942331] NOHZ: local_softirq_pending 08
    [   19.034711] NOHZ: local_softirq_pending 08
    [   19.141165] NOHZ: local_softirq_pending 08
    [   19.173404] NOHZ: local_softirq_pending 08
    [   19.391992] NOHZ: local_softirq_pending 08
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project http://arago-project.org GC150-Demo /dev/ttyO0
    
    Arago 2016.02 GC150-Demo /dev/ttyO0
    
    GC150-Demo login: root

    The ifconfig results:

    root@GC150-Demo:~# ifconfig eth0
    eth0      Link encap:Ethernet  HWaddr C4:BE:84:CB:56:13
              UP BROADCAST MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
              Interrupt:173

  • /*
     * Copyright (C) 2014 Texas Instruments Incorporated - <a href="www.ti.com/.../a>
     *
     * 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>
    #include <dt-bindings/interrupt-controller/irq.h>
    
    / {
        model = "TI AM437x SK EVM";
        compatible = "ti,am437x-sk-evm","ti,am4372","ti,am43";
    
        aliases {
            display0 = &lcd0;
        };
    
        /* fixed 32k external oscillator clock */
        clk_32k_rtc: clk_32k_rtc {
            #clock-cells = <0>;
            compatible = "fixed-clock";
            clock-frequency = <32768>;
        };
    
        backlight {
            compatible = "pwm-backlight";
            pwms = <&ecap0 0 50000 PWM_POLARITY_INVERTED>;
            brightness-levels = <0 51 53 56 62 75 101 152 255>;
            default-brightness-level = <8>;
        };
    
        /* SK EVM, not used on GC150
        sound {
            compatible = "simple-audio-card";
            simple-audio-card,name = "AM437x-SK-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 = <24000000>;
            };
        };*/
    
        matrix_keypad: matrix_keypad@0 {
            compatible = "gpio-matrix-keypad";
    
            pinctrl-names = "default";
            pinctrl-0 = <&matrix_keypad_pins>;
    
            debounce-delay-ms = <5>;
            col-scan-delay-us = <5>;
    
            row-gpios = <&gpio5 5 GPIO_ACTIVE_HIGH       /* Bank5, pin5 */
                    &gpio5 6 GPIO_ACTIVE_HIGH>;  /* Bank5, pin6 */
    
            col-gpios = <&gpio5 13 GPIO_ACTIVE_HIGH      /* Bank5, pin13 */
                    &gpio5 4 GPIO_ACTIVE_HIGH>;  /* Bank5, pin4 */
    
            linux,keymap = <
                    MATRIX_KEY(0, 0, KEY_DOWN)
                    MATRIX_KEY(0, 1, KEY_RIGHT)
                    MATRIX_KEY(1, 0, KEY_LEFT)
                    MATRIX_KEY(1, 1, KEY_UP)
                >;
        };
    
        leds {
            compatible = "gpio-leds";
    
            pinctrl-names = "default";
            pinctrl-0 = <&leds_pins>;
    
            led@0 {
                label = "am437x-sk:red:heartbeat";
                gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;  /* Bank 5, pin 0 */
                linux,default-trigger = "heartbeat";
                default-state = "off";
            };
    
            led@1 {
                label = "am437x-sk:green:mmc1";
                gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;  /* Bank 5, pin 1 */
                linux,default-trigger = "mmc0";
                default-state = "off";
            };
    
            led@2 {
                label = "am437x-sk:blue:cpu0";
                gpios = <&gpio5 2 GPIO_ACTIVE_HIGH>;  /* Bank 5, pin 2 */
                linux,default-trigger = "cpu0";
                default-state = "off";
            };
    
            led@3 {
                label = "am437x-sk:blue:usr3";
                gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;  /* Bank 5, pin 3 */
                default-state = "off";
            };
        };
    
        lcd0: display {
            compatible = "newhaven,nhd-4.3-480272ef-atxl", "panel-dpi";
            label = "lcd";
    
            pinctrl-names = "default";
            pinctrl-0 = <&lcd_pins>;
            
            /*backlight = <&lcd_bl>;*/
    
            enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
    
            panel-timing {
                clock-frequency = <9000000>;
                hactive = <480>;
                vactive = <272>;
                hfront-porch = <2>;
                hback-porch = <2>;
                hsync-len = <41>;
                vfront-porch = <2>;
                vback-porch = <2>;
                vsync-len = <10>;
                hsync-active = <0>;
                vsync-active = <0>;
                de-active = <1>;
                pixelclk-active = <1>;
            };
    
            port {
                lcd_in: endpoint {
                    remote-endpoint = <&dpi_out>;
                };
            };
        };
    
        vmmcwl_fixed: fixedregulator-mmcwl {
            compatible = "regulator-fixed";
            regulator-name = "vmmcwl_fixed";
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
            gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>;
            enable-active-high;
        };
    };
    
    &am43xx_pinmux {
        matrix_keypad_pins: matrix_keypad_pins {
            pinctrl-single,pins = <
                0x24c (PIN_OUTPUT | MUX_MODE7)  /* gpio5_13.gpio5_13 */
                0x250 (PIN_OUTPUT | MUX_MODE7)  /* spi4_sclk.gpio5_4 */
                0x254 (PIN_INPUT | MUX_MODE7)   /* spi4_d0.gpio5_5 */
                0x258 (PIN_INPUT | MUX_MODE7)   /* spi4_d1.gpio5_5 */
            >;
        };
    
        leds_pins: leds_pins {
            pinctrl-single,pins = <
                0x228 (PIN_OUTPUT | MUX_MODE7)  /* uart3_rxd.gpio5_2 */
                0x22c (PIN_OUTPUT | MUX_MODE7)  /* uart3_txd.gpio5_3 */
                0x230 (PIN_OUTPUT | MUX_MODE7)  /* uart3_ctsn.gpio5_0 */
                0x234 (PIN_OUTPUT | MUX_MODE7)  /* uart3_rtsn.gpio5_1 */
            >;
        };
    
        i2c0_pins: i2c0_pins {
            pinctrl-single,pins = <
                0x188 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0)  /* i2c0_sda.i2c0_sda */
                0x18c (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0)  /* i2c0_scl.i2c0_scl */
            >;
        };
    
        i2c1_pins: i2c1_pins {
            pinctrl-single,pins = <
                0x15c (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE2)  /* spi0_cs0.i2c1_scl */
                0x158 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE2)  /* spi0_d1.i2c1_sda  */
            >;
        };
    
        on_board_emmc_pins_default: on_board_emmc_pins_default {
            pinctrl-single,pins = <
                0xf0 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (B1) mmc0_dat3.mmc0_dat3 */
                0xf4 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (B2) mmc0_dat2.mmc0_dat2 */
                0xf8 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (C2) mmc0_dat1.mmc0_dat1 */
                0xfc ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (C1) mmc0_dat0.mmc0_dat0 */
                0x100 ( PIN_INPUT | MUX_MODE0 ) /* (D1) mmc0_clk.mmc0_clk */
                0x104 ( PIN_INPUT_PULLUP | MUX_MODE0 ) /* (D2) mmc0_cmd.mmc0_cmd */
                0x12c ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (D14) mii1_tx_clk.mmc0_dat7 */
                0x130 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (D13) mii1_rx_clk.mmc0_dat6 */
                0x134 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (C14) mii1_rxd3.mmc0_dat5 */
                0x138 ( PIN_INPUT_PULLUP | MUX_MODE3 ) /* (E16) mii1_rxd2.mmc0_dat4 */
            >;
        };
        
        /* the original device tree pin assignments for the MMC0 device */
        mmc1_pins: pinmux_mmc1_pins {
            pinctrl-single,pins = <
                0x0f0 (PIN_INPUT | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
                0x0f4 (PIN_INPUT | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
                0x0f8 (PIN_INPUT | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
                0x0fc (PIN_INPUT | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
                0x100 (PIN_INPUT | MUX_MODE0) /* mmc0_clk.mmc0_clk */
                0x104 (PIN_INPUT | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
                0x160 (PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio0_6 */
            >;
        };
    
        ecap0_pins: backlight_pins {
            pinctrl-single,pins = <
                0x164 (PIN_OUTPUT | MUX_MODE0) /* eCAP0_in_PWM0_out.eCAP0_in_PWM0_out */
            >;
        };
    
        edt_ft5306_ts_pins: edt_ft5306_ts_pins {
            pinctrl-single,pins = <
                0x74 (PIN_INPUT | MUX_MODE7)    /* gpmc_wpn.gpio0_31 */
                0x78 (PIN_OUTPUT | MUX_MODE7)   /* gpmc_be1n.gpio1_28 */
            >;
        };
    
        vpfe0_pins_default: vpfe0_pins_default {
            pinctrl-single,pins = <
                0x1b0 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_hd mode 0*/
                0x1b4 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_vd mode 0*/
                0x1b8 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_field mode 0*/
                0x1bc (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_wen mode 0*/
                0x1c0 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_pclk mode 0*/
                0x1c4 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data8 mode 0*/
                0x1c8 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data9 mode 0*/
                0x208 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data0 mode 0*/
                0x20c (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data1 mode 0*/
                0x210 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data2 mode 0*/
                0x214 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data3 mode 0*/
                0x218 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data4 mode 0*/
                0x21c (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data5 mode 0*/
                0x220 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data6 mode 0*/
                0x224 (PIN_INPUT_PULLUP | MUX_MODE0)  /* cam0_data7 mode 0*/
            >;
        };
    
        vpfe0_pins_sleep: vpfe0_pins_sleep {
            pinctrl-single,pins = <
                0x1b0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x1b4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x1b8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x1bc (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x1c0 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x1c4 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x1c8 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x208 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x20c (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x210 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x214 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x218 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x21c (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x220 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
                0x224 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
            >;
        };
    
        clkout1_pin: pinmux_clkout1_pin {
            pinctrl-single,pins = <
                0x270 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* XDMA_EVENT_INTR0/CLKOUT1 */
            >;
        };
    
        /* GC150 */
        ethernet_phy_pins_default: ethernet_phy_pins_default {
            pinctrl-single,pins = <
                /* phy 1 */
                0x10c ( PIN_INPUT | MUX_MODE1 ) /* (B14) mii1_crs.rmii1_crs_dv */
                0x110 ( PIN_INPUT | MUX_MODE1 ) /* (B13) mii1_rx_er.rmii1_rxer */
                0x114 ( PIN_OUTPUT | MUX_MODE1 ) /* (A13) mii1_tx_en.rmii1_txen */
                0x124 ( PIN_OUTPUT | MUX_MODE1 ) /* (A14) mii1_txd1.rmii1_txd1 */
                0x128 ( PIN_OUTPUT | MUX_MODE1 ) /* (B15) mii1_txd0.rmii1_txd0 */
                0x13c ( PIN_INPUT | MUX_MODE1 ) /* (B16) mii1_rxd1.rmii1_rxd1 */
                0x140 ( PIN_INPUT | MUX_MODE1 ) /* (F17) mii1_rxd0.rmii1_rxd0 */
                0x144 ( PIN_INPUT | MUX_MODE0 ) /* (A16) rmii1_ref_clk.rmii1_refclk */
    
                /* phy 2 */
                0x40 ( PIN_OUTPUT | MUX_MODE3 ) /* (C3) gpmc_a0.rmii2_txen */
                0x50 ( PIN_OUTPUT | MUX_MODE3 ) /* (D7) gpmc_a4.rmii2_txd1 */
                0x54 ( PIN_OUTPUT | MUX_MODE3 ) /* (E7) gpmc_a5.rmii2_txd0 */
                0x6c ( PIN_INPUT | MUX_MODE3 ) /* (D8) gpmc_a11.rmii2_rxd0 */
                0x68 ( PIN_INPUT | MUX_MODE3 ) /* (G8) gpmc_a10.rmii2_rxd1 */
                0x70 ( PIN_INPUT | MUX_MODE3 ) /* (A2) gpmc_wait0.rmii2_crs_dv */
                0x74 ( PIN_INPUT | MUX_MODE3 ) /* (B3) gpmc_wpn.rmii2_rxer */
                0x108 ( PIN_INPUT | MUX_MODE1 ) /* (D16) mii1_col.rmii2_refclk */
            >;
        };
    
        ethernet_phy_pins_sleep: ethernet_phy_pins_sleep{
            pinctrl-single,pins = <
                /* phy 1*/
                0x10c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B14) mii1_crs.rmii1_crs_dv */
                0x110 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B13) mii1_rx_er.rmii1_rxer */
                0x114 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A13) mii1_tx_en.rmii1_txen */
                        0x124 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A14) mii1_txd1.rmii1_txd1 */
                        0x128 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B15) mii1_txd0.rmii1_txd0 */
                        0x13c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B16) mii1_rxd1.rmii1_rxd1 */
                        0x140 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F17) mii1_rxd0.rmii1_rxd0 */
                        0x144 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A16) rmii1_ref_clk.rmii1_refclk */
        
                     /* phy 2 */
                         0x40 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C3) gpmc_a0.rmii2_txen */
                         0x50 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D7) gpmc_a4.rmii2_txd1 */
                         0x54 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (E7) gpmc_a5.rmii2_txd0 */
                         0x6c ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D8) gpmc_a11.rmii2_rxd0 */
                         0x68 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (G8) gpmc_a10.rmii2_rxd1 */
                         0x70 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A2) gpmc_wait0.rmii2_crs_dv */
                         0x74 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B3) gpmc_wpn.rmii2_rxer */
                         0x108 ( PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D16) mii1_col.rmii2_refclk */
                >;
            };
    
        /* SK EVM and GC150 */
        ethernet_mdio_pins_default: ethernet_mdio_pins_default {
            pinctrl-single,pins = <
                /* MDIO */
                0x148 (PIN_INPUT | SLEWCTRL_FAST | MUX_MODE0)   /* mdio_data.mdio_data */
                0x14c (PIN_OUTPUT | MUX_MODE0)          /* mdio_clk.mdio_clk */
            >;
        };
    
        /* SK EVM and GC150 */
        ethernet_mdio_pins_sleep: ethernet_mdio_pins_sleep {
            pinctrl-single,pins = <
                /* MDIO reset value */
                0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
            >;
        };
    
        dss_pins: dss_pins {
            pinctrl-single,pins = <
                0x020 (PIN_OUTPUT | MUX_MODE1)  /* gpmc ad 8 -> DSS DATA 23 */
                0x024 (PIN_OUTPUT | MUX_MODE1)
                0x028 (PIN_OUTPUT | MUX_MODE1)
                0x02c (PIN_OUTPUT | MUX_MODE1)
                0x030 (PIN_OUTPUT | MUX_MODE1)
                0x034 (PIN_OUTPUT | MUX_MODE1)
                0x038 (PIN_OUTPUT | MUX_MODE1)
                0x03c (PIN_OUTPUT | MUX_MODE1)  /* gpmc ad 15 -> DSS DATA 16 */
                0x0a0 (PIN_OUTPUT | MUX_MODE0)  /* DSS DATA 0 */
                0x0a4 (PIN_OUTPUT | MUX_MODE0)
                0x0a8 (PIN_OUTPUT | MUX_MODE0)
                0x0ac (PIN_OUTPUT | MUX_MODE0)
                0x0b0 (PIN_OUTPUT | MUX_MODE0)
                0x0b4 (PIN_OUTPUT | MUX_MODE0)
                0x0b8 (PIN_OUTPUT | MUX_MODE0)
                0x0bc (PIN_OUTPUT | MUX_MODE0)
                0x0c0 (PIN_OUTPUT | MUX_MODE0)
                0x0c4 (PIN_OUTPUT | MUX_MODE0)
                0x0c8 (PIN_OUTPUT | MUX_MODE0)
                0x0cc (PIN_OUTPUT | MUX_MODE0)
                0x0d0 (PIN_OUTPUT | MUX_MODE0)
                0x0d4 (PIN_OUTPUT | MUX_MODE0)
                0x0d8 (PIN_OUTPUT | MUX_MODE0)
                0x0dc (PIN_OUTPUT | MUX_MODE0)  /* DSS DATA 15 */
                0x0e0 (PIN_OUTPUT | MUX_MODE0)  /* DSS VSYNC */
                0x0e4 (PIN_OUTPUT | MUX_MODE0)  /* DSS HSYNC */
                0x0e8 (PIN_OUTPUT | MUX_MODE0)  /* DSS PCLK */
                0x0ec (PIN_OUTPUT | MUX_MODE0)  /* DSS AC BIAS EN */
    
            >;
        };
    
        qspi_pins: qspi_pins {
            pinctrl-single,pins = <
                0x7c (PIN_OUTPUT | MUX_MODE3)   /* gpmc_csn0.qspi_csn */
                0x88 (PIN_OUTPUT | MUX_MODE2)   /* gpmc_csn3.qspi_clk */
                0x90 (PIN_INPUT | MUX_MODE3)    /* gpmc_advn_ale.qspi_d0 */
                0x94 (PIN_INPUT | MUX_MODE3)    /* gpmc_oen_ren.qspi_d1 */
                0x98 (PIN_INPUT | MUX_MODE3)    /* gpmc_wen.qspi_d2 */
                0x9c (PIN_INPUT | MUX_MODE3)    /* gpmc_be0n_cle.qspi_d3 */
            >;
        };
    
        mcasp1_pins: mcasp1_pins {
            pinctrl-single,pins = <
                0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4)  /* mii1_crs.mcasp1_aclkx */
                0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4)  /* mii1_rxerr.mcasp1_fsx */
                0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
                0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4)  /* rmii1_ref_clk.mcasp1_axr3 */
            >;
        };
    
        mcasp1_pins_sleep: mcasp1_pins_sleep {
            pinctrl-single,pins = <
                0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
                0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
            >;
        };
    
        lcd_pins: lcd_pins {
            pinctrl-single,pins = <
                0x1c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpcm_ad7.gpio1_7 */
            >;
        };
    
        usb1_pins: usb1_pins {
            pinctrl-single,pins = <
                0x2c0 (PIN_OUTPUT | MUX_MODE0) /* usb0_drvvbus.usb0_drvvbus */
            >;
        };
    
        usb2_pins: usb2_pins {
            pinctrl-single,pins = <
                0x2c4 (PIN_OUTPUT | MUX_MODE0) /* usb0_drvvbus.usb0_drvvbus */
            >;
        };
    
        mmc3_pins_default: pinmux_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_pins_sleep: pinmux_mmc3_pins_sleep {
            pinctrl-single,pins = <
                0x1f0 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD21) cam1_data2.mmc2_clk */
                0x1f4 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AE22) cam1_data3.mmc2_cmd */
                0x1f8 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD22) cam1_data4.mmc2_dat0 */
                0x1fc (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AE23) cam1_data5.mmc2_dat1 */
                0x200 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AD23) cam1_data6.mmc2_dat2 */
                0x204 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* (AE24) cam1_data7.mmc2_dat3 */
            >;
        };
    
        wlan_pins_default: pinmux_wlan_pins_default {
            pinctrl-single,pins = <
                0x1d0 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)     /* cam1_data8.gpio4_8 WL_EN */
                0x1e4 (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)   /* cam1_wen.gpio4_13 WL_IRQ */
            >;
        };
    
        wlan_pins_sleep: pinmux_wlan_pins_sleep {
            pinctrl-single,pins = <
                0x1d0 (PIN_OUTPUT_PULLDOWN | MUX_MODE7)     /* cam1_data8.gpio4_8 WL_EN */
                0x1e4 (PIN_INPUT | WAKEUP_ENABLE | MUX_MODE7)   /* cam1_wen.gpio4_13 WL_IRQ */
            >;
        };
    
        uart1_bt_pins_default: pinmux_uart1_bt_pins_default {
            pinctrl-single,pins = <
                0x180 (PIN_INPUT | MUX_MODE0)       /* uart1_rxd.uart1_rxd */
                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
                0x178 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_ctsn.uart1_ctsn */
                0x17c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */
                0x1cc (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* cam1_data9.gpiop BT_EN */
            >;
        };
    
        uart1_bt_pins_sleep: pinmux_uart1_bt_pins_sleep {
            pinctrl-single,pins = <
                0x180 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_rxd.uart1_rxd */
                0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_txd.uart1_txd */
                0x178 (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_ctsn.uart1_ctsn */
                0x17c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* uart1_rtsn.uart1_rtsn */
                0x1cc (PIN_OUTPUT_PULLUP | MUX_MODE7)   /* cam1_data9.gpio4_7 BT_EN */
            >;
        };
    };
    
    &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 {
                compatible = "ti,tps65218-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 {
                compatible = "ti,tps65218-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 {
                compatible = "ti,tps65218-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 {
                compatible = "ti,tps65218-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 {
                compatible = "ti,tps65218-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>;
    
            port {
                ov2659_1: endpoint {
                    remote-endpoint = <&vpfe0_ep>;
                    link-frequencies = /bits/ 64 <70000000>;
                };
            };
        };
    
        edt-ft5306@38 {
            status = "okay";
            compatible = "edt,edt-ft5306", "edt,edt-ft5x06";
            pinctrl-names = "default";
            pinctrl-0 = <&edt_ft5306_ts_pins>;
    
            reg = <0x38>;
            interrupt-parent = <&gpio0>;
            interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
    
            reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
    
            touchscreen-size-x = <480>;
            touchscreen-size-y = <272>;
        };
    
        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>;
        };
    
        lis331dlh@18 {
            compatible = "st,lis331dlh";
            reg = <0x18>;
            status = "okay";
    
            Vdd-supply = <&dcdc4>;
            Vdd_IO-supply = <&dcdc4>;
            interrupts-extended = <&gpio1 6 0>, <&gpio2 1 0>;
        };
    };
    
    &epwmss0 {
        status = "okay";
    };
    
    &ecap0 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&ecap0_pins>;
    };
    
    &gpio0 {
        status = "okay";
    };
    
    &gpio1 {
        status = "okay";
    };
    
    &gpio4 {
        status = "okay";
    };
    
    &gpio5 {
        status = "okay";
    };
    
    &mmc1 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&on_board_emmc_pins_default>;
        /* SK EVM pins for MMC0 pinctrl-0 = <&mmc1_pins>;*/
    
        vmmc-supply = <&dcdc4>;
        bus-width = <8>;
        ti,non-removable;
        /*cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;*/
    };
    
    &uart1 {
        status = "okay";
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&uart1_bt_pins_default>;
        pinctrl-1 = <&uart1_bt_pins_sleep>;
    };
    
    &mmc3 {
        status = "okay";
        /* these are on the crossbar and are outlined in the
         * xbar-event-map element
         */
        dmas = <&edma_xbar 30 0 1>,
            <&edma_xbar 31 0 2>;
        dma-names = "tx", "rx";
        vmmc-supply = <&vmmcwl_fixed>;
        bus-width = <4>;
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&mmc3_pins_default>;
        pinctrl-1 = <&mmc3_pins_sleep>;
        cap-power-off-card;
        keep-power-in-suspend;
        ti,non-removable;
    
        #address-cells = <1>;
        #size-cells = <0>;
        wlcore: wlcore@0 {
            compatible = "ti,wl1835";
            pinctrl-names = "default", "sleep";
            pinctrl-0 = <&wlan_pins_default>;
            pinctrl-1 = <&wlan_pins_sleep>;
            reg = <2>;
            interrupt-parent = <&gpio4>;
            interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
        };
    };
    
    &edma {
        ti,edma-xbar-event-map = /bits/ 16 <1 30
                            2 31>;
    };
    
    &usb2_phy1 {
        status = "okay";
    };
    
    &usb1 {
        dr_mode = "otg";
        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 = <&ethernet_phy_pins_default>;
        pinctrl-1 = <&ethernet_phy_pins_default>;
        /* SK EVM pinctrl-0 = <&cpsw_default>;*/
        /* SK EVM pinctrl-1 = <&cpsw_sleep>;*/
        dual_emac = <1>;
        status = "okay";
    };
    
    &davinci_mdio {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&ethernet_mdio_pins_default>;
        pinctrl-1 = <&ethernet_mdio_pins_sleep>;
        status = "okay";
    };
    
    &cpsw_emac0 {
        phy_id = <&davinci_mdio>, <4>;
        phy-mode = "rmii";
    };
    
    &cpsw_emac1 {
        phy_id = <&davinci_mdio>, <5>;
        phy-mode = "rmii";
    };
    
    &elm {
        status = "okay";
    };
    
    /*  SK EVM, Not used on GC150
    &mcasp1 {
        #sound-dai-cells = <0>;
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&mcasp1_pins>;
        pinctrl-1 = <&mcasp1_pins_sleep>;
    
        status = "okay";
    
        op-mode = <0>;
        tdm-slots = <2>;
        serial-dir = <
            0 0 1 2
        >;
    
        tx-num-evt = <1>;
        rx-num-evt = <1>;
    };*/
    
    &dss {
        status = "okay";
    
        pinctrl-names = "default";
        pinctrl-0 = <&dss_pins>;
    
        port {
            dpi_out: endpoint@0 {
                remote-endpoint = <&lcd_in>;
                data-lines = <24>;
            };
        };
    };
    
    &rtc {
        clocks = <&clk_32k_rtc>, <&clk_32768_ck>;
        clock-names = "ext-clk", "int-clk";
        system-power-controller;
        status = "okay";
    };
    
    &wdt {
        status = "okay";
    };
    
    &cpu {
        cpu0-supply = <&dcdc2>;
    };
    
    &vpfe0 {
        status = "okay";
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&vpfe0_pins_default>;
        pinctrl-1 = <&vpfe0_pins_sleep>;
    
        /* Camera port */
        port {
            vpfe0_ep: endpoint {
                remote-endpoint = <&ov2659_1>;
                ti,am437x-vpfe-interface = <0>;
                bus-width = <8>;
                hsync-active = <0>;
                vsync-active = <0>;
            };
        };
    };
    
    &wkup_m3_ipc {
        ti,scale-data-fw = "am43x-evm-scale-data.bin";
    };
    
    &sgx {
        status = "okay";
    };