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: USB doesn't work

Part Number: AM3352
Other Parts Discussed in Thread: TPS65217

Hi!

Im still struggling with board-bring-up on our custom AM3352 board.

Now its the USB ports that doesnt work.

I can see them with lsusb:

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

But they dont work and there is no power on VBUS. If I insert a usb device there is no activity. If we probe USB0_DRVVBUS or USB1_DRVVBUS there is no activity on them during boot. In u-boot it is possible to control USB0_DRVVBUS (gpio set 18) and then we can get power on VBUS. But as soon as I boot the kernel then USB0_DRVVBUS goes low. If I create (echo 18 > /sys/class/gpio/export) the corresponding GPIO in Linux (GPIO0_18) I can see thats its direction is "in" and it cant be changed. I get the feeling that Im destroying the GPIOs somehow, but Im to new to understand if thats the case and if so then why. In my DMESG log I get a bunch of various "of_get_named_gpiod_flags: can't parse 'reset-gpio' property of ...."  if that can be a clue to whats wrong.

The HW-guys have checked everything in the design and its fine.

Im on your kernel, branch ti-linux-4.19.y.

My DTS file:

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

#include "am33xx.dtsi"

#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>

/ {
    model = "AQ240";
        compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
        
    cpus {
        cpu@0 {
            cpu0-supply = <&dcdc2_reg>;
        };
    };

    memory {
        device_type = "memory";
        reg = <0x80000000 0x20000000>; /* 512 MB */
    };

    v3v3b_reg: fixedregulator@1 {
        compatible = "regulator-fixed";
        regulator-name = "vdd_3v3b";
        regulator-min-microvolt = <3300000>;
        regulator-max-microvolt = <3300000>;
        regulator-boot-on;
        regulator-always-on;
    };
};

/*&cpu0_opp_table {
    oppnitro-1000000000 {
        opp-supported-hw = <0x06 0x0100>;
    };
};*/

&am33xx_pinmux {
    i2c0_pins: pinmux_i2c0_pins {
        pinctrl-single,pins = <
            0x188 (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_sda.i2c0_sda */
            0x18c (PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_scl.i2c0_scl */
        >;
    };
    
    uart0_pins: pinmux_uart0_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 */
        >;
    };

    cpsw_default: cpsw_default {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* (H17) gmii1_crs.rmii1_crs_dv */
            AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP | MUX_MODE1) /* (J15) gmii1_rxer.rmii1_rxer */
            AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* (J16) gmii1_txen.rmii1_txen */
            AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* (K17) gmii1_txd0.rmii1_txd0 */
            AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* (K16) gmii1_txd1.rmii1_txd1 */
            AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE1) /* (M16) gmii1_rxd0.rmii1_rxd0 */
            AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* (L15) gmii1_rxd1.rmii1_rxd1 */
            AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* (H18) rmii1_refclk.rmii1_refclk */
        
            AM33XX_IOPAD(0x870, PIN_INPUT_PULLDOWN | MUX_MODE3) /* (T17) gpmc_wait0.rmii2_crs_dv */
            AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE3) /* (U17) gpmc_wpn.rmii2_rxer */
            AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* (R13) gpmc_a0.rmii2_txen */
            AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* (V15) gpmc_a5.rmii2_txd0 */
            AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* (R14) gpmc_a4.rmii2_txd1 */
            AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE3) /* (V17) gpmc_a11.rmii2_rxd0 */
            AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE3) /* (T16) gpmc_a10.rmii2_rxd1 */
            AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE1) /* (H16) gmii1_col.rmii2_refclk */
        >;
    };
        
    cpsw_sleep: cpsw_sleep {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE7)
            
            AM33XX_IOPAD(0x870, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x840, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x854, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x850, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7)
            AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7)
        >;
    };

    davinci_mdio_default: davinci_mdio_default {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (M18) mdio_clk.mdio_clk */
            AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* (M17) mdio_data.mdio_data */
        >;
    };
    
    davinci_mdio_sleep: davinci_mdio_sleep {
        pinctrl-single,pins = <
            /* MDIO reset value */
            0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
            0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
        >;
    };

    mmc1_pins_default: pinmux_mmc1_pins {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* (G17) mmc0_clk.mmc0_clk */
            AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* (G18) mmc0_cmd.mmc0_cmd */
            AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* (G16) mmc0_dat0.mmc0_dat0 */
            AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* (G15) mmc0_dat1.mmc0_dat1 */
            AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* (F18) mmc0_dat2.mmc0_dat2 */
            AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* (F17) mmc0_dat3.mmc0_dat3 */
        >;
    };

    mmc1_pins_sleep: pinmux_mmc1_pins_sleep {
        pinctrl-single,pins = <
            0x0F0 (PIN_INPUT_PULLDOWN | MUX_MODE7)
            0x0F4 (PIN_INPUT_PULLDOWN | MUX_MODE7)
            0x0F8 (PIN_INPUT_PULLDOWN | MUX_MODE7)
            0x0FC (PIN_INPUT_PULLDOWN | MUX_MODE7)
            0x100 (PIN_INPUT_PULLDOWN | MUX_MODE7)
            0x104 (PIN_INPUT_PULLDOWN | MUX_MODE7)
        >;
    };

    emmc_pins: pinmux_emmc_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 */
        >;
    };

    spi1_pins_default: spi1_pins_default {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0x964, PIN_INPUT | MUX_MODE4) /* (C18) eCAP0_in_PWM0_out.spi1_sclk */
            AM33XX_IOPAD(0x968, PIN_INPUT | MUX_MODE4) /* (E18) uart0_ctsn.spi1_d0 */
            AM33XX_IOPAD(0x96c, PIN_INPUT | MUX_MODE4) /* (E17) uart0_rtsn.spi1_d1 */
            AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE4) /* (D18) uart1_ctsn.spi1_cs0 */
        >;
    };
    
    gpio1_pins_default: gpio1_pins_default {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0x830, PIN_INPUT | MUX_MODE7) /* (T12) gpmc_ad12.gpio1[12] */
            AM33XX_IOPAD(0x834, PIN_INPUT | MUX_MODE7) /* (R12) gpmc_ad13.gpio1[13] */
            AM33XX_IOPAD(0x838, PIN_INPUT | MUX_MODE7) /* (V13) gpmc_ad14.gpio1[14] */
            AM33XX_IOPAD(0x83c, PIN_INPUT | MUX_MODE7) /* (U13) gpmc_ad15.gpio1[15] */
            AM33XX_IOPAD(0x844, PIN_INPUT | MUX_MODE7) /* (V14) gpmc_a1.gpio1[17] */
            AM33XX_IOPAD(0x848, PIN_INPUT | MUX_MODE7) /* (U14) gpmc_a2.gpio1[18] */
            AM33XX_IOPAD(0x84c, PIN_INPUT | MUX_MODE7) /* (T14) gpmc_a3.gpio1[19] */
            AM33XX_IOPAD(0x858, PIN_INPUT | MUX_MODE7) /* (U15) gpmc_a6.gpio1[22] */
            AM33XX_IOPAD(0x85c, PIN_INPUT | MUX_MODE7) /* (T15) gpmc_a7.gpio1[23] */
            AM33XX_IOPAD(0x860, PIN_INPUT | MUX_MODE7) /* (V16) gpmc_a8.gpio1[24] */
            AM33XX_IOPAD(0x864, PIN_INPUT | MUX_MODE7) /* (U16) gpmc_a9.gpio1[25] */
            AM33XX_IOPAD(0x878, PIN_INPUT | MUX_MODE7) /* (U18) gpmc_be1n.gpio1[28] */
        >;
    };

    gpio0_pins_default: gpio0_pins_default {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE7) /* (A17) spi0_sclk.gpio0[2] */
            AM33XX_IOPAD(0x954, PIN_INPUT | MUX_MODE7) /* (B17) spi0_d0.gpio0[3] */
            AM33XX_IOPAD(0x958, PIN_INPUT | MUX_MODE7) /* (B16) spi0_d1.gpio0[4] */
            AM33XX_IOPAD(0x95c, PIN_INPUT | MUX_MODE7) /* (A16) spi0_cs0.gpio0[5] */
            AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* (C15) spi0_cs1.gpio0[6] */
            AM33XX_IOPAD(0x8d0, PIN_INPUT | MUX_MODE7) /* (V2) lcd_data12.gpio0[8] */
            AM33XX_IOPAD(0x8d4, PIN_INPUT | MUX_MODE7) /* (V3) lcd_data13.gpio0[9] */
            AM33XX_IOPAD(0x8d8, PIN_INPUT | MUX_MODE7) /* (V4) lcd_data14.gpio0[10] */
            AM33XX_IOPAD(0x8dc, PIN_INPUT | MUX_MODE7) /* (T5) lcd_data15.gpio0[11] */
            AM33XX_IOPAD(0x97c, PIN_INPUT | MUX_MODE7) /* (D17) uart1_rtsn.gpio0[13] */
            AM33XX_IOPAD(0x980, PIN_INPUT | MUX_MODE7) /* (D16) uart1_rxd.gpio0[14] */
            AM33XX_IOPAD(0x984, PIN_INPUT | MUX_MODE7) /* (D15) uart1_txd.gpio0[15] */
            AM33XX_IOPAD(0x9b0, PIN_INPUT | MUX_MODE7) /* (A15) xdma_event_intr0.gpio0[19] */
        >;
    };

    gpio2_pins_default: gpio2_pins_default {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0x890, PIN_INPUT | MUX_MODE7) /* (R7) gpmc_advn_ale.gpio2[2] */
            AM33XX_IOPAD(0x894, PIN_INPUT | MUX_MODE7) /* (T7) gpmc_oen_ren.gpio2[3] */
            AM33XX_IOPAD(0x898, PIN_INPUT | MUX_MODE7) /* (U6) gpmc_wen.gpio2[4] */
            AM33XX_IOPAD(0x89c, PIN_INPUT | MUX_MODE7) /* (T6) gpmc_be0n_cle.gpio2[5] */
            AM33XX_IOPAD(0x8a0, PIN_INPUT | MUX_MODE7) /* (R1) lcd_data0.gpio2[6] */
            AM33XX_IOPAD(0x8a4, PIN_INPUT | MUX_MODE7) /* (R2) lcd_data1.gpio2[7] */
            AM33XX_IOPAD(0x8a8, PIN_INPUT | MUX_MODE7) /* (R3) lcd_data2.gpio2[8] */
            AM33XX_IOPAD(0x8ac, PIN_INPUT | MUX_MODE7) /* (R4) lcd_data3.gpio2[9] */
            AM33XX_IOPAD(0x8b0, PIN_INPUT | MUX_MODE7) /* (T1) lcd_data4.gpio2[10] */
            AM33XX_IOPAD(0x8b4, PIN_INPUT | MUX_MODE7) /* (T2) lcd_data5.gpio2[11] */
            AM33XX_IOPAD(0x8b8, PIN_INPUT | MUX_MODE7) /* (T3) lcd_data6.gpio2[12] */
            AM33XX_IOPAD(0x8bc, PIN_INPUT | MUX_MODE7) /* (T4) lcd_data7.gpio2[13] */
            AM33XX_IOPAD(0x8c0, PIN_INPUT | MUX_MODE7) /* (U1) lcd_data8.gpio2[14] */
            AM33XX_IOPAD(0x8c4, PIN_INPUT | MUX_MODE7) /* (U2) lcd_data9.gpio2[15] */
            AM33XX_IOPAD(0x8c8, PIN_INPUT | MUX_MODE7) /* (U3) lcd_data10.gpio2[16] */
            AM33XX_IOPAD(0x8cc, PIN_INPUT | MUX_MODE7) /* (U4) lcd_data11.gpio2[17] */
            AM33XX_IOPAD(0x8e0, PIN_INPUT | MUX_MODE7) /* (U5) lcd_vsync.gpio2[22] */
            AM33XX_IOPAD(0x8e4, PIN_INPUT | MUX_MODE7) /* (R5) lcd_hsync.gpio2[23] */
            AM33XX_IOPAD(0x8e8, PIN_INPUT | MUX_MODE7) /* (V5) lcd_pclk.gpio2[24] */
            AM33XX_IOPAD(0x8ec, PIN_INPUT | MUX_MODE7) /* (R6) lcd_ac_bias_en.gpio2[25] */
        >;
    };

    gpio3_pins_default: gpio3_pins_default {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0x990, PIN_INPUT | MUX_MODE7) /* (A13) mcasp0_aclkx.gpio3[14] */
            AM33XX_IOPAD(0x994, PIN_INPUT | MUX_MODE7) /* (B13) mcasp0_fsx.gpio3[15] */
            AM33XX_IOPAD(0x998, PIN_INPUT | MUX_MODE7) /* (D12) mcasp0_axr0.gpio3[16] */
            AM33XX_IOPAD(0x99c, PIN_INPUT | MUX_MODE7) /* (C12) mcasp0_ahclkr.gpio3[17] */
            AM33XX_IOPAD(0x9a0, PIN_INPUT | MUX_MODE7) /* (B12) mcasp0_aclkr.gpio3[18] */
            AM33XX_IOPAD(0x9a4, PIN_INPUT | MUX_MODE7) /* (C13) mcasp0_fsr.gpio3[19] */
            AM33XX_IOPAD(0x9a8, PIN_INPUT | MUX_MODE7) /* (D13) mcasp0_axr1.gpio3[20] */
            AM33XX_IOPAD(0x9ac, PIN_INPUT | MUX_MODE7) /* (A14) mcasp0_ahclkx.gpio3[21] */
        >;
    };
    
    usb1_portc_pins_default: usb1_portc_pins_default {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0xa34, PIN_OUTPUT | MUX_MODE0) /* (F15) USB1_DRVVBUS.USB1_DRVVBUS */
        >;
    };
    
    usb0_porta_pins_default: usb0_porta_pins_default {
        pinctrl-single,pins = <
            AM33XX_IOPAD(0xa1c, PIN_OUTPUT | MUX_MODE0) /* (F16) USB0_DRVVBUS.USB0_DRVVBUS */
        >;
    };

};

&uart0 {
    pinctrl-names = "default";
    pinctrl-0 = <&uart0_pins>;
    status = "okay";
};

&usb {
    status = "okay";
};

&usb_ctrl_mod {
    status = "okay";
};

&usb0_phy {
    status = "okay";
};

&usb1_phy {
    status = "okay";
};

&usb0 {
    pinctrl-0 = <&usb0_porta_pins_default>;
    status = "okay";
    dr_mode = "host";
};

&usb1 {
    pinctrl-0 = <&usb1_portc_pins_default>;
    status = "okay";
    dr_mode = "host";
};

&cppi41dma  {
    status = "okay";
};

&i2c0 {
    pinctrl-names = "default";
    pinctrl-0 = <&i2c0_pins>;

    status = "okay";
    clock-frequency = <400000>;

    tps: tps@24 {
        reg = <0x24>;
    };
    
    uid: uid@50 {
        compatible = "at,24c01";
        reg = <0x50>;
    };
    
    eeprom: eeprom@51 {
           compatible = "at,24c32";
        reg = <0x51>;
    };

    bq27621: bq27621@55 {
         compatible = "ti,bq27621";
         reg = <0x55>;
    };

};


/include/ "tps65217.dtsi"

&tps {
    /*
     * Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only
     * mode") at poweroff.  Most BeagleBone versions do not support RTC-only
     * mode and risk hardware damage if this mode is entered.
     *
     * For details, see linux-omap mailing list May 2015 thread
     *    [PATCH] ARM: dts: am335x-bone* enable pmic-shutdown-controller
     * In particular, messages:
     *    www.spinics.net/.../msg1185pruss_remoteproc85.html
     *    www.spinics.net/.../msg118615.html
     *
     * You can override this later with
     *    &tps {  /delete-property/ ti,pmic-shutdown-controller;  }
     * if you want to use RTC-only mode and made sure you are not affected
     * by the hardware problems. (Tip: double-check by performing a current
     * measurement after shutdown: it should be less than 1 mA.)
     */
    ti,pmic-shutdown-controller;

    interrupt-parent = <&intc>;
    interrupts = <7>;    /* NNMI */

regulators {
        dcdc1_reg: regulator@0 { /* 1.35V */
            regulator-name = "vdds_dpr";
            regulator-min-microvolt = <1350000>;
            regulator-max-microvolt = <1350000>;
            regulator-boot-on;
            regulator-always-on;
        };

        dcdc2_reg: regulator@1 { /* 1.1V */

            regulator-name = "vdd_mpu";
            regulator-min-microvolt =  <949620>; /* min at 300MHz */
            regulator-max-microvolt = <1351500>; /* max at 1HGz */
            regulator-boot-on;
            regulator-always-on;
        };

        dcdc3_reg: regulator@2 { /* 1.1V */

            regulator-name = "vdd_core";
            regulator-min-microvolt =  <949620>;
            regulator-max-microvolt = <1351500>;
            regulator-boot-on;
            regulator-always-on;
        };

        ldo1_reg: regulator@3 { /* 1.8V */
            regulator-name = "vio,vrtc,vdds";
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
            regulator-boot-on;
            regulator-always-on;
        };

        ldo2_reg: regulator@4 { /* 3.3V */
            regulator-name = "vdd_3v3aux";
            /* +3.3V voltage with ±4% tolerance */
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
            regulator-boot-on;
            regulator-always-on;
        };

        ldo3_reg: regulator@5 { /* 1.8V */
            regulator-name = "vdd_1v8";
            /* +1.8V voltage with ±4% tolerance */
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
            regulator-boot-on;
            regulator-always-on;
        };

        ldo4_reg: regulator@6 { /* 3.3V */
            regulator-name = "vdd_3v3a";
            /* +3.3V voltage with ±4% tolerance */
            regulator-min-microvolt = <3300000>;
            regulator-max-microvolt = <3300000>;
            regulator-boot-on;
            regulator-always-on;
        };
    };
};

&cpsw_emac0 {
    status = "okay";
    phy_id = <&davinci_mdio>, <0>;
    phy-mode = "rmii";
    dual_emac_res_vlan = <1>;
};

&cpsw_emac1 {
    status = "okay";
    phy_id = <&davinci_mdio>, <1>;
    phy-mode = "rmii";
    dual_emac_res_vlan = <2>;
};

&phy_sel {
    rmii-clock-ext;
};

&mac {
    status = "okay";
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&cpsw_default>;
    pinctrl-1 = <&cpsw_sleep>;
    dual_emac = <1>;
};

&davinci_mdio {
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&davinci_mdio_default>;
    pinctrl-1 = <&davinci_mdio_sleep>;
    status = "okay";
};

&tscadc {
    status = "okay";
    adc {
        ti,adc-channels = <0>;
    };
};

&mmc1 {
    vmmc-supply = <&v3v3b_reg>;
    bus-width = <0x4>;
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&mmc1_pins_default>;
    pinctrl-1 = <&mmc1_pins_sleep>;
    cd-inverted;
    status = "okay";
};

&mmc2 {
    vmmc-supply = <&v3v3b_reg>;
    pinctrl-names = "default";
    pinctrl-0 = <&emmc_pins>;
    bus-width = <8>;
    status = "okay";
};

&edma {
    ti,edma-xbar-event-map = /bits/ 16 <1 12
                        2 13>;

};

&aes {
    status = "okay";
};

&sham {
    status = "okay";
};

&wkup_m3_ipc {
    ti,scale-data-fw = "am335x-bone-scale-data.bin";
};

&rtc {
    system-power-controller;
};

&spi1 {
    #address-cell = <1>;
    #size-cells = <0>;
    pinctrl-names = "default";
    pinctrl-0 = <&spi1_pins_default>;
    ti,pindir-d0-out-d1-in = <1>;
    status = "okay";

    lis3dh@0 {
        #address-cell = <1>;
        #size-cells = <0>;
        compatible = "linux,spidev";
        spi-max-frequency = <16000000>;
        reg = <0>;
        spi-cpol;
                spi-cpha;
    };
};

&gpio0 {
    pinctrl-names = "default";
    pinctrl-0 = <&gpio0_pins_default>;    
};

&gpio1 {
    pinctrl-names = "default";
    pinctrl-0 = <&gpio1_pins_default>;    
};

&gpio2 {
    pinctrl-names = "default";
    pinctrl-0 = <&gpio2_pins_default>;    
};

&gpio3 {
    pinctrl-names = "default";
    pinctrl-0 = <&gpio3_pins_default>;    
};

The output of dmesg:

[    0.000000] Booting Linux on physical CPU 0x0                                                                                                                                              
[    0.000000] Linux version 4.19.94-dirty (linus@arya) (gcc version 6.5.0 20181026 (Ubuntu/Linaro 6.5.0-2ubuntu1~18.04)) #1 SMP Mon May 11 11:43:38 CEST 2020                                            
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d                                                                                                                             
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache                                                                                                                    
[    0.000000] OF: fdt: Machine model: AQ240
[    0.000000] Memory policy: Data cache writeback
[    0.000000] cma: Reserved 16 MiB at 0x9e800000
[    0.000000] On node 0 totalpages: 130560
[    0.000000]   Normal zone: 1148 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 130560 pages, LIFO batch:31
[    0.000000] CPU: All CPU(s) started in SVC mode.
[    0.000000] AM335X ES2.1 (neon)
[    0.000000] random: get_random_bytes called from start_kernel+0x90/0x4ac with crng_init=0
[    0.000000] percpu: Embedded 17 pages/cpu s38056 r8192 d23384 u69632
[    0.000000] pcpu-alloc: s38056 r8192 d23384 u69632 alloc=17*4096
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129412
[    0.000000] Kernel command line: root=/dev/mmcblk0p2 rw console=ttyS0,115200n8
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 478976K/522240K available (9216K kernel code, 804K rwdata, 2644K rodata, 1024K init, 7477K bss, 26880K reserved, 16384K cma-reserved, 0K highmem)
[    0.000000] Virtual kernel memory layout:
                   vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                   fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
                   vmalloc : 0xe0000000 - 0xff800000   ( 504 MB)
                   lowmem  : 0xc0000000 - 0xdfe00000   ( 510 MB)
                   pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
                   modules : 0xbf000000 - 0xbfe00000   (  14 MB)
                     .text : 0x(ptrval) - 0x(ptrval)   (10208 kB)
                     .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
                     .data : 0x(ptrval) - 0x(ptrval)   ( 805 kB)
                      .bss : 0x(ptrval) - 0x(ptrval)   (7478 kB)
[    0.000000] Running RCU self tests
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU lockdep checking is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] IRQ: Found an INTC at 0x(ptrval) (revision 5.0) with 128 interrupts
[    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[    0.000019] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.000053] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000116] OMAP clocksource: timer1 at 24000000 Hz
[    0.000625] timer_probe: no matching timers found
[    0.001609] Console: colour dummy device 80x30
[    0.001672] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.001690] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.001706] ... MAX_LOCK_DEPTH:          48
[    0.001721] ... MAX_LOCKDEP_KEYS:        8191
[    0.001736] ... CLASSHASH_SIZE:          4096
[    0.001752] ... MAX_LOCKDEP_ENTRIES:     32768
[    0.001767] ... MAX_LOCKDEP_CHAINS:      65536
[    0.001782] ... CHAINHASH_SIZE:          32768
[    0.001798]  memory used by lock dependency info: 4655 kB
[    0.001813]  per task-struct memory footprint: 1536 bytes
[    0.001904] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
[    0.078572] pid_max: default: 32768 minimum: 301
[    0.079035] Security Framework initialized
[    0.079185] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.079209] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.082586] CPU: Testing write buffer coherency: ok
[    0.082776] CPU0: Spectre v2: using BPIALL workaround
[    0.084337] CPU0: thread -1, cpu 0, socket -1, mpidr 0
[    0.086841] Setting up static identity map for 0x80100000 - 0x80100078
[    0.087515] rcu: Hierarchical SRCU implementation.
[    0.089700] smp: Bringing up secondary CPUs ...
[    0.089732] smp: Brought up 1 node, 1 CPU
[    0.089752] SMP: Total of 1 processors activated (996.14 BogoMIPS).
[    0.089771] CPU: All CPU(s) started in SVC mode.
[    0.093880] devtmpfs: initialized
[    0.121301] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    0.122116] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.122190] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.123881] pinctrl core: initialized pinctrl subsystem
[    0.129077] NET: Registered protocol family 16
[    0.136227] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.198228] l4_wkup_cm:clk:0010:0: failed to disable
[    0.252501] audit: initializing netlink subsys (disabled)
[    0.255383] cpuidle: using governor menu
[    0.284950] audit: type=2000 audit(0.250:1): state=initialized audit_enabled=0 res=1
[    0.290261] No ATAGs?
[    0.290275] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.328215] edma 49000000.edma: TI EDMA DMA engine driver
[    0.329702] of_get_named_gpiod_flags: can't parse 'gpio' property of node '/fixedregulator@1[0]'
[    0.335063] vgaarb: loaded
[    0.336195] SCSI subsystem initialized
[    0.337070] libata version 3.00 loaded.
[    0.337991] pps_core: LinuxPPS API ver. 1 registered
[    0.338019] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.338077] PTP clock support registered
[    0.342762] clocksource: Switched to clocksource timer1
[    0.499964] VFS: Disk quotas dquot_6.6.0
[    0.500184] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.528362] NET: Registered protocol family 2
[    0.530667] tcp_listen_portaddr_hash hash table entries: 256 (order: 1, 10240 bytes)
[    0.530765] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.530865] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)
[    0.531442] TCP: Hash tables configured (established 4096 bind 4096)
[    0.531849] UDP hash table entries: 256 (order: 2, 20480 bytes)
[    0.531969] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[    0.532427] NET: Registered protocol family 1
[    0.535614] RPC: Registered named UNIX socket transport module.
[    0.535700] RPC: Registered udp transport module.
[    0.535719] RPC: Registered tcp transport module.
[    0.535737] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.535772] PCI: CLS 0 bytes, default 64
[    0.539002] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[    0.544089] Initialise system trusted keyrings
[    0.545290] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    0.548518] NFS: Registering the id_resolver key type
[    0.548715] Key type id_resolver registered
[    0.548793] Key type id_legacy registered
[    0.548974] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.557302] Key type asymmetric registered
[    0.557534] Asymmetric key parser 'x509' registered
[    0.557722] io scheduler noop registered
[    0.557748] io scheduler deadline registered
[    0.557944] io scheduler cfq registered (default)
[    0.557971] io scheduler mq-deadline registered
[    0.557990] io scheduler kyber registered
[    0.560797] pinctrl-single 44e10800.pinmux: 142 pins, size 568
[    0.567942] Serial: 8250/16550 driver, 6 ports, IRQ sharing enabled
[    0.581016] console [ttyS0] disabled
[    0.581530] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
[    1.250254] console [ttyS0] enabled
[    1.286875] brd: module loaded
[    1.318196] loop: module loaded
[    1.324178] mtdoops: mtd device (mtddev=name/number) must be supplied
[    1.337349] mdio_bus fixed-0: GPIO lookup for consumer reset
[    1.337374] mdio_bus fixed-0: using lookup tables for GPIO lookup
[    1.337477] mdio_bus fixed-0: No GPIO consumer reset found
[    1.337707] libphy: Fixed MDIO Bus: probed
[    1.360288] mdio_bus 4a101000.mdio: GPIO lookup for consumer reset
[    1.360317] mdio_bus 4a101000.mdio: using device tree for GPIO lookup
[    1.360359] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/ethernet@4a100000/mdio@4a101000[0]'
[    1.360392] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/ethernet@4a100000/mdio@4a101000[0]'
[    1.360410] mdio_bus 4a101000.mdio: using lookup tables for GPIO lookup
[    1.360427] mdio_bus 4a101000.mdio: No GPIO consumer reset found
[    1.412779] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6, bus freq 1000000
[    1.420542] davinci_mdio 4a101000.mdio: detected phy mask fffffffc
[    1.433683] libphy: 4a101000.mdio: probed
[    1.437763] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver SMSC LAN8710/LAN8720
[    1.447572] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver SMSC LAN8710/LAN8720
[    1.458439] cpsw 4a100000.ethernet: Detected MACID = f4:e1:1e:55:32:86
[    1.466031] cpsw 4a100000.ethernet: initialized cpsw ale version 1.4
[    1.472445] cpsw 4a100000.ethernet: ALE Table size 1024
[    1.478053] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[    1.488463] cpsw 4a100000.ethernet: cpsw: Detected MACID = f4:e1:1e:55:32:88
[    1.498615] i2c /dev entries driver
[    1.506077] sdhci: Secure Digital Host Controller Interface driver
[    1.512321] sdhci: Copyright(c) Pierre Ossman
[    1.518111] omap_hsmmc 48060000.mmc: GPIO lookup for consumer cd
[    1.518132] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[    1.518176] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/ocp/mmc@48060000[0]'
[    1.518209] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/ocp/mmc@48060000[0]'
[    1.518227] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup
[    1.518245] omap_hsmmc 48060000.mmc: No GPIO consumer cd found
[    1.518265] omap_hsmmc 48060000.mmc: GPIO lookup for consumer wp
[    1.518277] omap_hsmmc 48060000.mmc: using device tree for GPIO lookup
[    1.518307] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@48060000[0]'
[    1.518336] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@48060000[0]'
[    1.518351] omap_hsmmc 48060000.mmc: using lookup tables for GPIO lookup
[    1.518364] omap_hsmmc 48060000.mmc: No GPIO consumer wp found
[    1.519989] omap_hsmmc 48060000.mmc: Linked as a consumer to regulator.1
[    1.553535] omap_hsmmc 481d8000.mmc: GPIO lookup for consumer cd
[    1.553557] omap_hsmmc 481d8000.mmc: using device tree for GPIO lookup
[    1.553605] of_get_named_gpiod_flags: can't parse 'cd-gpios' property of node '/ocp/mmc@481d8000[0]'
[    1.553636] of_get_named_gpiod_flags: can't parse 'cd-gpio' property of node '/ocp/mmc@481d8000[0]'
[    1.553654] omap_hsmmc 481d8000.mmc: using lookup tables for GPIO lookup
[    1.553671] omap_hsmmc 481d8000.mmc: No GPIO consumer cd found
[    1.553690] omap_hsmmc 481d8000.mmc: GPIO lookup for consumer wp
[    1.553701] omap_hsmmc 481d8000.mmc: using device tree for GPIO lookup
[    1.553730] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/ocp/mmc@481d8000[0]'
[    1.553759] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/ocp/mmc@481d8000[0]'
[    1.553774] omap_hsmmc 481d8000.mmc: using lookup tables for GPIO lookup
[    1.553787] omap_hsmmc 481d8000.mmc: No GPIO consumer wp found
[    1.554811] omap_hsmmc 481d8000.mmc: Linked as a consumer to regulator.1
[    1.586861] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.593876] ledtrig-cpu: registered to indicate activity on CPUs
[    1.603300] oprofile: using arm/armv7
[    1.607796] Initializing XFRM netlink socket
[    1.612819] NET: Registered protocol family 10
[    1.622199] Segment Routing with IPv6
[    1.626305] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.634400] NET: Registered protocol family 17
[    1.638969] NET: Registered protocol family 15
[    1.643945] Key type dns_resolver registered
[    1.648392] ThumbEE CPU extension supported.
[    1.652822] Registering SWP/SWPB emulation handler
[    1.657656] omap_voltage_late_init: Voltage driver support not added
[    1.664141] sr_dev_init: Unknown instance smartreflex0
[    1.669780] SmartReflex Class3 initialized
[    1.678268] Loading compiled-in X.509 certificates
[    1.730788] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.743307] gpio gpiochip0: (gpio-0-31): added GPIO chardev (254:0)
[    1.744007] gpiochip_setup_dev: registered GPIOs 0 to 31 on device: gpiochip0 (gpio-0-31)
[    1.744285] OMAP GPIO hardware version 0.1
[    1.750383] mmc0: new high speed SDHC card at address 1234
[    1.758394] gpio gpiochip1: (gpio-32-63): added GPIO chardev (254:1)
[    1.758750] gpiochip_setup_dev: registered GPIOs 32 to 63 on device: gpiochip1 (gpio-32-63)
[    1.764112] mmcblk0: mmc0:1234 SA08G 7.21 GiB
[    1.770450] gpio gpiochip2: (gpio-64-95): added GPIO chardev (254:2)
[    1.770709] gpiochip_setup_dev: registered GPIOs 64 to 95 on device: gpiochip2 (gpio-64-95)
[    1.772777] gpio gpiochip3: (gpio-96-127): added GPIO chardev (254:3)
[    1.773047] gpiochip_setup_dev: registered GPIOs 96 to 127 on device: gpiochip3 (gpio-96-127)
[    1.785510]  mmcblk0: p1 p2
[    1.806391] random: fast init done
[    1.817056] mmc1: new high speed MMC card at address 0001
[    1.826485] mmcblk1: mmc1:0001 Q2J54A 3.64 GiB
[    1.833118] mmcblk1boot0: mmc1:0001 Q2J54A partition 1 2.00 MiB
[    1.840801] mmcblk1boot1: mmc1:0001 Q2J54A partition 2 2.00 MiB
[    1.848990] mmcblk1rpmb: mmc1:0001 Q2J54A partition 3 512 KiB, chardev (248:0)
[    1.883856] tps65217 0-0024: TPS65217 ID 0x6 version 1.2
[    1.890589] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[    1.898039] hctosys: unable to open rtc device (rtc0)
[    1.903328] sr_init: No PMIC hook to init smartreflex
[    1.961578] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    1.970266] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    1.989495] devtmpfs: mounted
[    1.995080] Freeing unused kernel memory: 1024K
[    2.000568] Run /sbin/init as init process
[    2.668608] systemd[1]: System time before build time, advancing clock.
[    2.759323] systemd[1]: Inserted module 'autofs4'
[    2.836586] systemd[1]: systemd 241 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
[    2.859972] systemd[1]: Detected architecture arm.
[    2.925453] systemd[1]: Set hostname to <palette-gateway>.
[    4.197951] systemd[1]: File /lib/systemd/system/systemd-journald.service:12 configures an IP firewall (IPAddressDeny=any), but the local system does not support BPF/cgroup based firewalling.
[    4.216069] systemd[1]: Proceeding WITHOUT firewalling in effect! (This warning is only shown for the first loaded unit using IP firewalling.)
[    4.687508] random: systemd: uninitialized urandom read (16 bytes read)
[    4.706424] random: systemd: uninitialized urandom read (16 bytes read)
[    4.717620] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    4.763217] random: systemd: uninitialized urandom read (16 bytes read)
[    4.770070] systemd[1]: Reached target Swap.
[    4.805600] systemd[1]: Listening on Journal Audit Socket.
[    4.843253] systemd[1]: Reached target Remote File Systems.
[    4.884457] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    7.625823] systemd-journald[77]: Received request to flush runtime journal from PID 1
[    9.914257] cpu cpu0: Linked as a consumer to regulator.3
[    9.920342] cpu cpu0: Dropping the link to regulator.3
[   10.108372] cpu cpu0: Linked as a consumer to regulator.3
[   10.118609] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 1000000 KHz
[   10.127210] cpu cpu0: dev_pm_opp_set_rate: failed to find current OPP for freq 1000000000 (-34)
[   10.256302] omap_rtc 44e3e000.rtc: registered as rtc0
[   10.289291] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[   10.467958] tps6521x_pwrbutton tps65217-pwrbutton: DMA mask not set
[   10.580057] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 800000 KHz
[   10.622173] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[   10.631847] input: tps65217_pwrbutton as /devices/platform/ocp/44e0b000.i2c/i2c-0/0-0024/tps65217-pwrbutton/input/input0
[   11.079610] omap_rng 48310000.rng: Random Number Generator ver. 20
[   11.088224] random: crng init done
[   11.091696] random: 7 urandom warning(s) missed due to ratelimiting
[   11.729526] am335x-phy-driver 47401300.usb-phy: GPIO lookup for consumer reset
[   11.729560] am335x-phy-driver 47401300.usb-phy: using device tree for GPIO lookup
[   11.729620] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[   11.729662] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[   11.729685] am335x-phy-driver 47401300.usb-phy: using lookup tables for GPIO lookup
[   11.729706] am335x-phy-driver 47401300.usb-phy: No GPIO consumer reset found
[   11.729729] am335x-phy-driver 47401300.usb-phy: GPIO lookup for consumer vbus-detect
[   11.729744] am335x-phy-driver 47401300.usb-phy: using device tree for GPIO lookup
[   11.729782] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[   11.729821] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/ocp/usb@47400000/usb-phy@47401300[0]'
[   11.729839] am335x-phy-driver 47401300.usb-phy: using lookup tables for GPIO lookup
[   11.729856] am335x-phy-driver 47401300.usb-phy: No GPIO consumer vbus-detect found
[   11.730026] am335x-phy-driver 47401300.usb-phy: 47401300.usb-phy supply vcc not found, using dummy regulator
[   11.740818] am335x-phy-driver 47401300.usb-phy: Linked as a consumer to regulator.0
[   11.787785] usbcore: registered new interface driver usbfs
[   11.794357] usbcore: registered new interface driver hub
[   11.800641] usbcore: registered new device driver usb
[   12.068321] am335x-phy-driver 47401b00.usb-phy: GPIO lookup for consumer reset
[   12.068354] am335x-phy-driver 47401b00.usb-phy: using device tree for GPIO lookup
[   12.068411] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[   12.068454] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[   12.068476] am335x-phy-driver 47401b00.usb-phy: using lookup tables for GPIO lookup
[   12.068498] am335x-phy-driver 47401b00.usb-phy: No GPIO consumer reset found
[   12.068521] am335x-phy-driver 47401b00.usb-phy: GPIO lookup for consumer vbus-detect
[   12.068537] am335x-phy-driver 47401b00.usb-phy: using device tree for GPIO lookup
[   12.068575] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpios' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[   12.068613] of_get_named_gpiod_flags: can't parse 'vbus-detect-gpio' property of node '/ocp/usb@47400000/usb-phy@47401b00[0]'
[   12.068633] am335x-phy-driver 47401b00.usb-phy: using lookup tables for GPIO lookup
[   12.068650] am335x-phy-driver 47401b00.usb-phy: No GPIO consumer vbus-detect found
[   12.068816] am335x-phy-driver 47401b00.usb-phy: 47401b00.usb-phy supply vcc not found, using dummy regulator
[   12.079538] am335x-phy-driver 47401b00.usb-phy: Linked as a consumer to regulator.0
[   12.476534] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
[   12.483361] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
[   12.799998] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[   12.809046] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   12.816423] usb usb1: Product: MUSB HDRC host driver
[   12.821430] usb usb1: Manufacturer: Linux 4.19.94-dirty musb-hcd
[   12.827559] usb usb1: SerialNumber: musb-hdrc.0
[   13.126291] remoteproc remoteproc0: wkup_m3 is available
[   13.236193] remoteproc remoteproc0: powering up wkup_m3
[   13.309902] PM: Cannot get wkup_m3_ipc handle
[   13.317814] hub 1-0:1.0: USB hub found
[   13.323571] hub 1-0:1.0: 1 port detected
[   13.394086] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 242820
[   13.403641] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
[   13.411028] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   13.478370] PM: bootloader does not support rtc-only!
[   13.576622] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[   13.582074] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
[   13.598271] musb-hdrc musb-hdrc.0: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #1, port1 00000100
[   13.750623] musb-hdrc musb-hdrc.0: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #2, port1 00000104
[   13.829715] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
[   13.838399] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   13.845812] usb usb2: Product: MUSB HDRC host driver
[   13.850823] usb usb2: Manufacturer: Linux 4.19.94-dirty musb-hcd
[   13.856954] usb usb2: SerialNumber: musb-hdrc.1
[   13.903032] musb-hdrc musb-hdrc.0: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #3, port1 00000104
[   14.055472] musb-hdrc musb-hdrc.0: VBUS_ERROR in a_wait_vrise (80, <SessEnd), retry #3, port1 0008010c
[   14.274116] hub 2-0:1.0: USB hub found
[   14.335323] hub 2-0:1.0: 1 port detected
[   14.518895] musb-hdrc musb-hdrc.1: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #1, port1 00000104
[   14.671337] musb-hdrc musb-hdrc.1: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #2, port1 00000104
[   14.823750] musb-hdrc musb-hdrc.1: VBUS_ERROR in a_wait_vrise (81, <SessEnd), retry #3, port1 00000104
[   14.976181] musb-hdrc musb-hdrc.1: VBUS_ERROR in a_wait_vrise (80, <SessEnd), retry #3, port1 0008010c
[   20.708242] net eth0: initializing cpsw version 1.12 (0)
[   20.968366] SMSC LAN8710/LAN8720 4a101000.mdio:00: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=4a101000.mdio:00, irq=POLL)
[   21.109424] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   21.114856] net eth1: initializing cpsw version 1.12 (0)
[   21.255328] SMSC LAN8710/LAN8720 4a101000.mdio:01: attached PHY driver [SMSC LAN8710/LAN8720] (mii_bus:phy_addr=4a101000.mdio:01, irq=POLL)
[   21.271050] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[   23.364895] cpsw 4a100000.ethernet eth1: Link is Up - 100Mbps/Full - flow control off
[   23.375628] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   24.088576] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off
[   24.097543] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Thanks, your help is highly appreciated!

Best regards,

Linus

  • Hi Linus,

    Please post the USB portion of your board schematics, including all the connections from the AM335x USB pins to the USB receptacles.

  • Hi Bin!

    Thanks for reaching out! Ive just solved it, or partially at least. I needed to change the USB_DRVBUS pin to PIN_OUTPUT_PULLDOWN and then it started working for one of the ports.

    The other port is a bit special with an USB-C connector but Ill have a sit down with the HW-designer tomorrow. Ill start a new thread and supply the USB schematics if we dont solve it.

    Againt thanks!

    Best regards,

    Linus

  • Linus,

    I am glad the issue is solved. But it doesn't sound to me to be a proper fix - technically you shouldn't change/set pinmux for the USB_DRVVBUS pin in device tree file, its MODE0 is fully controlled by the USB controller.

  • Bin,

    Ok, thanks for pointing that out.

    Sorry if I dont understand you fully (its my first board bring up). But does that mean that I shouldnt have anything in the dts file regarding the USB_DRVBUS pin?

    And, if I dont have it does that mean it defaults to MODE0?

    If you have a link to a good tutorial, or similiar, to get a better understanding of  what to have in the dts file and how drivers work without them I would appreciate it.

    Thanks!

  • Linus,

    Correct, you don't have to set USB_DRVVBUS pinmux in dts, its default is MODE0. You can refer to the usb settings in am335x-evm.dts, the only thing you need to change is dr_mode if your design uses different mode than the EVM. I suspect your original issue is caused by mistake in board design, that is why I asked for your board schematics.

    You can also watch the training series about USB design linked below. You can skip Module 3 which is irrelevant to AM335x.

  • Bin,

    Thanks! Ill make sure to watch the training videos!

    I took away everything regarding USB_DRVBUS from the DTS and the port with an type A connector works great. I guess I messed up from the beginning when I added the USB_DRVBUS pin to the DTS in the first place. However the Type C connector port only works if there is a device connected at boot. Ill make a new thread about it and make sure to add the schematics.

    Best regards,

    Linus