162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (C) Protonic Holland 462306a36Sopenharmony_ci * Author: David Jander <david@protonic.nl> 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci/dts-v1/; 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include "stm32mp151a-prtt1l.dtsi" 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/ { 1162306a36Sopenharmony_ci model = "Protonic PRTT1C"; 1262306a36Sopenharmony_ci compatible = "prt,prtt1c", "st,stm32mp151"; 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci clock_ksz9031: clock-ksz9031 { 1562306a36Sopenharmony_ci compatible = "fixed-clock"; 1662306a36Sopenharmony_ci #clock-cells = <0>; 1762306a36Sopenharmony_ci clock-frequency = <25000000>; 1862306a36Sopenharmony_ci }; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci clock_sja1105: clock-sja1105 { 2162306a36Sopenharmony_ci compatible = "fixed-clock"; 2262306a36Sopenharmony_ci #clock-cells = <0>; 2362306a36Sopenharmony_ci clock-frequency = <25000000>; 2462306a36Sopenharmony_ci }; 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci pse_t1l1: ethernet-pse-1 { 2762306a36Sopenharmony_ci compatible = "podl-pse-regulator"; 2862306a36Sopenharmony_ci pse-supply = <®_t1l1>; 2962306a36Sopenharmony_ci #pse-cells = <0>; 3062306a36Sopenharmony_ci }; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci pse_t1l2: ethernet-pse-2 { 3362306a36Sopenharmony_ci compatible = "podl-pse-regulator"; 3462306a36Sopenharmony_ci pse-supply = <®_t1l2>; 3562306a36Sopenharmony_ci #pse-cells = <0>; 3662306a36Sopenharmony_ci }; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci mdio0: mdio { 3962306a36Sopenharmony_ci compatible = "virtual,mdio-gpio"; 4062306a36Sopenharmony_ci #address-cells = <1>; 4162306a36Sopenharmony_ci #size-cells = <0>; 4262306a36Sopenharmony_ci gpios = <&gpioc 1 GPIO_ACTIVE_HIGH 4362306a36Sopenharmony_ci &gpioa 2 GPIO_ACTIVE_HIGH>; 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci }; 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci reg_t1l1: regulator-pse-t1l1 { 4862306a36Sopenharmony_ci compatible = "regulator-fixed"; 4962306a36Sopenharmony_ci regulator-name = "pse-t1l1"; 5062306a36Sopenharmony_ci regulator-min-microvolt = <12000000>; 5162306a36Sopenharmony_ci regulator-max-microvolt = <12000000>; 5262306a36Sopenharmony_ci gpio = <&gpiog 13 GPIO_ACTIVE_HIGH>; 5362306a36Sopenharmony_ci enable-active-high; 5462306a36Sopenharmony_ci }; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci reg_t1l2: regulator-pse-t1l2 { 5762306a36Sopenharmony_ci compatible = "regulator-fixed"; 5862306a36Sopenharmony_ci regulator-name = "pse-t1l2"; 5962306a36Sopenharmony_ci regulator-min-microvolt = <12000000>; 6062306a36Sopenharmony_ci regulator-max-microvolt = <12000000>; 6162306a36Sopenharmony_ci gpio = <&gpiog 14 GPIO_ACTIVE_HIGH>; 6262306a36Sopenharmony_ci enable-active-high; 6362306a36Sopenharmony_ci }; 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci wifi_pwrseq: wifi-pwrseq { 6662306a36Sopenharmony_ci compatible = "mmc-pwrseq-simple"; 6762306a36Sopenharmony_ci reset-gpios = <&gpiod 8 GPIO_ACTIVE_LOW>; 6862306a36Sopenharmony_ci }; 6962306a36Sopenharmony_ci}; 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ciðernet0 { 7262306a36Sopenharmony_ci fixed-link { 7362306a36Sopenharmony_ci speed = <100>; 7462306a36Sopenharmony_ci full-duplex; 7562306a36Sopenharmony_ci }; 7662306a36Sopenharmony_ci}; 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci&gpioa { 7962306a36Sopenharmony_ci gpio-line-names = 8062306a36Sopenharmony_ci "", "", "", "PHY0_nRESET", "PHY0_nINT", "", "", "", 8162306a36Sopenharmony_ci "", "", "", "", "", "", "", "SPI1_nSS"; 8262306a36Sopenharmony_ci}; 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci&gpiod { 8562306a36Sopenharmony_ci gpio-line-names = 8662306a36Sopenharmony_ci "", "", "", "", "", "", "", "", 8762306a36Sopenharmony_ci "WFM_RESET", "", "", "", "", "", "", ""; 8862306a36Sopenharmony_ci}; 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci&gpioe { 9162306a36Sopenharmony_ci gpio-line-names = 9262306a36Sopenharmony_ci "SDMMC2_nRESET", "", "", "", "", "", "SPI1_nRESET", "", 9362306a36Sopenharmony_ci "", "", "", "", "WFM_nIRQ", "", "", ""; 9462306a36Sopenharmony_ci}; 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ci&gpiog { 9762306a36Sopenharmony_ci gpio-line-names = 9862306a36Sopenharmony_ci "", "", "", "", "", "", "", "PHY3_nINT", 9962306a36Sopenharmony_ci "PHY1_nINT", "PHY3_nRESET", "PHY2_nINT", "PHY2_nRESET", 10062306a36Sopenharmony_ci "PHY1_nRESET", "SPE1_PWR", "SPE0_PWR", ""; 10162306a36Sopenharmony_ci}; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci&mdio0 { 10462306a36Sopenharmony_ci /* All this DP83TD510E PHYs can't be probed before switch@0 is 10562306a36Sopenharmony_ci * probed so we need to use compatible with PHYid 10662306a36Sopenharmony_ci */ 10762306a36Sopenharmony_ci /* TI DP83TD510E */ 10862306a36Sopenharmony_ci t1l0_phy: ethernet-phy@6 { 10962306a36Sopenharmony_ci compatible = "ethernet-phy-id2000.0181"; 11062306a36Sopenharmony_ci reg = <6>; 11162306a36Sopenharmony_ci interrupts-extended = <&gpioa 4 IRQ_TYPE_LEVEL_LOW>; 11262306a36Sopenharmony_ci reset-gpios = <&gpioa 3 GPIO_ACTIVE_LOW>; 11362306a36Sopenharmony_ci reset-assert-us = <10>; 11462306a36Sopenharmony_ci reset-deassert-us = <35>; 11562306a36Sopenharmony_ci }; 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci /* TI DP83TD510E */ 11862306a36Sopenharmony_ci t1l1_phy: ethernet-phy@7 { 11962306a36Sopenharmony_ci compatible = "ethernet-phy-id2000.0181"; 12062306a36Sopenharmony_ci reg = <7>; 12162306a36Sopenharmony_ci interrupts-extended = <&gpiog 8 IRQ_TYPE_LEVEL_LOW>; 12262306a36Sopenharmony_ci reset-gpios = <&gpiog 12 GPIO_ACTIVE_LOW>; 12362306a36Sopenharmony_ci reset-assert-us = <10>; 12462306a36Sopenharmony_ci reset-deassert-us = <35>; 12562306a36Sopenharmony_ci pses = <&pse_t1l1>; 12662306a36Sopenharmony_ci }; 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci /* TI DP83TD510E */ 12962306a36Sopenharmony_ci t1l2_phy: ethernet-phy@10 { 13062306a36Sopenharmony_ci compatible = "ethernet-phy-id2000.0181"; 13162306a36Sopenharmony_ci reg = <10>; 13262306a36Sopenharmony_ci interrupts-extended = <&gpiog 10 IRQ_TYPE_LEVEL_LOW>; 13362306a36Sopenharmony_ci reset-gpios = <&gpiog 11 GPIO_ACTIVE_LOW>; 13462306a36Sopenharmony_ci reset-assert-us = <10>; 13562306a36Sopenharmony_ci reset-deassert-us = <35>; 13662306a36Sopenharmony_ci pses = <&pse_t1l2>; 13762306a36Sopenharmony_ci }; 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci /* Micrel KSZ9031 */ 14062306a36Sopenharmony_ci rj45_phy: ethernet-phy@2 { 14162306a36Sopenharmony_ci reg = <2>; 14262306a36Sopenharmony_ci interrupts-extended = <&gpiog 7 IRQ_TYPE_LEVEL_LOW>; 14362306a36Sopenharmony_ci reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>; 14462306a36Sopenharmony_ci reset-assert-us = <10000>; 14562306a36Sopenharmony_ci reset-deassert-us = <1000>; 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ci clocks = <&clock_ksz9031>; 14862306a36Sopenharmony_ci }; 14962306a36Sopenharmony_ci}; 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci&qspi { 15262306a36Sopenharmony_ci status = "disabled"; 15362306a36Sopenharmony_ci}; 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci&sdmmc2 { 15662306a36Sopenharmony_ci pinctrl-names = "default", "opendrain", "sleep"; 15762306a36Sopenharmony_ci pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>; 15862306a36Sopenharmony_ci pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>; 15962306a36Sopenharmony_ci pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>; 16062306a36Sopenharmony_ci non-removable; 16162306a36Sopenharmony_ci no-sd; 16262306a36Sopenharmony_ci no-sdio; 16362306a36Sopenharmony_ci no-1-8-v; 16462306a36Sopenharmony_ci st,neg-edge; 16562306a36Sopenharmony_ci bus-width = <8>; 16662306a36Sopenharmony_ci vmmc-supply = <®_3v3>; 16762306a36Sopenharmony_ci vqmmc-supply = <®_3v3>; 16862306a36Sopenharmony_ci status = "okay"; 16962306a36Sopenharmony_ci}; 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci&sdmmc2_b4_od_pins_a { 17262306a36Sopenharmony_ci pins1 { 17362306a36Sopenharmony_ci pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */ 17462306a36Sopenharmony_ci <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */ 17562306a36Sopenharmony_ci <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */ 17662306a36Sopenharmony_ci <STM32_PINMUX('B', 4, AF9)>; /* SDMMC2_D3 */ 17762306a36Sopenharmony_ci }; 17862306a36Sopenharmony_ci}; 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci&sdmmc2_b4_pins_a { 18162306a36Sopenharmony_ci pins1 { 18262306a36Sopenharmony_ci pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */ 18362306a36Sopenharmony_ci <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */ 18462306a36Sopenharmony_ci <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */ 18562306a36Sopenharmony_ci <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */ 18662306a36Sopenharmony_ci <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */ 18762306a36Sopenharmony_ci }; 18862306a36Sopenharmony_ci}; 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ci&sdmmc2_b4_sleep_pins_a { 19162306a36Sopenharmony_ci pins { 19262306a36Sopenharmony_ci pinmux = <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */ 19362306a36Sopenharmony_ci <STM32_PINMUX('B', 7, ANALOG)>, /* SDMMC2_D1 */ 19462306a36Sopenharmony_ci <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC2_D2 */ 19562306a36Sopenharmony_ci <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC2_D3 */ 19662306a36Sopenharmony_ci <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC2_CK */ 19762306a36Sopenharmony_ci <STM32_PINMUX('G', 6, ANALOG)>; /* SDMMC2_CMD */ 19862306a36Sopenharmony_ci }; 19962306a36Sopenharmony_ci}; 20062306a36Sopenharmony_ci 20162306a36Sopenharmony_ci&sdmmc2_d47_pins_a { 20262306a36Sopenharmony_ci pins { 20362306a36Sopenharmony_ci pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */ 20462306a36Sopenharmony_ci <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */ 20562306a36Sopenharmony_ci <STM32_PINMUX('C', 6, AF10)>, /* SDMMC2_D6 */ 20662306a36Sopenharmony_ci <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */ 20762306a36Sopenharmony_ci }; 20862306a36Sopenharmony_ci}; 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci&sdmmc2_d47_sleep_pins_a { 21162306a36Sopenharmony_ci pins { 21262306a36Sopenharmony_ci pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* SDMMC2_D4 */ 21362306a36Sopenharmony_ci <STM32_PINMUX('A', 9, ANALOG)>, /* SDMMC2_D5 */ 21462306a36Sopenharmony_ci <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC2_D6 */ 21562306a36Sopenharmony_ci <STM32_PINMUX('D', 3, ANALOG)>; /* SDMMC2_D7 */ 21662306a36Sopenharmony_ci }; 21762306a36Sopenharmony_ci}; 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ci&sdmmc3 { 22062306a36Sopenharmony_ci pinctrl-names = "default", "opendrain", "sleep"; 22162306a36Sopenharmony_ci pinctrl-0 = <&sdmmc3_b4_pins_b>; 22262306a36Sopenharmony_ci pinctrl-1 = <&sdmmc3_b4_od_pins_b>; 22362306a36Sopenharmony_ci pinctrl-2 = <&sdmmc3_b4_sleep_pins_b>; 22462306a36Sopenharmony_ci non-removable; 22562306a36Sopenharmony_ci no-1-8-v; 22662306a36Sopenharmony_ci st,neg-edge; 22762306a36Sopenharmony_ci bus-width = <4>; 22862306a36Sopenharmony_ci vmmc-supply = <®_3v3>; 22962306a36Sopenharmony_ci vqmmc-supply = <®_3v3>; 23062306a36Sopenharmony_ci mmc-pwrseq = <&wifi_pwrseq>; 23162306a36Sopenharmony_ci #address-cells = <1>; 23262306a36Sopenharmony_ci #size-cells = <0>; 23362306a36Sopenharmony_ci status = "okay"; 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci mmc@1 { 23662306a36Sopenharmony_ci compatible = "prt,prtt1c-wfm200", "silabs,wf200"; 23762306a36Sopenharmony_ci reg = <1>; 23862306a36Sopenharmony_ci }; 23962306a36Sopenharmony_ci}; 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ci&sdmmc3_b4_od_pins_b { 24262306a36Sopenharmony_ci pins1 { 24362306a36Sopenharmony_ci pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */ 24462306a36Sopenharmony_ci <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */ 24562306a36Sopenharmony_ci <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */ 24662306a36Sopenharmony_ci <STM32_PINMUX('D', 7, AF10)>; /* SDMMC3_D3 */ 24762306a36Sopenharmony_ci }; 24862306a36Sopenharmony_ci}; 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci&sdmmc3_b4_pins_b { 25162306a36Sopenharmony_ci pins1 { 25262306a36Sopenharmony_ci pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */ 25362306a36Sopenharmony_ci <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */ 25462306a36Sopenharmony_ci <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */ 25562306a36Sopenharmony_ci <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */ 25662306a36Sopenharmony_ci <STM32_PINMUX('D', 0, AF10)>; /* SDMMC3_CMD */ 25762306a36Sopenharmony_ci }; 25862306a36Sopenharmony_ci}; 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ci&sdmmc3_b4_sleep_pins_b { 26162306a36Sopenharmony_ci pins { 26262306a36Sopenharmony_ci pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* SDMMC3_D0 */ 26362306a36Sopenharmony_ci <STM32_PINMUX('D', 4, ANALOG)>, /* SDMMC3_D1 */ 26462306a36Sopenharmony_ci <STM32_PINMUX('D', 5, ANALOG)>, /* SDMMC3_D2 */ 26562306a36Sopenharmony_ci <STM32_PINMUX('D', 7, ANALOG)>, /* SDMMC3_D3 */ 26662306a36Sopenharmony_ci <STM32_PINMUX('G', 15, ANALOG)>, /* SDMMC3_CK */ 26762306a36Sopenharmony_ci <STM32_PINMUX('D', 0, ANALOG)>; /* SDMMC3_CMD */ 26862306a36Sopenharmony_ci }; 26962306a36Sopenharmony_ci}; 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ci&spi1 { 27262306a36Sopenharmony_ci pinctrl-0 = <&spi1_pins_b>; 27362306a36Sopenharmony_ci pinctrl-names = "default"; 27462306a36Sopenharmony_ci cs-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>; 27562306a36Sopenharmony_ci /delete-property/dmas; 27662306a36Sopenharmony_ci /delete-property/dma-names; 27762306a36Sopenharmony_ci status = "okay"; 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ci switch@0 { 28062306a36Sopenharmony_ci compatible = "nxp,sja1105q"; 28162306a36Sopenharmony_ci reg = <0>; 28262306a36Sopenharmony_ci spi-max-frequency = <4000000>; 28362306a36Sopenharmony_ci spi-rx-delay-us = <1>; 28462306a36Sopenharmony_ci spi-tx-delay-us = <1>; 28562306a36Sopenharmony_ci spi-cpha; 28662306a36Sopenharmony_ci 28762306a36Sopenharmony_ci reset-gpios = <&gpioe 6 GPIO_ACTIVE_LOW>; 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci clocks = <&clock_sja1105>; 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_ci ports { 29262306a36Sopenharmony_ci #address-cells = <1>; 29362306a36Sopenharmony_ci #size-cells = <0>; 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci port@0 { 29662306a36Sopenharmony_ci reg = <0>; 29762306a36Sopenharmony_ci label = "t1l0"; 29862306a36Sopenharmony_ci phy-mode = "rmii"; 29962306a36Sopenharmony_ci phy-handle = <&t1l0_phy>; 30062306a36Sopenharmony_ci }; 30162306a36Sopenharmony_ci 30262306a36Sopenharmony_ci port@1 { 30362306a36Sopenharmony_ci reg = <1>; 30462306a36Sopenharmony_ci label = "t1l1"; 30562306a36Sopenharmony_ci phy-mode = "rmii"; 30662306a36Sopenharmony_ci phy-handle = <&t1l1_phy>; 30762306a36Sopenharmony_ci }; 30862306a36Sopenharmony_ci 30962306a36Sopenharmony_ci port@2 { 31062306a36Sopenharmony_ci reg = <2>; 31162306a36Sopenharmony_ci label = "t1l2"; 31262306a36Sopenharmony_ci phy-mode = "rmii"; 31362306a36Sopenharmony_ci phy-handle = <&t1l2_phy>; 31462306a36Sopenharmony_ci }; 31562306a36Sopenharmony_ci 31662306a36Sopenharmony_ci port@3 { 31762306a36Sopenharmony_ci reg = <3>; 31862306a36Sopenharmony_ci label = "rj45"; 31962306a36Sopenharmony_ci phy-handle = <&rj45_phy>; 32062306a36Sopenharmony_ci phy-mode = "rgmii-id"; 32162306a36Sopenharmony_ci }; 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ci port@4 { 32462306a36Sopenharmony_ci reg = <4>; 32562306a36Sopenharmony_ci label = "cpu"; 32662306a36Sopenharmony_ci ethernet = <ðernet0>; 32762306a36Sopenharmony_ci phy-mode = "rmii"; 32862306a36Sopenharmony_ci 32962306a36Sopenharmony_ci fixed-link { 33062306a36Sopenharmony_ci speed = <100>; 33162306a36Sopenharmony_ci full-duplex; 33262306a36Sopenharmony_ci }; 33362306a36Sopenharmony_ci }; 33462306a36Sopenharmony_ci }; 33562306a36Sopenharmony_ci }; 33662306a36Sopenharmony_ci}; 337