1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * Copyright (C) STMicroelectronics 2017 - All Rights Reserved 4 * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics. 5 */ 6/dts-v1/; 7 8#include "stm32mp157c-ed1.dts" 9#include <dt-bindings/gpio/gpio.h> 10/* #include <dt-bindings/input/input.h> Remove due to BSD license issue */ 11 12/ { 13 model = "STMicroelectronics STM32MP157C eval daughter on eval mother"; 14 compatible = "st,stm32mp157c-ev1", "st,stm32mp157c-ed1", "st,stm32mp157"; 15 16 chosen { 17 stdout-path = "serial0:115200n8"; 18 }; 19 20 aliases { 21 serial0 = &uart4; 22 ethernet0 = ðernet0; 23 }; 24 25 clocks { 26 clk_ext_camera: clk-ext-camera { 27 #clock-cells = <0>; 28 compatible = "fixed-clock"; 29 clock-frequency = <24000000>; 30 }; 31 }; 32 33 joystick { 34 compatible = "gpio-keys"; 35 pinctrl-0 = <&joystick_pins>; 36 pinctrl-names = "default"; 37 button-0 { 38 label = "JoySel"; 39 /* linux,code = <KEY_ENTER>; BSD license issue */ 40 interrupt-parent = <&stmfx_pinctrl>; 41 interrupts = <0 IRQ_TYPE_EDGE_RISING>; 42 }; 43 button-1 { 44 label = "JoyDown"; 45 /* linux,code = <KEY_DOWN>; BSD license issue */ 46 interrupt-parent = <&stmfx_pinctrl>; 47 interrupts = <1 IRQ_TYPE_EDGE_RISING>; 48 }; 49 button-2 { 50 label = "JoyLeft"; 51 /* linux,code = <KEY_LEFT>; BSD license issue */ 52 interrupt-parent = <&stmfx_pinctrl>; 53 interrupts = <2 IRQ_TYPE_EDGE_RISING>; 54 }; 55 button-3 { 56 label = "JoyRight"; 57 /* linux,code = <KEY_RIGHT>; BSD license issue */ 58 interrupt-parent = <&stmfx_pinctrl>; 59 interrupts = <3 IRQ_TYPE_EDGE_RISING>; 60 }; 61 button-4 { 62 label = "JoyUp"; 63 /* linux,code = <KEY_UP>; BSD license issue */ 64 interrupt-parent = <&stmfx_pinctrl>; 65 interrupts = <4 IRQ_TYPE_EDGE_RISING>; 66 }; 67 }; 68 69 panel_backlight: panel-backlight { 70 compatible = "gpio-backlight"; 71 gpios = <&gpiod 13 GPIO_ACTIVE_LOW>; 72 default-on; 73 status = "okay"; 74 }; 75}; 76 77&cec { 78 pinctrl-names = "default"; 79 pinctrl-0 = <&cec_pins_a>; 80 status = "okay"; 81}; 82 83&dcmi { 84 status = "okay"; 85 pinctrl-names = "default", "sleep"; 86 pinctrl-0 = <&dcmi_pins_a>; 87 pinctrl-1 = <&dcmi_sleep_pins_a>; 88 89 port { 90 dcmi_0: endpoint { 91 remote-endpoint = <&ov5640_0>; 92 bus-width = <8>; 93 hsync-active = <0>; 94 vsync-active = <0>; 95 pclk-sample = <1>; 96 }; 97 }; 98}; 99 100&dsi { 101 #address-cells = <1>; 102 #size-cells = <0>; 103 phy-dsi-supply = <®18>; 104 status = "okay"; 105 106 ports { 107 #address-cells = <1>; 108 #size-cells = <0>; 109 110 port@0 { 111 reg = <0>; 112 dsi_in: endpoint { 113 remote-endpoint = <<dc_ep0_out>; 114 }; 115 }; 116 117 port@1 { 118 reg = <1>; 119 dsi_out: endpoint { 120 remote-endpoint = <&dsi_panel_in>; 121 }; 122 }; 123 }; 124 125 panel-dsi@0 { 126 compatible = "raydium,rm68200"; 127 reg = <0>; 128 reset-gpios = <&gpiof 15 GPIO_ACTIVE_LOW>; 129 backlight = <&panel_backlight>; 130 power-supply = <&v3v3>; 131 status = "okay"; 132 133 port { 134 dsi_panel_in: endpoint { 135 remote-endpoint = <&dsi_out>; 136 }; 137 }; 138 }; 139}; 140 141ðernet0 { 142 status = "okay"; 143 pinctrl-0 = <ðernet0_rgmii_pins_a>; 144 pinctrl-1 = <ðernet0_rgmii_pins_sleep_a>; 145 pinctrl-names = "default", "sleep"; 146 phy-mode = "rgmii-id"; 147 max-speed = <1000>; 148 phy-handle = <&phy0>; 149 150 mdio0 { 151 #address-cells = <1>; 152 #size-cells = <0>; 153 compatible = "snps,dwmac-mdio"; 154 phy0: ethernet-phy@0 { 155 reg = <0>; 156 }; 157 }; 158}; 159 160&fmc { 161 pinctrl-names = "default", "sleep"; 162 pinctrl-0 = <&fmc_pins_a>; 163 pinctrl-1 = <&fmc_sleep_pins_a>; 164 status = "okay"; 165 #address-cells = <1>; 166 #size-cells = <0>; 167 168 nand@0 { 169 reg = <0>; 170 nand-on-flash-bbt; 171 #address-cells = <1>; 172 #size-cells = <1>; 173 }; 174}; 175 176&i2c2 { 177 pinctrl-names = "default"; 178 pinctrl-0 = <&i2c2_pins_a>; 179 i2c-scl-rising-time-ns = <185>; 180 i2c-scl-falling-time-ns = <20>; 181 status = "okay"; 182 183 ov5640: camera@3c { 184 compatible = "ovti,ov5640"; 185 reg = <0x3c>; 186 clocks = <&clk_ext_camera>; 187 clock-names = "xclk"; 188 DOVDD-supply = <&v2v8>; 189 powerdown-gpios = <&stmfx_pinctrl 18 (GPIO_ACTIVE_HIGH | GPIO_PUSH_PULL)>; 190 reset-gpios = <&stmfx_pinctrl 19 (GPIO_ACTIVE_LOW | GPIO_PUSH_PULL)>; 191 rotation = <180>; 192 status = "okay"; 193 194 port { 195 ov5640_0: endpoint { 196 remote-endpoint = <&dcmi_0>; 197 bus-width = <8>; 198 data-shift = <2>; /* lines 9:2 are used */ 199 hsync-active = <0>; 200 vsync-active = <0>; 201 pclk-sample = <1>; 202 }; 203 }; 204 }; 205 206 stmfx: stmfx@42 { 207 compatible = "st,stmfx-0300"; 208 reg = <0x42>; 209 interrupts = <8 IRQ_TYPE_EDGE_RISING>; 210 interrupt-parent = <&gpioi>; 211 vdd-supply = <&v3v3>; 212 213 stmfx_pinctrl: stmfx-pin-controller { 214 compatible = "st,stmfx-0300-pinctrl"; 215 gpio-controller; 216 #gpio-cells = <2>; 217 interrupt-controller; 218 #interrupt-cells = <2>; 219 gpio-ranges = <&stmfx_pinctrl 0 0 24>; 220 221 joystick_pins: joystick { 222 pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4"; 223 bias-pull-down; 224 }; 225 }; 226 }; 227}; 228 229&i2c5 { 230 pinctrl-names = "default"; 231 pinctrl-0 = <&i2c5_pins_a>; 232 i2c-scl-rising-time-ns = <185>; 233 i2c-scl-falling-time-ns = <20>; 234 status = "okay"; 235}; 236 237<dc { 238 status = "okay"; 239 240 port { 241 #address-cells = <1>; 242 #size-cells = <0>; 243 244 ltdc_ep0_out: endpoint@0 { 245 reg = <0>; 246 remote-endpoint = <&dsi_in>; 247 }; 248 }; 249}; 250 251&m_can1 { 252 pinctrl-names = "default", "sleep"; 253 pinctrl-0 = <&m_can1_pins_a>; 254 pinctrl-1 = <&m_can1_sleep_pins_a>; 255 status = "okay"; 256}; 257 258&qspi { 259 pinctrl-names = "default", "sleep"; 260 pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>; 261 pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>; 262 reg = <0x58003000 0x1000>, <0x70000000 0x4000000>; 263 #address-cells = <1>; 264 #size-cells = <0>; 265 status = "okay"; 266 267 flash0: mx66l51235l@0 { 268 compatible = "jedec,spi-nor"; 269 reg = <0>; 270 spi-rx-bus-width = <4>; 271 spi-max-frequency = <108000000>; 272 #address-cells = <1>; 273 #size-cells = <1>; 274 }; 275 276 flash1: mx66l51235l@1 { 277 compatible = "jedec,spi-nor"; 278 reg = <1>; 279 spi-rx-bus-width = <4>; 280 spi-max-frequency = <108000000>; 281 #address-cells = <1>; 282 #size-cells = <1>; 283 }; 284}; 285 286&sdmmc3 { 287 pinctrl-names = "default", "opendrain", "sleep"; 288 pinctrl-0 = <&sdmmc3_b4_pins_a>; 289 pinctrl-1 = <&sdmmc3_b4_od_pins_a>; 290 pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>; 291 broken-cd; 292 st,neg-edge; 293 bus-width = <4>; 294 vmmc-supply = <&v3v3>; 295 status = "disabled"; 296}; 297 298&spi1 { 299 pinctrl-names = "default"; 300 pinctrl-0 = <&spi1_pins_a>; 301 status = "disabled"; 302}; 303 304&timers2 { 305 /* spare dmas for other usage (un-delete to enable pwm capture) */ 306 /delete-property/dmas; 307 /delete-property/dma-names; 308 status = "disabled"; 309 pwm { 310 pinctrl-0 = <&pwm2_pins_a>; 311 pinctrl-1 = <&pwm2_sleep_pins_a>; 312 pinctrl-names = "default", "sleep"; 313 status = "okay"; 314 }; 315 timer@1 { 316 status = "okay"; 317 }; 318}; 319 320&timers8 { 321 /delete-property/dmas; 322 /delete-property/dma-names; 323 status = "disabled"; 324 pwm { 325 pinctrl-0 = <&pwm8_pins_a>; 326 pinctrl-1 = <&pwm8_sleep_pins_a>; 327 pinctrl-names = "default", "sleep"; 328 status = "okay"; 329 }; 330 timer@7 { 331 status = "okay"; 332 }; 333}; 334 335&timers12 { 336 /delete-property/dmas; 337 /delete-property/dma-names; 338 status = "disabled"; 339 pwm { 340 pinctrl-0 = <&pwm12_pins_a>; 341 pinctrl-1 = <&pwm12_sleep_pins_a>; 342 pinctrl-names = "default", "sleep"; 343 status = "okay"; 344 }; 345 timer@11 { 346 status = "okay"; 347 }; 348}; 349 350&usbh_ehci { 351 phys = <&usbphyc_port0>; 352 status = "okay"; 353}; 354 355&usbotg_hs { 356 dr_mode = "peripheral"; 357 phys = <&usbphyc_port1 0>; 358 phy-names = "usb2-phy"; 359 status = "okay"; 360}; 361 362&usbphyc { 363 status = "okay"; 364}; 365