1f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2f126890aSEmmanuel Vadot/* 3f126890aSEmmanuel Vadot * Copyright (C) Protonic Holland 4f126890aSEmmanuel Vadot * Author: David Jander <david@protonic.nl> 5f126890aSEmmanuel Vadot */ 6f126890aSEmmanuel Vadot/dts-v1/; 7f126890aSEmmanuel Vadot 8f126890aSEmmanuel Vadot#include "stm32mp151a-prtt1l.dtsi" 9f126890aSEmmanuel Vadot 10f126890aSEmmanuel Vadot/ { 11f126890aSEmmanuel Vadot model = "Protonic PRTT1C"; 12f126890aSEmmanuel Vadot compatible = "prt,prtt1c", "st,stm32mp151"; 13f126890aSEmmanuel Vadot 14f126890aSEmmanuel Vadot clock_ksz9031: clock-ksz9031 { 15f126890aSEmmanuel Vadot compatible = "fixed-clock"; 16f126890aSEmmanuel Vadot #clock-cells = <0>; 17f126890aSEmmanuel Vadot clock-frequency = <25000000>; 18f126890aSEmmanuel Vadot }; 19f126890aSEmmanuel Vadot 20f126890aSEmmanuel Vadot clock_sja1105: clock-sja1105 { 21f126890aSEmmanuel Vadot compatible = "fixed-clock"; 22f126890aSEmmanuel Vadot #clock-cells = <0>; 23f126890aSEmmanuel Vadot clock-frequency = <25000000>; 24f126890aSEmmanuel Vadot }; 25f126890aSEmmanuel Vadot 26aa1a8ff2SEmmanuel Vadot pse_t1l1: ethernet-pse-1 { 27aa1a8ff2SEmmanuel Vadot compatible = "podl-pse-regulator"; 28aa1a8ff2SEmmanuel Vadot pse-supply = <®_t1l1>; 29aa1a8ff2SEmmanuel Vadot #pse-cells = <0>; 30aa1a8ff2SEmmanuel Vadot }; 31aa1a8ff2SEmmanuel Vadot 32aa1a8ff2SEmmanuel Vadot pse_t1l2: ethernet-pse-2 { 33aa1a8ff2SEmmanuel Vadot compatible = "podl-pse-regulator"; 34aa1a8ff2SEmmanuel Vadot pse-supply = <®_t1l2>; 35aa1a8ff2SEmmanuel Vadot #pse-cells = <0>; 36aa1a8ff2SEmmanuel Vadot }; 37aa1a8ff2SEmmanuel Vadot 38f126890aSEmmanuel Vadot mdio0: mdio { 39f126890aSEmmanuel Vadot compatible = "virtual,mdio-gpio"; 40f126890aSEmmanuel Vadot #address-cells = <1>; 41f126890aSEmmanuel Vadot #size-cells = <0>; 42f126890aSEmmanuel Vadot gpios = <&gpioc 1 GPIO_ACTIVE_HIGH 43f126890aSEmmanuel Vadot &gpioa 2 GPIO_ACTIVE_HIGH>; 44f126890aSEmmanuel Vadot 45f126890aSEmmanuel Vadot }; 46f126890aSEmmanuel Vadot 47aa1a8ff2SEmmanuel Vadot reg_t1l1: regulator-pse-t1l1 { 48aa1a8ff2SEmmanuel Vadot compatible = "regulator-fixed"; 49aa1a8ff2SEmmanuel Vadot regulator-name = "pse-t1l1"; 50aa1a8ff2SEmmanuel Vadot regulator-min-microvolt = <12000000>; 51aa1a8ff2SEmmanuel Vadot regulator-max-microvolt = <12000000>; 52aa1a8ff2SEmmanuel Vadot gpio = <&gpiog 13 GPIO_ACTIVE_HIGH>; 53aa1a8ff2SEmmanuel Vadot enable-active-high; 54aa1a8ff2SEmmanuel Vadot }; 55aa1a8ff2SEmmanuel Vadot 56aa1a8ff2SEmmanuel Vadot reg_t1l2: regulator-pse-t1l2 { 57aa1a8ff2SEmmanuel Vadot compatible = "regulator-fixed"; 58aa1a8ff2SEmmanuel Vadot regulator-name = "pse-t1l2"; 59aa1a8ff2SEmmanuel Vadot regulator-min-microvolt = <12000000>; 60aa1a8ff2SEmmanuel Vadot regulator-max-microvolt = <12000000>; 61aa1a8ff2SEmmanuel Vadot gpio = <&gpiog 14 GPIO_ACTIVE_HIGH>; 62aa1a8ff2SEmmanuel Vadot enable-active-high; 63aa1a8ff2SEmmanuel Vadot }; 64aa1a8ff2SEmmanuel Vadot 65f126890aSEmmanuel Vadot wifi_pwrseq: wifi-pwrseq { 66f126890aSEmmanuel Vadot compatible = "mmc-pwrseq-simple"; 67f126890aSEmmanuel Vadot reset-gpios = <&gpiod 8 GPIO_ACTIVE_LOW>; 68f126890aSEmmanuel Vadot }; 69f126890aSEmmanuel Vadot}; 70f126890aSEmmanuel Vadot 71f126890aSEmmanuel Vadotðernet0 { 72f126890aSEmmanuel Vadot fixed-link { 73f126890aSEmmanuel Vadot speed = <100>; 74f126890aSEmmanuel Vadot full-duplex; 75f126890aSEmmanuel Vadot }; 76f126890aSEmmanuel Vadot}; 77f126890aSEmmanuel Vadot 78f126890aSEmmanuel Vadot&gpioa { 79f126890aSEmmanuel Vadot gpio-line-names = 80f126890aSEmmanuel Vadot "", "", "", "PHY0_nRESET", "PHY0_nINT", "", "", "", 81f126890aSEmmanuel Vadot "", "", "", "", "", "", "", "SPI1_nSS"; 82f126890aSEmmanuel Vadot}; 83f126890aSEmmanuel Vadot 84f126890aSEmmanuel Vadot&gpiod { 85f126890aSEmmanuel Vadot gpio-line-names = 86f126890aSEmmanuel Vadot "", "", "", "", "", "", "", "", 87f126890aSEmmanuel Vadot "WFM_RESET", "", "", "", "", "", "", ""; 88f126890aSEmmanuel Vadot}; 89f126890aSEmmanuel Vadot 90f126890aSEmmanuel Vadot&gpioe { 91f126890aSEmmanuel Vadot gpio-line-names = 92f126890aSEmmanuel Vadot "SDMMC2_nRESET", "", "", "", "", "", "SPI1_nRESET", "", 93f126890aSEmmanuel Vadot "", "", "", "", "WFM_nIRQ", "", "", ""; 94f126890aSEmmanuel Vadot}; 95f126890aSEmmanuel Vadot 96f126890aSEmmanuel Vadot&gpiog { 97f126890aSEmmanuel Vadot gpio-line-names = 98f126890aSEmmanuel Vadot "", "", "", "", "", "", "", "PHY3_nINT", 99f126890aSEmmanuel Vadot "PHY1_nINT", "PHY3_nRESET", "PHY2_nINT", "PHY2_nRESET", 100f126890aSEmmanuel Vadot "PHY1_nRESET", "SPE1_PWR", "SPE0_PWR", ""; 101f126890aSEmmanuel Vadot}; 102f126890aSEmmanuel Vadot 103f126890aSEmmanuel Vadot&mdio0 { 104f126890aSEmmanuel Vadot /* All this DP83TD510E PHYs can't be probed before switch@0 is 105f126890aSEmmanuel Vadot * probed so we need to use compatible with PHYid 106f126890aSEmmanuel Vadot */ 107f126890aSEmmanuel Vadot /* TI DP83TD510E */ 108f126890aSEmmanuel Vadot t1l0_phy: ethernet-phy@6 { 109f126890aSEmmanuel Vadot compatible = "ethernet-phy-id2000.0181"; 110f126890aSEmmanuel Vadot reg = <6>; 111f126890aSEmmanuel Vadot interrupts-extended = <&gpioa 4 IRQ_TYPE_LEVEL_LOW>; 112f126890aSEmmanuel Vadot reset-gpios = <&gpioa 3 GPIO_ACTIVE_LOW>; 113f126890aSEmmanuel Vadot reset-assert-us = <10>; 114f126890aSEmmanuel Vadot reset-deassert-us = <35>; 115f126890aSEmmanuel Vadot }; 116f126890aSEmmanuel Vadot 117f126890aSEmmanuel Vadot /* TI DP83TD510E */ 118f126890aSEmmanuel Vadot t1l1_phy: ethernet-phy@7 { 119f126890aSEmmanuel Vadot compatible = "ethernet-phy-id2000.0181"; 120f126890aSEmmanuel Vadot reg = <7>; 121f126890aSEmmanuel Vadot interrupts-extended = <&gpiog 8 IRQ_TYPE_LEVEL_LOW>; 122f126890aSEmmanuel Vadot reset-gpios = <&gpiog 12 GPIO_ACTIVE_LOW>; 123f126890aSEmmanuel Vadot reset-assert-us = <10>; 124f126890aSEmmanuel Vadot reset-deassert-us = <35>; 125aa1a8ff2SEmmanuel Vadot pses = <&pse_t1l1>; 126f126890aSEmmanuel Vadot }; 127f126890aSEmmanuel Vadot 128f126890aSEmmanuel Vadot /* TI DP83TD510E */ 129f126890aSEmmanuel Vadot t1l2_phy: ethernet-phy@10 { 130f126890aSEmmanuel Vadot compatible = "ethernet-phy-id2000.0181"; 131f126890aSEmmanuel Vadot reg = <10>; 132f126890aSEmmanuel Vadot interrupts-extended = <&gpiog 10 IRQ_TYPE_LEVEL_LOW>; 133f126890aSEmmanuel Vadot reset-gpios = <&gpiog 11 GPIO_ACTIVE_LOW>; 134f126890aSEmmanuel Vadot reset-assert-us = <10>; 135f126890aSEmmanuel Vadot reset-deassert-us = <35>; 136aa1a8ff2SEmmanuel Vadot pses = <&pse_t1l2>; 137f126890aSEmmanuel Vadot }; 138f126890aSEmmanuel Vadot 139f126890aSEmmanuel Vadot /* Micrel KSZ9031 */ 140f126890aSEmmanuel Vadot rj45_phy: ethernet-phy@2 { 141f126890aSEmmanuel Vadot reg = <2>; 142f126890aSEmmanuel Vadot interrupts-extended = <&gpiog 7 IRQ_TYPE_LEVEL_LOW>; 143f126890aSEmmanuel Vadot reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>; 144f126890aSEmmanuel Vadot reset-assert-us = <10000>; 145f126890aSEmmanuel Vadot reset-deassert-us = <1000>; 146f126890aSEmmanuel Vadot 147f126890aSEmmanuel Vadot clocks = <&clock_ksz9031>; 148f126890aSEmmanuel Vadot }; 149f126890aSEmmanuel Vadot}; 150f126890aSEmmanuel Vadot 151f126890aSEmmanuel Vadot&qspi { 152f126890aSEmmanuel Vadot status = "disabled"; 153f126890aSEmmanuel Vadot}; 154f126890aSEmmanuel Vadot 155f126890aSEmmanuel Vadot&sdmmc2 { 156f126890aSEmmanuel Vadot pinctrl-names = "default", "opendrain", "sleep"; 157f126890aSEmmanuel Vadot pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>; 158f126890aSEmmanuel Vadot pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>; 159f126890aSEmmanuel Vadot pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>; 160f126890aSEmmanuel Vadot non-removable; 161f126890aSEmmanuel Vadot no-sd; 162f126890aSEmmanuel Vadot no-sdio; 163f126890aSEmmanuel Vadot no-1-8-v; 164f126890aSEmmanuel Vadot st,neg-edge; 165f126890aSEmmanuel Vadot bus-width = <8>; 166f126890aSEmmanuel Vadot vmmc-supply = <®_3v3>; 167f126890aSEmmanuel Vadot vqmmc-supply = <®_3v3>; 168f126890aSEmmanuel Vadot status = "okay"; 169f126890aSEmmanuel Vadot}; 170f126890aSEmmanuel Vadot 171*b2d2a78aSEmmanuel Vadot&{sdmmc2_b4_od_pins_a/pins1} { 172f126890aSEmmanuel Vadot pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */ 173f126890aSEmmanuel Vadot <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */ 174f126890aSEmmanuel Vadot <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */ 175f126890aSEmmanuel Vadot <STM32_PINMUX('B', 4, AF9)>; /* SDMMC2_D3 */ 176f126890aSEmmanuel Vadot}; 177f126890aSEmmanuel Vadot 178*b2d2a78aSEmmanuel Vadot&{sdmmc2_b4_pins_a/pins1} { 179f126890aSEmmanuel Vadot pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */ 180f126890aSEmmanuel Vadot <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */ 181f126890aSEmmanuel Vadot <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */ 182f126890aSEmmanuel Vadot <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */ 183f126890aSEmmanuel Vadot <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */ 184f126890aSEmmanuel Vadot}; 185f126890aSEmmanuel Vadot 186*b2d2a78aSEmmanuel Vadot&{sdmmc2_b4_sleep_pins_a/pins} { 187f126890aSEmmanuel Vadot pinmux = <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */ 188f126890aSEmmanuel Vadot <STM32_PINMUX('B', 7, ANALOG)>, /* SDMMC2_D1 */ 189f126890aSEmmanuel Vadot <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC2_D2 */ 190f126890aSEmmanuel Vadot <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC2_D3 */ 191f126890aSEmmanuel Vadot <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC2_CK */ 192f126890aSEmmanuel Vadot <STM32_PINMUX('G', 6, ANALOG)>; /* SDMMC2_CMD */ 193f126890aSEmmanuel Vadot}; 194f126890aSEmmanuel Vadot 195*b2d2a78aSEmmanuel Vadot&{sdmmc2_d47_pins_a/pins} { 196f126890aSEmmanuel Vadot pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */ 197f126890aSEmmanuel Vadot <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */ 198f126890aSEmmanuel Vadot <STM32_PINMUX('C', 6, AF10)>, /* SDMMC2_D6 */ 199f126890aSEmmanuel Vadot <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */ 200f126890aSEmmanuel Vadot}; 201f126890aSEmmanuel Vadot 202*b2d2a78aSEmmanuel Vadot&{sdmmc2_d47_sleep_pins_a/pins} { 203f126890aSEmmanuel Vadot pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* SDMMC2_D4 */ 204f126890aSEmmanuel Vadot <STM32_PINMUX('A', 9, ANALOG)>, /* SDMMC2_D5 */ 205f126890aSEmmanuel Vadot <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC2_D6 */ 206f126890aSEmmanuel Vadot <STM32_PINMUX('D', 3, ANALOG)>; /* SDMMC2_D7 */ 207f126890aSEmmanuel Vadot}; 208f126890aSEmmanuel Vadot 209f126890aSEmmanuel Vadot&sdmmc3 { 210f126890aSEmmanuel Vadot pinctrl-names = "default", "opendrain", "sleep"; 211f126890aSEmmanuel Vadot pinctrl-0 = <&sdmmc3_b4_pins_b>; 212f126890aSEmmanuel Vadot pinctrl-1 = <&sdmmc3_b4_od_pins_b>; 213f126890aSEmmanuel Vadot pinctrl-2 = <&sdmmc3_b4_sleep_pins_b>; 214f126890aSEmmanuel Vadot non-removable; 215f126890aSEmmanuel Vadot no-1-8-v; 216f126890aSEmmanuel Vadot st,neg-edge; 217f126890aSEmmanuel Vadot bus-width = <4>; 218f126890aSEmmanuel Vadot vmmc-supply = <®_3v3>; 219f126890aSEmmanuel Vadot vqmmc-supply = <®_3v3>; 220f126890aSEmmanuel Vadot mmc-pwrseq = <&wifi_pwrseq>; 221f126890aSEmmanuel Vadot #address-cells = <1>; 222f126890aSEmmanuel Vadot #size-cells = <0>; 223f126890aSEmmanuel Vadot status = "okay"; 224f126890aSEmmanuel Vadot 225f126890aSEmmanuel Vadot mmc@1 { 226f126890aSEmmanuel Vadot compatible = "prt,prtt1c-wfm200", "silabs,wf200"; 227f126890aSEmmanuel Vadot reg = <1>; 228f126890aSEmmanuel Vadot }; 229f126890aSEmmanuel Vadot}; 230f126890aSEmmanuel Vadot 231*b2d2a78aSEmmanuel Vadot&{sdmmc3_b4_od_pins_b/pins1} { 232f126890aSEmmanuel Vadot pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */ 233f126890aSEmmanuel Vadot <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */ 234f126890aSEmmanuel Vadot <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */ 235f126890aSEmmanuel Vadot <STM32_PINMUX('D', 7, AF10)>; /* SDMMC3_D3 */ 236f126890aSEmmanuel Vadot}; 237f126890aSEmmanuel Vadot 238*b2d2a78aSEmmanuel Vadot&{sdmmc3_b4_pins_b/pins1} { 239f126890aSEmmanuel Vadot pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */ 240f126890aSEmmanuel Vadot <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */ 241f126890aSEmmanuel Vadot <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */ 242f126890aSEmmanuel Vadot <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */ 243f126890aSEmmanuel Vadot <STM32_PINMUX('D', 0, AF10)>; /* SDMMC3_CMD */ 244f126890aSEmmanuel Vadot}; 245f126890aSEmmanuel Vadot 246*b2d2a78aSEmmanuel Vadot&{sdmmc3_b4_sleep_pins_b/pins} { 247f126890aSEmmanuel Vadot pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* SDMMC3_D0 */ 248f126890aSEmmanuel Vadot <STM32_PINMUX('D', 4, ANALOG)>, /* SDMMC3_D1 */ 249f126890aSEmmanuel Vadot <STM32_PINMUX('D', 5, ANALOG)>, /* SDMMC3_D2 */ 250f126890aSEmmanuel Vadot <STM32_PINMUX('D', 7, ANALOG)>, /* SDMMC3_D3 */ 251f126890aSEmmanuel Vadot <STM32_PINMUX('G', 15, ANALOG)>, /* SDMMC3_CK */ 252f126890aSEmmanuel Vadot <STM32_PINMUX('D', 0, ANALOG)>; /* SDMMC3_CMD */ 253f126890aSEmmanuel Vadot}; 254f126890aSEmmanuel Vadot 255f126890aSEmmanuel Vadot&spi1 { 256f126890aSEmmanuel Vadot pinctrl-0 = <&spi1_pins_b>; 257f126890aSEmmanuel Vadot pinctrl-names = "default"; 258f126890aSEmmanuel Vadot cs-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>; 259f126890aSEmmanuel Vadot /delete-property/dmas; 260f126890aSEmmanuel Vadot /delete-property/dma-names; 261f126890aSEmmanuel Vadot status = "okay"; 262f126890aSEmmanuel Vadot 263f126890aSEmmanuel Vadot switch@0 { 264f126890aSEmmanuel Vadot compatible = "nxp,sja1105q"; 265f126890aSEmmanuel Vadot reg = <0>; 266f126890aSEmmanuel Vadot spi-max-frequency = <4000000>; 267f126890aSEmmanuel Vadot spi-rx-delay-us = <1>; 268f126890aSEmmanuel Vadot spi-tx-delay-us = <1>; 269f126890aSEmmanuel Vadot spi-cpha; 270f126890aSEmmanuel Vadot 271f126890aSEmmanuel Vadot reset-gpios = <&gpioe 6 GPIO_ACTIVE_LOW>; 272f126890aSEmmanuel Vadot 273f126890aSEmmanuel Vadot clocks = <&clock_sja1105>; 274f126890aSEmmanuel Vadot 275f126890aSEmmanuel Vadot ports { 276f126890aSEmmanuel Vadot #address-cells = <1>; 277f126890aSEmmanuel Vadot #size-cells = <0>; 278f126890aSEmmanuel Vadot 279f126890aSEmmanuel Vadot port@0 { 280f126890aSEmmanuel Vadot reg = <0>; 281f126890aSEmmanuel Vadot label = "t1l0"; 282f126890aSEmmanuel Vadot phy-mode = "rmii"; 283f126890aSEmmanuel Vadot phy-handle = <&t1l0_phy>; 284f126890aSEmmanuel Vadot }; 285f126890aSEmmanuel Vadot 286f126890aSEmmanuel Vadot port@1 { 287f126890aSEmmanuel Vadot reg = <1>; 288f126890aSEmmanuel Vadot label = "t1l1"; 289f126890aSEmmanuel Vadot phy-mode = "rmii"; 290f126890aSEmmanuel Vadot phy-handle = <&t1l1_phy>; 291f126890aSEmmanuel Vadot }; 292f126890aSEmmanuel Vadot 293f126890aSEmmanuel Vadot port@2 { 294f126890aSEmmanuel Vadot reg = <2>; 295f126890aSEmmanuel Vadot label = "t1l2"; 296f126890aSEmmanuel Vadot phy-mode = "rmii"; 297f126890aSEmmanuel Vadot phy-handle = <&t1l2_phy>; 298f126890aSEmmanuel Vadot }; 299f126890aSEmmanuel Vadot 300f126890aSEmmanuel Vadot port@3 { 301f126890aSEmmanuel Vadot reg = <3>; 302f126890aSEmmanuel Vadot label = "rj45"; 303f126890aSEmmanuel Vadot phy-handle = <&rj45_phy>; 304f126890aSEmmanuel Vadot phy-mode = "rgmii-id"; 305f126890aSEmmanuel Vadot }; 306f126890aSEmmanuel Vadot 307f126890aSEmmanuel Vadot port@4 { 308f126890aSEmmanuel Vadot reg = <4>; 309f126890aSEmmanuel Vadot label = "cpu"; 310f126890aSEmmanuel Vadot ethernet = <ðernet0>; 311f126890aSEmmanuel Vadot phy-mode = "rmii"; 312f126890aSEmmanuel Vadot 313f126890aSEmmanuel Vadot fixed-link { 314f126890aSEmmanuel Vadot speed = <100>; 315f126890aSEmmanuel Vadot full-duplex; 316f126890aSEmmanuel Vadot }; 317f126890aSEmmanuel Vadot }; 318f126890aSEmmanuel Vadot }; 319f126890aSEmmanuel Vadot }; 320f126890aSEmmanuel Vadot}; 321