1*84943d6fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2*84943d6fSEmmanuel Vadot/* 3*84943d6fSEmmanuel Vadot * Copyright (C) Geanix ApS 2023 - All Rights Reserved 4*84943d6fSEmmanuel Vadot * Author: Sean Nyekjaer <sean@geanix.com> 5*84943d6fSEmmanuel Vadot */ 6*84943d6fSEmmanuel Vadot 7*84943d6fSEmmanuel Vadot/dts-v1/; 8*84943d6fSEmmanuel Vadot 9*84943d6fSEmmanuel Vadot#include "stm32mp157.dtsi" 10*84943d6fSEmmanuel Vadot#include "stm32mp15xc.dtsi" 11*84943d6fSEmmanuel Vadot#include "stm32mp15xx-osd32.dtsi" 12*84943d6fSEmmanuel Vadot#include "stm32mp15xxac-pinctrl.dtsi" 13*84943d6fSEmmanuel Vadot 14*84943d6fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 15*84943d6fSEmmanuel Vadot#include <dt-bindings/pinctrl/stm32-pinfunc.h> 16*84943d6fSEmmanuel Vadot 17*84943d6fSEmmanuel Vadot/ { 18*84943d6fSEmmanuel Vadot model = "Octavo OSD32MP1 RED board"; 19*84943d6fSEmmanuel Vadot compatible = "oct,stm32mp157c-osd32-red", "oct,stm32mp15xx-osd32", "st,stm32mp157"; 20*84943d6fSEmmanuel Vadot 21*84943d6fSEmmanuel Vadot aliases { 22*84943d6fSEmmanuel Vadot serial0 = &uart4; 23*84943d6fSEmmanuel Vadot }; 24*84943d6fSEmmanuel Vadot 25*84943d6fSEmmanuel Vadot chosen { 26*84943d6fSEmmanuel Vadot stdout-path = "serial0:115200n8"; 27*84943d6fSEmmanuel Vadot }; 28*84943d6fSEmmanuel Vadot 29*84943d6fSEmmanuel Vadot led-controller-0 { 30*84943d6fSEmmanuel Vadot compatible = "gpio-leds"; 31*84943d6fSEmmanuel Vadot 32*84943d6fSEmmanuel Vadot led-0 { 33*84943d6fSEmmanuel Vadot label = "heartbeat"; 34*84943d6fSEmmanuel Vadot gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>; 35*84943d6fSEmmanuel Vadot linux,default-trigger = "heartbeat"; 36*84943d6fSEmmanuel Vadot }; 37*84943d6fSEmmanuel Vadot }; 38*84943d6fSEmmanuel Vadot}; 39*84943d6fSEmmanuel Vadot 40*84943d6fSEmmanuel Vadot&crc1 { 41*84943d6fSEmmanuel Vadot status = "okay"; 42*84943d6fSEmmanuel Vadot}; 43*84943d6fSEmmanuel Vadot 44*84943d6fSEmmanuel Vadot&dts { 45*84943d6fSEmmanuel Vadot status = "okay"; 46*84943d6fSEmmanuel Vadot}; 47*84943d6fSEmmanuel Vadot 48*84943d6fSEmmanuel Vadotðernet0 { 49*84943d6fSEmmanuel Vadot pinctrl-names = "default", "sleep"; 50*84943d6fSEmmanuel Vadot pinctrl-0 = <ðernet0_rgmii_pins_a>; 51*84943d6fSEmmanuel Vadot pinctrl-1 = <ðernet0_rgmii_sleep_pins_a>; 52*84943d6fSEmmanuel Vadot phy-mode = "rgmii-id"; 53*84943d6fSEmmanuel Vadot max-speed = <1000>; 54*84943d6fSEmmanuel Vadot phy-handle = <&phy0>; 55*84943d6fSEmmanuel Vadot st,eth-clk-sel; 56*84943d6fSEmmanuel Vadot status = "okay"; 57*84943d6fSEmmanuel Vadot 58*84943d6fSEmmanuel Vadot mdio { 59*84943d6fSEmmanuel Vadot compatible = "snps,dwmac-mdio"; 60*84943d6fSEmmanuel Vadot #address-cells = <1>; 61*84943d6fSEmmanuel Vadot #size-cells = <0>; 62*84943d6fSEmmanuel Vadot 63*84943d6fSEmmanuel Vadot phy0: ethernet-phy@3 { 64*84943d6fSEmmanuel Vadot reg = <3>; 65*84943d6fSEmmanuel Vadot }; 66*84943d6fSEmmanuel Vadot }; 67*84943d6fSEmmanuel Vadot}; 68*84943d6fSEmmanuel Vadot 69*84943d6fSEmmanuel Vadot&iwdg2 { 70*84943d6fSEmmanuel Vadot timeout-sec = <32>; 71*84943d6fSEmmanuel Vadot status = "okay"; 72*84943d6fSEmmanuel Vadot}; 73*84943d6fSEmmanuel Vadot 74*84943d6fSEmmanuel Vadot&i2c1 { 75*84943d6fSEmmanuel Vadot pinctrl-names = "default", "sleep"; 76*84943d6fSEmmanuel Vadot pinctrl-0 = <&i2c1_pins_a>; 77*84943d6fSEmmanuel Vadot pinctrl-1 = <&i2c1_sleep_pins_a>; 78*84943d6fSEmmanuel Vadot status = "okay"; 79*84943d6fSEmmanuel Vadot i2c-scl-rising-time-ns = <100>; 80*84943d6fSEmmanuel Vadot i2c-scl-falling-time-ns = <7>; 81*84943d6fSEmmanuel Vadot /* spare dmas for other usage */ 82*84943d6fSEmmanuel Vadot /delete-property/dmas; 83*84943d6fSEmmanuel Vadot /delete-property/dma-names; 84*84943d6fSEmmanuel Vadot 85*84943d6fSEmmanuel Vadot hdmi-transmitter@39 { 86*84943d6fSEmmanuel Vadot compatible = "sil,sii9022"; 87*84943d6fSEmmanuel Vadot reg = <0x39>; 88*84943d6fSEmmanuel Vadot reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>; 89*84943d6fSEmmanuel Vadot interrupts = <1 IRQ_TYPE_EDGE_FALLING>; 90*84943d6fSEmmanuel Vadot interrupt-parent = <&gpiog>; 91*84943d6fSEmmanuel Vadot pinctrl-names = "default", "sleep"; 92*84943d6fSEmmanuel Vadot pinctrl-0 = <<dc_pins_e>; 93*84943d6fSEmmanuel Vadot pinctrl-1 = <<dc_sleep_pins_e>; 94*84943d6fSEmmanuel Vadot 95*84943d6fSEmmanuel Vadot ports { 96*84943d6fSEmmanuel Vadot #address-cells = <1>; 97*84943d6fSEmmanuel Vadot #size-cells = <0>; 98*84943d6fSEmmanuel Vadot 99*84943d6fSEmmanuel Vadot port@0 { 100*84943d6fSEmmanuel Vadot reg = <0>; 101*84943d6fSEmmanuel Vadot sii9022_in: endpoint { 102*84943d6fSEmmanuel Vadot remote-endpoint = <<dc_ep0_out>; 103*84943d6fSEmmanuel Vadot }; 104*84943d6fSEmmanuel Vadot }; 105*84943d6fSEmmanuel Vadot 106*84943d6fSEmmanuel Vadot port@3 { 107*84943d6fSEmmanuel Vadot reg = <3>; 108*84943d6fSEmmanuel Vadot sii9022_tx_endpoint: endpoint { 109*84943d6fSEmmanuel Vadot remote-endpoint = <&i2s2_endpoint>; 110*84943d6fSEmmanuel Vadot }; 111*84943d6fSEmmanuel Vadot }; 112*84943d6fSEmmanuel Vadot }; 113*84943d6fSEmmanuel Vadot }; 114*84943d6fSEmmanuel Vadot}; 115*84943d6fSEmmanuel Vadot 116*84943d6fSEmmanuel Vadot&i2s2 { 117*84943d6fSEmmanuel Vadot clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc CK_PER>, <&rcc PLL3_R>; 118*84943d6fSEmmanuel Vadot clock-names = "pclk", "i2sclk", "x8k", "x11k"; 119*84943d6fSEmmanuel Vadot pinctrl-names = "default", "sleep"; 120*84943d6fSEmmanuel Vadot pinctrl-0 = <&i2s2_pins_b>; 121*84943d6fSEmmanuel Vadot pinctrl-1 = <&i2s2_sleep_pins_b>; 122*84943d6fSEmmanuel Vadot status = "okay"; 123*84943d6fSEmmanuel Vadot 124*84943d6fSEmmanuel Vadot i2s2_port: port { 125*84943d6fSEmmanuel Vadot i2s2_endpoint: endpoint { 126*84943d6fSEmmanuel Vadot remote-endpoint = <&sii9022_tx_endpoint>; 127*84943d6fSEmmanuel Vadot dai-format = "i2s"; 128*84943d6fSEmmanuel Vadot mclk-fs = <256>; 129*84943d6fSEmmanuel Vadot }; 130*84943d6fSEmmanuel Vadot }; 131*84943d6fSEmmanuel Vadot}; 132*84943d6fSEmmanuel Vadot 133*84943d6fSEmmanuel Vadot<dc { 134*84943d6fSEmmanuel Vadot status = "okay"; 135*84943d6fSEmmanuel Vadot 136*84943d6fSEmmanuel Vadot port { 137*84943d6fSEmmanuel Vadot ltdc_ep0_out: endpoint { 138*84943d6fSEmmanuel Vadot remote-endpoint = <&sii9022_in>; 139*84943d6fSEmmanuel Vadot }; 140*84943d6fSEmmanuel Vadot }; 141*84943d6fSEmmanuel Vadot}; 142*84943d6fSEmmanuel Vadot 143*84943d6fSEmmanuel Vadot&m_can1 { 144*84943d6fSEmmanuel Vadot pinctrl-names = "default", "sleep"; 145*84943d6fSEmmanuel Vadot pinctrl-0 = <&m_can1_pins_d>; 146*84943d6fSEmmanuel Vadot pinctrl-1 = <&m_can1_sleep_pins_d>; 147*84943d6fSEmmanuel Vadot status = "okay"; 148*84943d6fSEmmanuel Vadot}; 149*84943d6fSEmmanuel Vadot 150*84943d6fSEmmanuel Vadot&pwr_regulators { 151*84943d6fSEmmanuel Vadot vdd-supply = <&vdd>; 152*84943d6fSEmmanuel Vadot vdd_3v3_usbfs-supply = <&vdd_usb>; 153*84943d6fSEmmanuel Vadot}; 154*84943d6fSEmmanuel Vadot 155*84943d6fSEmmanuel Vadot&rtc { 156*84943d6fSEmmanuel Vadot status = "okay"; 157*84943d6fSEmmanuel Vadot}; 158*84943d6fSEmmanuel Vadot 159*84943d6fSEmmanuel Vadot&sdmmc1 { 160*84943d6fSEmmanuel Vadot pinctrl-names = "default", "opendrain", "sleep"; 161*84943d6fSEmmanuel Vadot pinctrl-0 = <&sdmmc1_b4_pins_a>; 162*84943d6fSEmmanuel Vadot pinctrl-1 = <&sdmmc1_b4_od_pins_a>; 163*84943d6fSEmmanuel Vadot pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>; 164*84943d6fSEmmanuel Vadot cd-gpios = <&gpioe 7 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; 165*84943d6fSEmmanuel Vadot disable-wp; 166*84943d6fSEmmanuel Vadot st,neg-edge; 167*84943d6fSEmmanuel Vadot bus-width = <4>; 168*84943d6fSEmmanuel Vadot vmmc-supply = <&v3v3>; 169*84943d6fSEmmanuel Vadot status = "okay"; 170*84943d6fSEmmanuel Vadot}; 171*84943d6fSEmmanuel Vadot 172*84943d6fSEmmanuel Vadot&sdmmc2 { 173*84943d6fSEmmanuel Vadot pinctrl-names = "default", "opendrain", "sleep"; 174*84943d6fSEmmanuel Vadot pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_d>; 175*84943d6fSEmmanuel Vadot pinctrl-1 = <&sdmmc2_b4_od_pins_a>; 176*84943d6fSEmmanuel Vadot pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_d>; 177*84943d6fSEmmanuel Vadot non-removable; 178*84943d6fSEmmanuel Vadot no-sd; 179*84943d6fSEmmanuel Vadot no-sdio; 180*84943d6fSEmmanuel Vadot st,neg-edge; 181*84943d6fSEmmanuel Vadot bus-width = <8>; 182*84943d6fSEmmanuel Vadot vmmc-supply = <&v3v3>; 183*84943d6fSEmmanuel Vadot vqmmc-supply = <&vdd>; 184*84943d6fSEmmanuel Vadot mmc-ddr-3_3v; 185*84943d6fSEmmanuel Vadot status = "okay"; 186*84943d6fSEmmanuel Vadot}; 187*84943d6fSEmmanuel Vadot 188*84943d6fSEmmanuel Vadot&uart4 { 189*84943d6fSEmmanuel Vadot pinctrl-names = "default", "sleep", "idle"; 190*84943d6fSEmmanuel Vadot pinctrl-0 = <&uart4_pins_a>; 191*84943d6fSEmmanuel Vadot pinctrl-1 = <&uart4_sleep_pins_a>; 192*84943d6fSEmmanuel Vadot pinctrl-2 = <&uart4_idle_pins_a>; 193*84943d6fSEmmanuel Vadot /* spare dmas for other usage */ 194*84943d6fSEmmanuel Vadot /delete-property/dmas; 195*84943d6fSEmmanuel Vadot /delete-property/dma-names; 196*84943d6fSEmmanuel Vadot status = "okay"; 197*84943d6fSEmmanuel Vadot}; 198*84943d6fSEmmanuel Vadot 199*84943d6fSEmmanuel Vadot&usbh_ehci { 200*84943d6fSEmmanuel Vadot status = "okay"; 201*84943d6fSEmmanuel Vadot}; 202*84943d6fSEmmanuel Vadot 203*84943d6fSEmmanuel Vadot&usbh_ohci { 204*84943d6fSEmmanuel Vadot status = "okay"; 205*84943d6fSEmmanuel Vadot}; 206*84943d6fSEmmanuel Vadot 207*84943d6fSEmmanuel Vadot&usbotg_hs { 208*84943d6fSEmmanuel Vadot vbus-supply = <&vbus_otg>; 209*84943d6fSEmmanuel Vadot}; 210*84943d6fSEmmanuel Vadot 211*84943d6fSEmmanuel Vadot&usbphyc { 212*84943d6fSEmmanuel Vadot status = "okay"; 213*84943d6fSEmmanuel Vadot}; 214*84943d6fSEmmanuel Vadot 215*84943d6fSEmmanuel Vadot&usbphyc_port0 { 216*84943d6fSEmmanuel Vadot phy-supply = <&vdd_usb>; 217*84943d6fSEmmanuel Vadot}; 218*84943d6fSEmmanuel Vadot 219*84943d6fSEmmanuel Vadot&usbphyc_port1 { 220*84943d6fSEmmanuel Vadot phy-supply = <&vdd_usb>; 221*84943d6fSEmmanuel Vadot}; 222