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.

AM3352: eMMC not being detected by Linux but in uBoot

Part Number: AM3352


Tool/software:

I'm having some trouble with the device tree enabling the eMMC on a custom board using the TI SDK 9.01. uBoot manages to find the eMMC memory, and the old OS based on Open Embedded works and detects the eMMC. Below is the logs and device tree. If any person has an idea what I can check further please let me know.

uBoot:

=> mmc list
OMAP SD/MMC: 0 (SD)
OMAP SD/MMC: 1
=> mmc dev 1
switch to partitions #0, OK
mmc1(part 0) is current device
=> mmc list
OMAP SD/MMC: 0 (SD)
OMAP SD/MMC: 1 (eMMC)
=> mmc info
Device: OMAP SD/MMC
Manufacturer ID: 13
OEM: 4e
Name: Q2J54A
Bus Speed: 48000000
Mode: MMC High Speed (52MHz)
Rd Block Len: 512
MMC version 5.0
High Capacity: Yes
Capacity: 3.6 GiB
Bus Width: 8-bit
Erase Group Size: 512 KiB
User Capacity: 3.6 GiB WRREL
Boot Capacity: 2 MiB ENH
RPMB Capacity: 512 KiB ENH
Boot area 0 is not write protected
Boot area 1 is not write protected

Linux:

root@am335x-evm:~# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
mmcblk0     179:0    0 14.9G  0 disk
|-mmcblk0p1 179:1    0   64M  0 part /run/media/mmcblk0p1
`-mmcblk0p2 179:2    0  7.3G  0 part /

[    2.364780] sdhci-omap 481d8000.mmc: supply pbias not found, using dummy regulator
[    2.372638] sdhci-omap 48060000.mmc: Got CD GPIO
[    2.377412] sdhci-omap 48060000.mmc: supply pbias not found, using dummy regulator
[    2.390178] sdhci-omap 481d8000.mmc: supply vqmmc not found, using dummy regulator
[    2.410668] sdhci-omap 48060000.mmc: supply vqmmc not found, using dummy regulator
[    2.455557] mmc1: SDHCI controller on 481d8000.mmc [481d8000.mmc] using External DMA
[    2.465720] mmc0: SDHCI controller on 48060000.mmc [48060000.mmc] using External DMA
[    2.514518] mmc0: new high speed SDHC card at address 0001
[    2.520983] mmcblk0: mmc0:0001 USD 14.9 GiB
[    2.528064]  mmcblk0: p1 p2
[    2.666781] EXT4-fs (mmcblk0p2): warning: mounting fs with errors, running e2fsck is recommended
[    2.679385] EXT4-fs (mmcblk0p2): recovery complete
[    2.685520] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: disabled.
[    6.299876] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: disabled.

Device Tree:

	emmc_pins_default: emmc-default-pins {
		pinctrl-single,pins = <
			AM33XX_IOPAD(0x880, PIN_INPUT | MUX_MODE2) /* (U9) gpmc_csn1.mmc1_clk */
			AM33XX_IOPAD(0x884, PIN_INPUT | MUX_MODE2) /* (V9) gpmc_csn2.mmc1_cmd */
			AM33XX_IOPAD(0x800, PIN_INPUT | MUX_MODE1) /* (U7) gpmc_ad0.mmc1_dat0 */
			AM33XX_IOPAD(0x804, PIN_INPUT | MUX_MODE1) /* (V7) gpmc_ad1.mmc1_dat1 */
			AM33XX_IOPAD(0x808, PIN_INPUT | MUX_MODE1) /* (R8) gpmc_ad2.mmc1_dat2 */
			AM33XX_IOPAD(0x80c, PIN_INPUT | MUX_MODE1) /* (T8) gpmc_ad3.mmc1_dat3 */
			AM33XX_IOPAD(0x810, PIN_INPUT | MUX_MODE1) /* (U8) gpmc_ad4.mmc1_dat4 */
			AM33XX_IOPAD(0x814, PIN_INPUT | MUX_MODE1) /* (V8) gpmc_ad5.mmc1_dat5 */
			AM33XX_IOPAD(0x818, PIN_INPUT | MUX_MODE1) /* (R9) gpmc_ad6.mmc1_dat6 */
			AM33XX_IOPAD(0x81c, PIN_INPUT | MUX_MODE1) /* (T9) gpmc_ad7.mmc1_dat7 */
		>;
	};

&mmc2 {
		vmmc-supply = <&vmmc_reg>;
		pinctrl-names = "default";
		pinctrl-0 = <&emmc_pins_default>;
		bus-width = <8>;
		non-removable;
		
		status = "okay";
};

  • After some more debugging, I did notice from the schematic that there is a reset line for the eMMC on gpio1 20. This was not mapped to anything in the old device tree, and the new device tree I'm trying to port does not map that either. Is this now required?

    Old Device Tree:

    ts-v1/;
    
    #include "am33xx.dtsi"
    #include <dt-bindings/pwm/pwm.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/input/input.h>
    
    / {
    	model = "TI AM335x EVM-SK";
    	compatible = "ti,am335x-evmsk", "ti,am33xx";
    	
    	cpus {
    		cpu@0 {
    			cpu0-supply = <&vdd1_reg>;
    		};
    	};
    
    	memory {
    		device_type = "memory";
    		reg = <0x80000000 0x10000000>; /* 256 MB */
    	};
    
    	vbat: fixedregulator@0 {
    		compatible = "regulator-fixed";
    		regulator-name = "vbat";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		regulator-boot-on;
    	};
    
    	leds {
    		pinctrl-names = "default", "sleep";
    		pinctrl-0 = <&user_leds>;
    
    		compatible = "gpio-leds";
    
    		led@1 {
    			label = "green";
    			gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "none";
    			default-state = "off";
    		};
    
    		led@2 {
    			label = "red";
    			gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			default-state = "off";
    		};
    
    		led@3 {
    			label = "blue";
    			gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			default-state = "off";
    		};
    	};
    };
    
    &am33xx_pinmux {
    
        user_leds: user_leds {
    	    pinctrl-single,pins = <
    		    0x48 ( PIN_INPUT | MUX_MODE7 ) /* (U14) gpmc_a2.gpio1[18] */
    		    0x4c ( PIN_INPUT | MUX_MODE7 ) /* (T14) gpmc_a3.gpio1[19] */
                0x20 ( PIN_INPUT | MUX_MODE7 ) /* (U10) gpmc_ad8.gpio0[22] */
    	    >;
        };
    
        emmc_pins_default: pinmux_emmc_pins_default {
            pinctrl-single,pins = <
    			0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
    			0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
    			0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
    			0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
    			0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
    			0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
    			0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
    			0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
    			0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
    			0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
            >;
                //0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_31 */
    			//0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
    			//0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
    			//0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
    			//0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
    			//0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
    			//0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
        };
    
    	cpsw_default: cpsw_default {
    		pinctrl-single,pins = <
    			/* Slave 1 */
    			0x110 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxerr.mii1_rxerr */
    			0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txen.mii1_txen */
    			0x118 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxdv.mii1_rxdv */
    			0x11c (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd3.mii1_txd3 */
    			0x120 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd2.mii1_txd2 */
    			0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd1.mii1_txd1 */
    			0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE0)	/* mii1_txd0.mii1_txd0 */
    			0x12c (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_txclk.mii1_txclk */
    			0x130 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxclk.mii1_rxclk */
    			0x134 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd3.mii1_rxd3 */
    			0x138 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd2.mii1_rxd2 */
    			0x13c (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd1.mii1_rxd1 */
    			0x140 (PIN_INPUT_PULLUP | MUX_MODE0)	/* mii1_rxd0.mii1_rxd0 */
    		>;
    	};
    
    	davinci_mdio_default: davinci_mdio_default {
    		pinctrl-single,pins = <
    			/* MDIO */
    			0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)	/* mdio_data.mdio_data */
    			0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0)			/* mdio_clk.mdio_clk */
    		>;
    	};
        
        mmc1_pins: pinmux_mmc1_pins {
    		pinctrl-single,pins = <
    			0x160 (PIN_INPUT | MUX_MODE7) /* GPIO0_6 */
    		>;
    	};
    
        
        microsd_pins_default: pinmux_microsd_pins_default {
            pinctrl-single,pins = <
                0x100 ( PIN_INPUT | MUX_MODE0 ) /* (G17) mmc0_clk.mmc0_clk */
                0x104 ( PIN_OUTPUT | MUX_MODE0 ) /* (G18) mmc0_cmd.mmc0_cmd */
                0xfc ( PIN_INPUT | MUX_MODE0 ) /* (G16) mmc0_dat0.mmc0_dat0 */
                0xf8 ( PIN_INPUT | MUX_MODE0 ) /* (G15) mmc0_dat1.mmc0_dat1 */
                0xf4 ( PIN_INPUT | MUX_MODE0 ) /* (F18) mmc0_dat2.mmc0_dat2 */
                0xf0 ( PIN_INPUT | MUX_MODE0 ) /* (F17) mmc0_dat3.mmc0_dat3 */
                0x160 ( PIN_INPUT | MUX_MODE5 ) /* (C15) spi0_cs1.mmc0_sdcd */
            >;
        };
        
    
        i2c0_pins_default: pinmux_i2c0_pins_default {
            pinctrl-single,pins = <
                0x18c ( PIN_INPUT | MUX_MODE0 ) /* (C16) I2C0_SCL.I2C0_SCL */
                0x188 ( PIN_INPUT | MUX_MODE0 ) /* (C17) I2C0_SDA.I2C0_SDA */
            >;
        };
    
        i2c2_pins_default: pinmux_i2c2_pins_default {
    	    pinctrl-single,pins = <
    		    0x17c ( PIN_INPUT | MUX_MODE3 ) /* (D17) uart1_rtsn.I2C2_SCL */
    		    0x178 ( PIN_INPUT | MUX_MODE3 ) /* (D18) uart1_ctsn.I2C2_SDA */
    	    >;
        };
    
        uart0_pins_default: pinmux_uart0_pins_default {
            pinctrl-single,pins = <
                0x170 ( PIN_INPUT | MUX_MODE0 ) /* (E15) uart0_rxd.uart0_rxd */
                0x174 ( PIN_OUTPUT | MUX_MODE0 ) /* (E16) uart0_txd.uart0_txd */
            >;
        };
    
    
        uart1_pins_default: pinmux_uart1_pins_default {
            pinctrl-single,pins = <
                0x180 ( PIN_INPUT | MUX_MODE0 ) /* (D16) uart1_rxd.uart1_rxd */
                0x184 ( PIN_OUTPUT | MUX_MODE0 ) /* (D15) uart1_txd.uart1_txd */
            >;
        };
    
    
        uart2_pins_default: pinmux_uart2_pins_default {
            pinctrl-single,pins = <
                0x150 ( PIN_INPUT | MUX_MODE1 ) /* (A17) spi0_sclk.uart2_rxd */
                0x154 ( PIN_OUTPUT | MUX_MODE1 ) /* (B17) spi0_d0.uart2_txd */
            >;
        };
    
    
        uart4_pins_default: pinmux_uart4_pins_default {
            pinctrl-single,pins = <
                0x70 ( PIN_INPUT | MUX_MODE6 ) /* (T17) gpmc_wait0.uart4_rxd */
                0x74 ( PIN_OUTPUT | MUX_MODE6 ) /* (U17) gpmc_wpn.uart4_txd */
            >;
        };
        
        gpio3_pins_default: pinmux_gpio3_pins_default {
            pinctrl-single,pins = <
                0x1a0 ( PIN_OUTPUT | MUX_MODE7 ) /* (B12) mcasp0_aclkr.gpio3[18] */
                0x1a4 ( PIN_INPUT | MUX_MODE7 ) /* (C13) mcasp0_fsr.gpio3[19] */
                0x1a8 ( PIN_INPUT | MUX_MODE7 ) /* (D13) mcasp0_axr1.gpio3[20] */
            >;
        };
    };
    
    &uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart0_pins_default>;
    
    	status = "okay";
    };
    
    &uart1 {
        label = "secugen";
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart1_pins_default>;
    
    	status = "okay";
    };
    
    &uart2 {
        label = "cardreader";
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart2_pins_default>;
        
    	status = "okay";
    };
    
    &uart4 {
        label = "intellirelay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart4_pins_default>;
        //cts-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
        //rts-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
    
    	status = "okay";
    };
    
    &i2c0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c0_pins_default>;
    
    	status = "okay";
    	clock-frequency = <400000>;
    
    	tps: tps@2d {
    		reg = <0x2d>;
    	};
    };
    
    &i2c2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c2_pins_default>;
    
    	status = "okay";
    	clock-frequency = <400000>;
    };
    
    
    #include "tps65910.dtsi"
    &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>;
    
        interrupts = <3 21 IRQ_TYPE_LEVEL_LOW>;
        interrupt-parent = <&intc>;
        ti,en-ck32k-xtal;
    
    	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 = <3300000>;
    			regulator-max-microvolt = <3300000>;
    			regulator-always-on;
    		};
    	};
    };
    
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <0>;
    	phy-mode = "mii";
    };
    
    &mac {
    	pinctrl-names = "default";
    	pinctrl-0 = <&cpsw_default>;
    	status = "okay";
    };
    
    &davinci_mdio {
    	pinctrl-names = "default";
    	pinctrl-0 = <&davinci_mdio_default>;
    	status = "okay";
    };
    
    &mmc1 {
        vmmc-supply = <&vmmc_reg>;
    	bus-width = <0x4>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&mmc1_pins>;
    	cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
    	status = "okay";
    };
    
    &mmc2 {
    	vmmc-supply = <&vmmc_reg>;
    	bus-width = <8>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&emmc_pins_default>;
    	status = "okay";
    };
    
    &sham {
    	status = "okay";
    };
    
    &aes {
    	status = "okay";
    };
    
    &lcdc {
          status = "okay";
    };
    
    &rtc {
    	system-power-controller;
    };
    

    New Device Tree:


    &am33xx_pinmux {
    	ehrpwm2_pins_default: ehrpwm2-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x820, PIN_OUTPUT | MUX_MODE4) /* (U10) gpmc_ad8.ehrpwm2A */
    			AM33XX_IOPAD(0x824, PIN_OUTPUT | MUX_MODE4) /* (T10) gpmc_ad9.ehrpwm2B */
    		>;
    	};
    
    	glue_pins_default: glue-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x9b4, PIN_OUTPUT | MUX_MODE3) /* (D14) xdma_event_intr1.clkout2 */
    		>;
    	};
    
    	gpio_1_pins_default: gpio_1-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x968, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (E18) uart0_ctsn.gpio1[8] */
    			AM33XX_IOPAD(0x96c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (E17) uart0_rtsn.gpio1[9] */
    			AM33XX_IOPAD(0x848, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (U14) gpmc_a2.gpio1[18] */
    			AM33XX_IOPAD(0x84c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (T14) gpmc_a3.gpio1[19] */
    			AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (U15) gpmc_a6.gpio1[22] */
    			AM33XX_IOPAD(0x85c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (T15) gpmc_a7.gpio1[23] */
    			AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLUP | MUX_MODE7) /* (V17) gpmc_a11.gpio1[27] */
    		>;
    	};
    
    	gpio_2_pins_default: gpio_2-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x894, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (T7) gpmc_oen_ren.gpio2[3] */
    			AM33XX_IOPAD(0x898, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (U6) gpmc_wen.gpio2[4] */
    		>;
    	};
    
    	gpio_3_pins_default: gpio_3-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x9e4, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (C14) EMU0.gpio3[7] */
    			AM33XX_IOPAD(0x9e8, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (B14) EMU1.gpio3[8] */
    			AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (A13) mcasp0_aclkx.gpio3[14] */
    			AM33XX_IOPAD(0x998, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (D12) mcasp0_axr0.gpio3[16] */
    
    		>;
    	};
    
    	i2c0_pins_default: i2c0-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x98c, PIN_INPUT | MUX_MODE0) /* (C16) I2C0_SCL.I2C0_SCL */
    			AM33XX_IOPAD(0x988, PIN_INPUT | MUX_MODE0) /* (C17) I2C0_SDA.I2C0_SDA */
    		>;
    	};
    
    	i2c1_pins_default: i2c1-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x95c, PIN_INPUT | MUX_MODE2) /* (A16) spi0_cs0.I2C1_SCL */
    			AM33XX_IOPAD(0x958, PIN_INPUT | MUX_MODE2) /* (B16) spi0_d1.I2C1_SDA */
    		>;
    	};
    
    	i2c2_pins_default: i2c2-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x97c, PIN_INPUT | MUX_MODE3) /* (D17) uart1_rtsn.I2C2_SCL */
    			AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE3) /* (D18) uart1_ctsn.I2C2_SDA */
    		>;
    	};
    
    	lcd_pins_default: lcd-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x8e0, PIN_OUTPUT | MUX_MODE0) /* (U5) lcd_vsync.lcd_vsync */
    			AM33XX_IOPAD(0x8e4, PIN_OUTPUT | MUX_MODE0) /* (R5) lcd_hsync.lcd_hsync */
    			AM33XX_IOPAD(0x8e8, PIN_OUTPUT | MUX_MODE0) /* (V5) lcd_pclk.lcd_pclk */
    			AM33XX_IOPAD(0x8ec, PIN_OUTPUT | MUX_MODE0) /* (R6) lcd_ac_bias_en.lcd_ac_bias_en */
    			AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* (R1) lcd_data0.lcd_data0 */
    			AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* (R2) lcd_data1.lcd_data1 */
    			AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* (R3) lcd_data2.lcd_data2 */
    			AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* (R4) lcd_data3.lcd_data3 */
    			AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* (T1) lcd_data4.lcd_data4 */
    			AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* (T2) lcd_data5.lcd_data5 */
    			AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* (T3) lcd_data6.lcd_data6 */
    			AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* (T4) lcd_data7.lcd_data7 */
    			AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* (U1) lcd_data8.lcd_data8 */
    			AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* (U2) lcd_data9.lcd_data9 */
    			AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* (U3) lcd_data10.lcd_data10 */
    			AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* (U4) lcd_data11.lcd_data11 */
    			AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* (V2) lcd_data12.lcd_data12 */
    			AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* (V3) lcd_data13.lcd_data13 */
    			AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* (V4) lcd_data14.lcd_data14 */
    			AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* (T5) lcd_data15.lcd_data15 */
    		>;
    	};
    
    	mcasp0_pins_default: mcasp0-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x99c, PIN_INPUT | MUX_MODE0) /* (C12) mcasp0_ahclkr.mcasp0_ahclkr */
    			AM33XX_IOPAD(0x9a0, PIN_INPUT | MUX_MODE0) /* (B12) mcasp0_aclkr.mcasp0_aclkr */
    			AM33XX_IOPAD(0x9a4, PIN_INPUT | MUX_MODE0) /* (C13) mcasp0_fsr.mcasp0_fsr */
    			AM33XX_IOPAD(0x9a8, PIN_OUTPUT | MUX_MODE0) /* (D13) mcasp0_axr1.mcasp0_axr1 */
    			AM33XX_IOPAD(0x9ac, PIN_INPUT | MUX_MODE2) /* (A14) mcasp0_ahclkx.mcasp0_axr3 */
    		>;
    	};
    
    	mdio_pins_default: mdio-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x94c, PIN_OUTPUT | MUX_MODE0) /* (M18) mdio_clk.mdio_clk */
    			AM33XX_IOPAD(0x948, PIN_INPUT | MUX_MODE0) /* (M17) mdio_data.mdio_data */
    		>;
    	};
    
    	mii1_pins_default: mii1-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x908, PIN_INPUT | MUX_MODE0) /* (H16) gmii1_col.gmii1_col */
    			AM33XX_IOPAD(0x90c, PIN_INPUT | MUX_MODE0) /* (H17) gmii1_crs.gmii1_crs */
    			AM33XX_IOPAD(0x910, PIN_INPUT | MUX_MODE0) /* (J15) gmii1_rxer.gmii1_rxer */
    			AM33XX_IOPAD(0x914, PIN_OUTPUT | MUX_MODE0) /* (J16) gmii1_txen.gmii1_txen */
    			AM33XX_IOPAD(0x918, PIN_INPUT | MUX_MODE0) /* (J17) gmii1_rxdv.gmii1_rxdv */
    			AM33XX_IOPAD(0x92c, PIN_INPUT | MUX_MODE0) /* (K18) gmii1_txclk.gmii1_txclk */
    			AM33XX_IOPAD(0x930, PIN_INPUT | MUX_MODE0) /* (L18) gmii1_rxclk.gmii1_rxclk */
    			AM33XX_IOPAD(0x928, PIN_OUTPUT | MUX_MODE0) /* (K17) gmii1_txd0.gmii1_txd0 */
    			AM33XX_IOPAD(0x924, PIN_OUTPUT | MUX_MODE0) /* (K16) gmii1_txd1.gmii1_txd1 */
    			AM33XX_IOPAD(0x920, PIN_OUTPUT | MUX_MODE0) /* (K15) gmii1_txd2.gmii1_txd2 */
    			AM33XX_IOPAD(0x91c, PIN_OUTPUT | MUX_MODE0) /* (J18) gmii1_txd3.gmii1_txd3 */
    			AM33XX_IOPAD(0x940, PIN_INPUT | MUX_MODE0) /* (M16) gmii1_rxd0.gmii1_rxd0 */
    			AM33XX_IOPAD(0x93c, PIN_INPUT | MUX_MODE0) /* (L15) gmii1_rxd1.gmii1_rxd1 */
    			AM33XX_IOPAD(0x938, PIN_INPUT | MUX_MODE0) /* (L16) gmii1_rxd2.gmii1_rxd2 */
    			AM33XX_IOPAD(0x934, PIN_INPUT | MUX_MODE0) /* (L17) gmii1_rxd3.gmii1_rxd3 */
    		>;
    	};
    
    	usdcard_pins_default: usdcard-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x900, PIN_INPUT | MUX_MODE0) /* (G17) mmc0_clk.mmc0_clk */
    			AM33XX_IOPAD(0x904, PIN_INPUT | MUX_MODE0) /* (G18) mmc0_cmd.mmc0_cmd */
    			AM33XX_IOPAD(0x8fc, PIN_INPUT | MUX_MODE0) /* (G16) mmc0_dat0.mmc0_dat0 */
    			AM33XX_IOPAD(0x8f8, PIN_INPUT | MUX_MODE0) /* (G15) mmc0_dat1.mmc0_dat1 */
    			AM33XX_IOPAD(0x8f4, PIN_INPUT | MUX_MODE0) /* (F18) mmc0_dat2.mmc0_dat2 */
    			AM33XX_IOPAD(0x8f0, PIN_INPUT | MUX_MODE0) /* (F17) mmc0_dat3.mmc0_dat3 */
    			AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE5) /* (C15) spi0_cs1.mmc0_sdcd */
    		>;
    	};
    
    	emmc_pins_default: emmc-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x880, PIN_INPUT | MUX_MODE2) /* (U9) gpmc_csn1.mmc1_clk */
    			AM33XX_IOPAD(0x884, PIN_INPUT | MUX_MODE2) /* (V9) gpmc_csn2.mmc1_cmd */
    			AM33XX_IOPAD(0x800, PIN_INPUT | MUX_MODE1) /* (U7) gpmc_ad0.mmc1_dat0 */
    			AM33XX_IOPAD(0x804, PIN_INPUT | MUX_MODE1) /* (V7) gpmc_ad1.mmc1_dat1 */
    			AM33XX_IOPAD(0x808, PIN_INPUT | MUX_MODE1) /* (R8) gpmc_ad2.mmc1_dat2 */
    			AM33XX_IOPAD(0x80c, PIN_INPUT | MUX_MODE1) /* (T8) gpmc_ad3.mmc1_dat3 */
    			AM33XX_IOPAD(0x810, PIN_INPUT | MUX_MODE1) /* (U8) gpmc_ad4.mmc1_dat4 */
    			AM33XX_IOPAD(0x814, PIN_INPUT | MUX_MODE1) /* (V8) gpmc_ad5.mmc1_dat5 */
    			AM33XX_IOPAD(0x818, PIN_INPUT | MUX_MODE1) /* (R9) gpmc_ad6.mmc1_dat6 */
    			AM33XX_IOPAD(0x81c, PIN_INPUT | MUX_MODE1) /* (T9) gpmc_ad7.mmc1_dat7 */
    		>;
    	};
    
    	spi1_pins_default: spi1-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x990, PIN_INPUT | MUX_MODE3) /* (A13) mcasp0_aclkx.spi1_sclk */
    			AM33XX_IOPAD(0x994, PIN_INPUT | MUX_MODE3) /* (B13) mcasp0_fsx.spi1_d0 */
    			AM33XX_IOPAD(0x998, PIN_INPUT | MUX_MODE3) /* (D12) mcasp0_axr0.spi1_d1 */
    			AM33XX_IOPAD(0x96c, PIN_INPUT | MUX_MODE5) /* (E17) uart0_rtsn.spi1_cs0 */
    			AM33XX_IOPAD(0x9b0, PIN_INPUT | MUX_MODE4) /* (A15) xdma_event_intr0.spi1_cs1 */
    		>;
    	};
    
    	uart0_pins_default: uart0-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x970, PIN_INPUT | MUX_MODE0) /* (E15) uart0_rxd.uart0_rxd */
    			AM33XX_IOPAD(0x974, PIN_OUTPUT | MUX_MODE0) /* (E16) uart0_txd.uart0_txd */
    		>;
    	};
    
    	uart1_pins_default: uart1-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x980, PIN_INPUT | MUX_MODE0) /* (D16) uart1_rxd.uart1_rxd */
    			AM33XX_IOPAD(0x984, PIN_OUTPUT | MUX_MODE0) /* (D15) uart1_txd.uart1_txd */
    		>;
    	};
    
    	uart2_pins_default: uart2-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE1) /* (A17) spi0_sclk.uart2_rxd */
    			AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE1) /* (B17) spi0_d0.uart2_txd */
    		>;
    	};
    
    	uart4_pins_default: uart4-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x870, PIN_INPUT | MUX_MODE6) /* (T17) gpmc_wait0.uart4_rxd */
    			AM33XX_IOPAD(0x874, PIN_OUTPUT | MUX_MODE6) /* (U17) gpmc_wpn.uart4_txd */
    		>;
    	};
    };

    #include "am33xx.dtsi"
    #include "am335x_ipb5_pinmux.dtsi"
    
    / {
    	model = "TI AM335x Hello World ";
    	compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
    
            memory@80000000 {
                    device_type = "memory";
                    reg = <0x80000000 0x10000000>; /* 256 MB */
            };
    
            chosen {
                    stdout-path = &uart0;
            };
    
            vmmcsd_fixed: fixedregulator0 {
    				compatible = "regulator-fixed";
    				regulator-name = "vmmcsd_fixed";
    				regulator-min-microvolt = <5000000>;
    				regulator-max-microvolt = <5000000>;
    				regulator-boot-on;
            };
    
            leds {
                 compatible = "gpio-leds";
                 led_white {
                         lable = "led_white";
                         gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
                         linux,default-trigger = "heartbeat";
                 };
    
                 led_green {
                         label = "led_green";
                         gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
                         linux,default-trigger = "heartbeat";
                 };
    
                 led_red {
                         label = "led_red";
                         gpios = <&gpio3 7 GPIO_ACTIVE_HIGH>;
                         linux,default-trigger = "heartbeat";
                 };
            };
    
    		panel {
    			compatible = "ti,tilcdc,panel";
    			pinctrl-names = "default";
    			pinctrl-0 = <&lcd_pins_default>;
    			status = "okay";
    			panel-info {
    				ac-bias           = <255>;
    				ac-bias-intrpt    = <0>;
    				dma-burst-sz      = <16>;
    				bpp               = <16>;
    				fdd               = <0x80>;
    				sync-edge         = <0>;
    				sync-ctrl         = <1>;
    				raster-order      = <0>;
    				fifo-th           = <0>;
    			};
    			display-timings {
    				480x800 {
    					hactive         = <480>;
    					vactive         = <800>;
    					hback-porch     = <20>;
    					hfront-porch    = <38>;
    					hsync-len       = <20>;
    					vback-porch     = <20>;
    					vfront-porch    = <20>;
    					vsync-len       = <20>;
    					clock-frequency = <28792800>; /* 28792800 */
    					hsync-active    = <0>;
    					vsync-active    = <0>;
    				};
    			};
    		};
    };
    
    &uart0 {
            pinctrl-names = "default";
            pinctrl-0 = <&uart0_pins_default>;
            
            status = "okay";
    };
    
    &uart1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart1_pins_default>;
    
    	status = "okay";
    };
    
    &uart2 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart2_pins_default>;
    
    	status = "okay";
    };
    
    &uart4 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&uart4_pins_default>;
        //cts-gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
        //rts-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
    
    	status = "okay";
    };
    
    &mmc1 {
            bus-width = <0x4>;
            pinctrl-names = "default";
            pinctrl-0 = <&usdcard_pins_default>;
            cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
    		vmmc-supply = <&vmmc_reg>;
    		
    		status = "okay";
    };
    
    &mmc2 {
    		vmmc-supply = <&vmmc_reg>;
    		pinctrl-names = "default";
    		pinctrl-0 = <&emmc_pins_default>;
    		bus-width = <8>;
    		non-removable;
    		reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
    		
    		status = "okay";
    };
    
    &i2c0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c0_pins_default>;
    
    	status = "okay";
    	clock-frequency = <400000>;
    
    	tps: tps@2d {
    		reg = <0x2d>;
    	};
    };
    
    &i2c1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&i2c1_pins_default>;
    
    	status = "okay";
    	clock-frequency = <400000>;
    
    	focaltech@38{
    		compatible = "focaltech,fts";
    		reg = <0x38>;
    		interrupt-parent = <&gpio2>;
    		interrupts = <&gpio2 4>;
    		focaltech,reset-gpio = <&gpio2 3 GPIO_ACTIVE_LOW>;
    		focaltech,irq-gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>;
    		focaltech,max-touch-number = <5>;
    		focaltech,display-coords =  <0 0 800 480>;
    	};
    };
    
    #include "tps65910.dtsi"
    &tps {
    	vcc1-supply = <&vmmcsd_fixed>;
    	vcc2-supply = <&vmmcsd_fixed>;
    	vcc3-supply = <&vmmcsd_fixed>;
    	vcc4-supply = <&vmmcsd_fixed>;
    	vcc5-supply = <&vmmcsd_fixed>;
    	vcc6-supply = <&vmmcsd_fixed>;
    	vcc7-supply = <&vmmcsd_fixed>;
    	vccio-supply = <&vmmcsd_fixed>;
    
    //    interrupts = <&gpio3 21 GPIO_ACTIVE_LOW>;
    //    interrupt-parent = <&intc>;
    //    ti,en-ck32k-xtal;
    
    	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 = <3300000>;
    			regulator-max-microvolt = <3300000>;
    			regulator-always-on;
    		};
    	};
    };
    
    &cpsw_emac0 {
    	phy_id = <&davinci_mdio>, <0>;
    	phy-mode = "mii";
    };
    
    &mac {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mii1_pins_default>;
    	status = "okay";
    };
    
    &davinci_mdio {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mdio_pins_default>;
    	status = "okay";
    };
    
    &lcdc {
          status = "okay";
    };
    
    &gpio0 {
    	gpio-line-names =
    		"FIRST",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"SDCARD_CD",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"LAST";
    };
    
    &gpio1 { //fix gpio places. not everything in correct place
    	gpio-line-names =
    		"FIRST",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"IR_485_EN_TX",
    		"LCD_CS",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"IND_LED_GREEN",
    		"IND_BUZZ",
    		"EMMC_ENABLE",
    		"NA",
    		"SEC_BIO_RESET",
    		"SEC_BIO_EN",
    		"NA",
    		"NA",
    		"NA",
    		"LCD_RESET",
    		"NA",
    		"NA",
    		"NA",
    		"LAST";
    };
    
    &gpio2 {
    	gpio-line-names =
    		"FIRST",
    		"NA",
    		"NA",
    		"LCD_CPT_RESET",
    		"LCD_CPT_INT",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"LAST";
    };
    
    &gpio3 {
    	gpio-line-names =
    		"FIRST",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"IND_LED_RED",
    		"IND_LED_WHITE",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"LCD_CSL",
    		"NA",
    		"LCD_MOSI",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"NA",
    		"LAST";
    };

  • Hi TJ,

    I did notice from the schematic that there is a reset line for the eMMC on gpio1 20. This was not mapped to anything in the old device tree, and the new device tree I'm trying to port does not map that either. Is this now required?

    I see the Beaglebone Black board schematics also has gpio1_20 connected to eMMC RSTn pin, but the kernel devicetree doesn't map gpio1_20 either. So I don't think this reset pin is required.

    Regarding to the eMMC pinmux, I see your old devicetree uses "PIN_INPUT_PULLUP", but the new devicetree doesn't have "_PULLUP". Can you please add the "_PULLUP" in the kernel devicetree to see if it makes difference? Does your board have external pullup resisters on those eMMC pins?

  • Thank you very much. This solved the issue. Changing them to PULLUP in the pinmux fixed the issue. The eMMC does have external pullup resistors (as below), but this still fixed the issue.

    Pullups:

    New Pinmux:

    	emmc_pins_default: emmc-default-pins {
    		pinctrl-single,pins = <
    			AM33XX_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* (U9) gpmc_csn1.mmc1_clk */
    			AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* (V9) gpmc_csn2.mmc1_cmd */
    			AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1) /* (U7) gpmc_ad0.mmc1_dat0 */
    			AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1) /* (V7) gpmc_ad1.mmc1_dat1 */
    			AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1) /* (R8) gpmc_ad2.mmc1_dat2 */
    			AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1) /* (T8) gpmc_ad3.mmc1_dat3 */
    			AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1) /* (U8) gpmc_ad4.mmc1_dat4 */
    			AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1) /* (V8) gpmc_ad5.mmc1_dat5 */
    			AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1) /* (R9) gpmc_ad6.mmc1_dat6 */
    			AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) /* (T9) gpmc_ad7.mmc1_dat7 */
    		>;
    	};

    lsblk:

    root@am335x-evm:~# lsblk
    NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
    mmcblk0      179:0    0 14.9G  0 disk
    |-mmcblk0p1  179:1    0   64M  0 part /run/media/mmcblk0p1
    `-mmcblk0p2  179:2    0  7.3G  0 part /
    mmcblk1      179:16   0  3.6G  0 disk
    `-mmcblk1p1  179:17   0  3.6G  0 part /run/media/mmcblk1p1
    mmcblk1boot0 179:32   0    2M  1 disk
    mmcblk1boot1 179:48   0    2M  1 disk
    

  • Hi TJ,

    Glad to hear the issue is resolved. Thanks for the update.

    The Beaglebone Black board devicetree has the PULLUP configured on all the eMMC pins.