I'm trying to get the first USB port working on a am3517 based hardware. The system is working with 2.6.37 for now. USB tree has following structure: HSUSB1 -> TUSB1210 -> SMSC LAN9514 TUSB1210's reset is connected to GPIO 57 (GPMC_NCS6/SYS_NDMAREQ3/0/GPT11_PWM_EVT/GPIO_57) Linux boot log: http://pastebin.com/EmhB4dP2 I'm using 4.9.0-rc7 kernel with omap2plus_defconfig. U-Boot 2016.11 with am3517_evm_defconfig. Why do I get so many "ehci-omap 48064800.ehci: Can't get PHY device for port 0: -517" for the same port? I've also made printk there and with the last probe invocation phy seems to be correctly initialized, but I still don't get SMSC LAN9514 detected. What am I missing? My current DTS below: #include "am3517.dtsi" / { model = "VScom VS-860"; compatible = "ti,am3517-vs860", "ti,am3517", "ti,omap3"; memory@80000000 { device_type = "memory"; reg = <0x80000000 0x10000000>; /* 256 MB */ }; vbat: fixedregulator { compatible = "regulator-fixed"; regulator-name = "vbat"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-boot-on; }; vmmc_fixed: vmmc { compatible = "regulator-fixed"; regulator-name = "vmmc_fixed"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; /* HS USB Port 1 Power */ hsusb1_power: hsusb1_power_reg { compatible = "regulator-fixed"; regulator-name = "hsusb1_vbus"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; startup-delay-us = <70000>; }; /* HS USB Host PHY on PORT 1 */ hsusb1_phy: hsusb1_phy { compatible = "usb-nop-xceiv"; vcc-supply = <&hsusb1_power>; pinctrl-names = "default"; pinctrl-0 = <&phy1_reset_pins>; reset-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>; }; }; &omap3_pmx_core { pinctrl-names = "default"; pinctrl-0 = < &hsusbb1_pins >; uart3_pins: pinmux_uart3_pins { pinctrl-single,pins = < OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx_irrx.uart3_rx_irrx */ OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */ >; }; mmc1_pins: pinmux_mmc1_pins { pinctrl-single,pins = < OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk.sdmmc1_clk */ OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd.sdmmc1_cmd */ OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0.sdmmc1_dat0 */ OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1.sdmmc1_dat1 */ OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2.sdmmc1_dat2 */ OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3.sdmmc1_dat3 */ OMAP3_CORE1_IOPAD(0x2152, PIN_INPUT_PULLUP | MUX_MODE4) /* sdmmc1_dat5.gpio_127 */ >; }; i2c1_pins: pinmux_i2c1_pins { pinctrl-single,pins = < OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */ OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */ >; }; phy1_reset_pins: pinmux_hsusb1_phy_reset_pins { pinctrl-single,pins = < OMAP3_CORE1_IOPAD(0x20ba, PIN_OUTPUT | MUX_MODE4) /* gpmc_ncs6.gpio_57 */ >; }; hsusbb1_pins: pinmux_hsusbb1_pins { pinctrl-single,pins = < OMAP3_CORE1_IOPAD(0x25da, PIN_OUTPUT | MUX_MODE3) /* etk_ctl.hsusb1_clk */ OMAP3_CORE1_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE3) /* etk_clk.hsusb1_stp */ OMAP3_CORE1_IOPAD(0x25ec, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d8.hsusb1_dir */ OMAP3_CORE1_IOPAD(0x25ee, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d9.hsusb1_nxt */ OMAP3_CORE1_IOPAD(0x25dc, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d0.hsusb1_data0 */ OMAP3_CORE1_IOPAD(0x25de, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d1.hsusb1_data1 */ OMAP3_CORE1_IOPAD(0x25e0, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d2.hsusb1_data2 */ OMAP3_CORE1_IOPAD(0x25e2, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d3.hsusb1_data7 */ OMAP3_CORE1_IOPAD(0x25e4, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d4.hsusb1_data4 */ OMAP3_CORE1_IOPAD(0x25e6, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d5.hsusb1_data5 */ OMAP3_CORE1_IOPAD(0x25e8, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d6.hsusb1_data6 */ OMAP3_CORE1_IOPAD(0x25ea, PIN_INPUT_PULLDOWN | MUX_MODE3) /* etk_d7.hsusb1_data3 */ >; }; }; &uart3 { pinctrl-names = "default"; pinctrl-0 = <&uart3_pins>; }; &davinci_emac { status = "okay"; }; &davinci_mdio { status = "okay"; }; &i2c1 { pinctrl-names = "default"; pinctrl-0 = <&i2c1_pins>; clock-frequency = <400000>; tps: tps@48 { reg = <0x48>; }; }; &i2c2 { clock-frequency = <400000>; /* goes to expansion connector */ status = "disabled"; }; &mmc1 { pinctrl-names = "default"; pinctrl-0 = <&mmc1_pins>; bus-width = <4>; vmmc-supply = <&vmmc_fixed>; /*cd-gpios = <&gpio3 31 GPIO_ACTIVE_HIGH>; *//* gpio_127 */ ti,non-removable; status = "okay"; }; &mmc2 { /* goes to expansion connector */ status = "disabled"; }; &mmc3 { /* goes to expansion connector */ status = "disabled"; }; &usbhshost { num-ports = <1>; port1-mode = "ehci-phy"; }; &usbhsehci { phys = <&hsusb1_phy>; }; /include/ "tps6507x.dtsi" &tps { vdcdc1_2-supply = <&vbat>; vdcdc3-supply = <&vbat>; vldo1_2-supply = <&vbat>; regulators { vdcdc1_reg: regulator@0 { regulator-name = "VDCDC1_1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; regulator-boot-on; }; vdcdc2_reg: regulator@1 { regulator-name = "VDCDC2_1.8V"; regulator-min-microvolt = <1710000>; regulator-max-microvolt = <3450000>; regulator-always-on; regulator-boot-on; ti,defdcdc_default = <0>; }; vdcdc3_reg: regulator@2 { regulator-name = "VDCDC3_1.2V"; regulator-min-microvolt = <950000>; regulator-max-microvolt = <1350000>; regulator-always-on; regulator-boot-on; ti,defdcdc_default = <0>; }; ldo1_reg: regulator@3 { regulator-name = "LDO1_1.8V"; regulator-min-microvolt = <1710000>; regulator-max-microvolt = <1890000>; regulator-always-on; regulator-boot-on; }; ldo2_reg: regulator@4 { regulator-name = "LDO2_1.8V"; regulator-min-microvolt = <1710000>; regulator-max-microvolt = <1890000>; regulator-always-on; regulator-boot-on; }; }; }; Yegor -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html