1*4882a593Smuzhiyun/* SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause) */ 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright (C) 2020 STMicroelectronics - All Rights Reserved 4*4882a593Smuzhiyun * Copyright (C) 2020 Ahmad Fatoum, Pengutronix 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun/dts-v1/; 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun#include "stm32mp157.dtsi" 10*4882a593Smuzhiyun#include "stm32mp15xx-osd32.dtsi" 11*4882a593Smuzhiyun#include "stm32mp15xxac-pinctrl.dtsi" 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 14*4882a593Smuzhiyun#include <dt-bindings/pwm/pwm.h> 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun/ { 17*4882a593Smuzhiyun model = "Linux Automation MC-1 board"; 18*4882a593Smuzhiyun compatible = "lxa,stm32mp157c-mc1", "st,stm32mp157"; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun aliases { 21*4882a593Smuzhiyun ethernet0 = ðernet0; 22*4882a593Smuzhiyun mmc0 = &sdmmc1; 23*4882a593Smuzhiyun mmc1 = &sdmmc2; 24*4882a593Smuzhiyun serial0 = &uart4; 25*4882a593Smuzhiyun }; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun backlight: backlight { 28*4882a593Smuzhiyun compatible = "pwm-backlight"; 29*4882a593Smuzhiyun pwms = <&backlight_pwm 1 100000 PWM_POLARITY_INVERTED>; 30*4882a593Smuzhiyun brightness-levels = <0 31 63 95 127 159 191 223 255>; 31*4882a593Smuzhiyun default-brightness-level = <7>; 32*4882a593Smuzhiyun power-supply = <®_5v2>; /* 3V3_BACKLIGHT */ 33*4882a593Smuzhiyun }; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun chosen { 36*4882a593Smuzhiyun stdout-path = &uart4; 37*4882a593Smuzhiyun }; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun led-act { 40*4882a593Smuzhiyun compatible = "gpio-leds"; 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun led-green { 43*4882a593Smuzhiyun label = "mc1:green:act"; 44*4882a593Smuzhiyun gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; 45*4882a593Smuzhiyun linux,default-trigger = "heartbeat"; 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun }; 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun led-rgb { 50*4882a593Smuzhiyun compatible = "pwm-leds"; 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun led-red { 53*4882a593Smuzhiyun label = "mc1:red:rgb"; 54*4882a593Smuzhiyun pwms = <&leds_pwm 1 1000000 0>; 55*4882a593Smuzhiyun max-brightness = <255>; 56*4882a593Smuzhiyun active-low; 57*4882a593Smuzhiyun }; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun led-green { 60*4882a593Smuzhiyun label = "mc1:green:rgb"; 61*4882a593Smuzhiyun pwms = <&leds_pwm 2 1000000 0>; 62*4882a593Smuzhiyun max-brightness = <255>; 63*4882a593Smuzhiyun active-low; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun led-blue { 67*4882a593Smuzhiyun label = "mc1:blue:rgb"; 68*4882a593Smuzhiyun pwms = <&leds_pwm 3 1000000 0>; 69*4882a593Smuzhiyun max-brightness = <255>; 70*4882a593Smuzhiyun active-low; 71*4882a593Smuzhiyun }; 72*4882a593Smuzhiyun }; 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun panel: panel { 75*4882a593Smuzhiyun compatible = "edt,etm0700g0edh6", "simple-panel"; 76*4882a593Smuzhiyun backlight = <&backlight>; 77*4882a593Smuzhiyun enable-gpios = <&gpiod 4 GPIO_ACTIVE_HIGH>; 78*4882a593Smuzhiyun power-supply = <®_3v3>; 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun port { 81*4882a593Smuzhiyun panel_input: endpoint { 82*4882a593Smuzhiyun remote-endpoint = <<dc_ep0_out>; 83*4882a593Smuzhiyun }; 84*4882a593Smuzhiyun }; 85*4882a593Smuzhiyun }; 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun reg_3v3: regulator_3v3 { 88*4882a593Smuzhiyun compatible = "regulator-fixed"; 89*4882a593Smuzhiyun regulator-name = "3V3"; 90*4882a593Smuzhiyun regulator-min-microvolt = <3300000>; 91*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 92*4882a593Smuzhiyun regulator-always-on; 93*4882a593Smuzhiyun vin-supply = <&v3v3>; 94*4882a593Smuzhiyun }; 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun /* supplied by either debug board or PoE */ 97*4882a593Smuzhiyun reg_5v2: regulator_5v2 { 98*4882a593Smuzhiyun compatible = "regulator-fixed"; 99*4882a593Smuzhiyun regulator-name = "5V2"; 100*4882a593Smuzhiyun regulator-min-microvolt = <5200000>; 101*4882a593Smuzhiyun regulator-max-microvolt = <5200000>; 102*4882a593Smuzhiyun regulator-always-on; 103*4882a593Smuzhiyun }; 104*4882a593Smuzhiyun}; 105*4882a593Smuzhiyun 106*4882a593Smuzhiyunðernet0 { 107*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 108*4882a593Smuzhiyun pinctrl-0 = <ðernet0_rgmii_pins_b>; 109*4882a593Smuzhiyun pinctrl-1 = <ðernet0_rgmii_sleep_pins_b>; 110*4882a593Smuzhiyun phy-mode = "rgmii-id"; 111*4882a593Smuzhiyun phy-handle = <ðphy>; 112*4882a593Smuzhiyun status = "okay"; 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun mdio0 { 115*4882a593Smuzhiyun compatible = "snps,dwmac-mdio"; 116*4882a593Smuzhiyun #address-cells = <1>; 117*4882a593Smuzhiyun #size-cells = <0>; 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun ethphy: ethernet-phy@3 { /* KSZ9031RN */ 120*4882a593Smuzhiyun reg = <3>; 121*4882a593Smuzhiyun reset-gpios = <&gpiog 0 GPIO_ACTIVE_LOW>; /* ETH_RST# */ 122*4882a593Smuzhiyun interrupt-parent = <&gpioa>; 123*4882a593Smuzhiyun interrupts = <6 IRQ_TYPE_EDGE_FALLING>; /* ETH_MDINT# */ 124*4882a593Smuzhiyun reset-assert-us = <10000>; 125*4882a593Smuzhiyun reset-deassert-us = <300>; 126*4882a593Smuzhiyun micrel,force-master; 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun}; 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun&gpioz { 132*4882a593Smuzhiyun gpio-line-names = "HWID0", "HWID1", "HWID2", "HWID3", "", "", 133*4882a593Smuzhiyun "HWID4", "HWID5"; 134*4882a593Smuzhiyun}; 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun&i2c5 { 137*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 138*4882a593Smuzhiyun pinctrl-0 = <&i2c5_pins_b>; 139*4882a593Smuzhiyun pinctrl-1 = <&i2c5_sleep_pins_b>; 140*4882a593Smuzhiyun clock-frequency = <400000>; 141*4882a593Smuzhiyun status = "okay"; 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun touchscreen@38 { 144*4882a593Smuzhiyun compatible = "edt,edt-ft5x06"; 145*4882a593Smuzhiyun interrupt-parent = <&gpiod>; 146*4882a593Smuzhiyun interrupts = <11 IRQ_TYPE_EDGE_FALLING>; /* TOUCH_INT# */ 147*4882a593Smuzhiyun vcc-supply = <®_3v3>; 148*4882a593Smuzhiyun reg = <0x38>; 149*4882a593Smuzhiyun reset-gpios = <&gpiof 8 GPIO_ACTIVE_LOW>; /* TOUCH_RESET# */ 150*4882a593Smuzhiyun touchscreen-size-x = <1792>; 151*4882a593Smuzhiyun touchscreen-size-y = <1024>; 152*4882a593Smuzhiyun wakeup-source; 153*4882a593Smuzhiyun }; 154*4882a593Smuzhiyun}; 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun<dc { 157*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 158*4882a593Smuzhiyun pinctrl-0 = <<dc_pins_c>; 159*4882a593Smuzhiyun pinctrl-1 = <<dc_sleep_pins_c>; 160*4882a593Smuzhiyun status = "okay"; 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun port { 163*4882a593Smuzhiyun ltdc_ep0_out: endpoint@0 { 164*4882a593Smuzhiyun reg = <0>; 165*4882a593Smuzhiyun remote-endpoint = <&panel_input>; 166*4882a593Smuzhiyun }; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun}; 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun&pmic { 171*4882a593Smuzhiyun regulators { 172*4882a593Smuzhiyun buck4-supply = <®_5v2>; /* VIN */ 173*4882a593Smuzhiyun ldo2-supply = <®_5v2>; /* PMIC_LDO25IN */ 174*4882a593Smuzhiyun ldo5-supply = <®_5v2>; /* PMIC_LDO25IN */ 175*4882a593Smuzhiyun boost-supply = <®_5v2>; /* PMIC_BSTIN */ 176*4882a593Smuzhiyun pwr_sw2-supply = <&bst_out>; /* PMIC_SWIN */ 177*4882a593Smuzhiyun }; 178*4882a593Smuzhiyun}; 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun&sdmmc1 { 181*4882a593Smuzhiyun pinctrl-names = "default", "opendrain", "sleep"; 182*4882a593Smuzhiyun pinctrl-0 = <&sdmmc1_b4_pins_a>; 183*4882a593Smuzhiyun pinctrl-1 = <&sdmmc1_b4_od_pins_a>; 184*4882a593Smuzhiyun pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>; 185*4882a593Smuzhiyun bus-width = <4>; 186*4882a593Smuzhiyun cd-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>; 187*4882a593Smuzhiyun disable-wp; 188*4882a593Smuzhiyun no-1-8-v; 189*4882a593Smuzhiyun st,neg-edge; 190*4882a593Smuzhiyun vmmc-supply = <®_3v3>; 191*4882a593Smuzhiyun status = "okay"; 192*4882a593Smuzhiyun}; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun&sdmmc1_b4_pins_a { 195*4882a593Smuzhiyun /* 196*4882a593Smuzhiyun * board lacks external pull-ups on SDMMC lines. Class 10 SD refuses to 197*4882a593Smuzhiyun * work, thus enable internal pull-ups. 198*4882a593Smuzhiyun */ 199*4882a593Smuzhiyun pins1 { 200*4882a593Smuzhiyun /delete-property/ bias-disable; 201*4882a593Smuzhiyun bias-pull-up; 202*4882a593Smuzhiyun }; 203*4882a593Smuzhiyun pins2 { 204*4882a593Smuzhiyun /delete-property/ bias-disable; 205*4882a593Smuzhiyun bias-pull-up; 206*4882a593Smuzhiyun }; 207*4882a593Smuzhiyun}; 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun&sdmmc2 { 210*4882a593Smuzhiyun pinctrl-names = "default", "opendrain", "sleep"; 211*4882a593Smuzhiyun pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_b>; 212*4882a593Smuzhiyun pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_b>; 213*4882a593Smuzhiyun pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_b>; 214*4882a593Smuzhiyun bus-width = <8>; 215*4882a593Smuzhiyun mmc-ddr-3_3v; 216*4882a593Smuzhiyun no-1-8-v; 217*4882a593Smuzhiyun no-sd; 218*4882a593Smuzhiyun no-sdio; 219*4882a593Smuzhiyun non-removable; 220*4882a593Smuzhiyun st,neg-edge; 221*4882a593Smuzhiyun vmmc-supply = <®_3v3>; 222*4882a593Smuzhiyun status = "okay"; 223*4882a593Smuzhiyun}; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun&timers3 { 226*4882a593Smuzhiyun status = "okay"; 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun backlight_pwm: pwm { 229*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 230*4882a593Smuzhiyun pinctrl-0 = <&pwm3_pins_b>; 231*4882a593Smuzhiyun pinctrl-1 = <&pwm3_sleep_pins_b>; 232*4882a593Smuzhiyun status = "okay"; 233*4882a593Smuzhiyun }; 234*4882a593Smuzhiyun}; 235*4882a593Smuzhiyun 236*4882a593Smuzhiyun&timers5 { 237*4882a593Smuzhiyun status = "okay"; 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun leds_pwm: pwm { 240*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 241*4882a593Smuzhiyun pinctrl-0 = <&pwm5_pins_b>; 242*4882a593Smuzhiyun pinctrl-1 = <&pwm5_sleep_pins_b>; 243*4882a593Smuzhiyun status = "okay"; 244*4882a593Smuzhiyun }; 245*4882a593Smuzhiyun}; 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun&uart4 { 248*4882a593Smuzhiyun pinctrl-names = "default"; 249*4882a593Smuzhiyun pinctrl-0 = <&uart4_pins_a>; 250*4882a593Smuzhiyun status = "okay"; 251*4882a593Smuzhiyun}; 252