stm32mp157c-ev1.dts (8006B)
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> 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 serial1 = &usart3; 23 ethernet0 = ðernet0; 24 }; 25 26 clocks { 27 clk_ext_camera: clk-ext-camera { 28 #clock-cells = <0>; 29 compatible = "fixed-clock"; 30 clock-frequency = <24000000>; 31 }; 32 }; 33 34 joystick { 35 compatible = "gpio-keys"; 36 pinctrl-0 = <&joystick_pins>; 37 pinctrl-names = "default"; 38 button-0 { 39 label = "JoySel"; 40 linux,code = <KEY_ENTER>; 41 interrupt-parent = <&stmfx_pinctrl>; 42 interrupts = <0 IRQ_TYPE_EDGE_RISING>; 43 }; 44 button-1 { 45 label = "JoyDown"; 46 linux,code = <KEY_DOWN>; 47 interrupt-parent = <&stmfx_pinctrl>; 48 interrupts = <1 IRQ_TYPE_EDGE_RISING>; 49 }; 50 button-2 { 51 label = "JoyLeft"; 52 linux,code = <KEY_LEFT>; 53 interrupt-parent = <&stmfx_pinctrl>; 54 interrupts = <2 IRQ_TYPE_EDGE_RISING>; 55 }; 56 button-3 { 57 label = "JoyRight"; 58 linux,code = <KEY_RIGHT>; 59 interrupt-parent = <&stmfx_pinctrl>; 60 interrupts = <3 IRQ_TYPE_EDGE_RISING>; 61 }; 62 button-4 { 63 label = "JoyUp"; 64 linux,code = <KEY_UP>; 65 interrupt-parent = <&stmfx_pinctrl>; 66 interrupts = <4 IRQ_TYPE_EDGE_RISING>; 67 }; 68 }; 69 70 panel_backlight: panel-backlight { 71 compatible = "gpio-backlight"; 72 gpios = <&gpiod 13 GPIO_ACTIVE_LOW>; 73 default-on; 74 status = "okay"; 75 }; 76}; 77 78&cec { 79 pinctrl-names = "default"; 80 pinctrl-0 = <&cec_pins_a>; 81 status = "okay"; 82}; 83 84&dcmi { 85 status = "okay"; 86 pinctrl-names = "default", "sleep"; 87 pinctrl-0 = <&dcmi_pins_a>; 88 pinctrl-1 = <&dcmi_sleep_pins_a>; 89 90 port { 91 dcmi_0: endpoint { 92 remote-endpoint = <&ov5640_0>; 93 bus-type = <5>; 94 bus-width = <8>; 95 hsync-active = <0>; 96 vsync-active = <0>; 97 pclk-sample = <1>; 98 }; 99 }; 100}; 101 102&dsi { 103 phy-dsi-supply = <®18>; 104 status = "okay"; 105 106 ports { 107 port@0 { 108 reg = <0>; 109 dsi_in: endpoint { 110 remote-endpoint = <<dc_ep0_out>; 111 }; 112 }; 113 114 port@1 { 115 reg = <1>; 116 dsi_out: endpoint { 117 remote-endpoint = <&dsi_panel_in>; 118 }; 119 }; 120 }; 121 122 panel-dsi@0 { 123 compatible = "raydium,rm68200"; 124 reg = <0>; 125 reset-gpios = <&gpiof 15 GPIO_ACTIVE_LOW>; 126 backlight = <&panel_backlight>; 127 power-supply = <&v3v3>; 128 status = "okay"; 129 130 port { 131 dsi_panel_in: endpoint { 132 remote-endpoint = <&dsi_out>; 133 }; 134 }; 135 }; 136}; 137 138ðernet0 { 139 status = "okay"; 140 pinctrl-0 = <ðernet0_rgmii_pins_a>; 141 pinctrl-1 = <ðernet0_rgmii_sleep_pins_a>; 142 pinctrl-names = "default", "sleep"; 143 phy-mode = "rgmii-id"; 144 max-speed = <1000>; 145 phy-handle = <&phy0>; 146 147 mdio0 { 148 #address-cells = <1>; 149 #size-cells = <0>; 150 compatible = "snps,dwmac-mdio"; 151 phy0: ethernet-phy@0 { 152 reg = <0>; 153 }; 154 }; 155}; 156 157&fmc { 158 pinctrl-names = "default", "sleep"; 159 pinctrl-0 = <&fmc_pins_a>; 160 pinctrl-1 = <&fmc_sleep_pins_a>; 161 status = "okay"; 162 163 nand-controller@4,0 { 164 status = "okay"; 165 166 nand@0 { 167 reg = <0>; 168 nand-on-flash-bbt; 169 #address-cells = <1>; 170 #size-cells = <1>; 171 }; 172 }; 173}; 174 175&i2c2 { 176 pinctrl-names = "default", "sleep"; 177 pinctrl-0 = <&i2c2_pins_a>; 178 pinctrl-1 = <&i2c2_sleep_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: pinctrl { 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-pins { 222 pins = "gpio0", "gpio1", "gpio2", "gpio3", "gpio4"; 223 bias-pull-down; 224 }; 225 }; 226 }; 227}; 228 229&i2c5 { 230 pinctrl-names = "default", "sleep"; 231 pinctrl-0 = <&i2c5_pins_a>; 232 pinctrl-1 = <&i2c5_sleep_pins_a>; 233 i2c-scl-rising-time-ns = <185>; 234 i2c-scl-falling-time-ns = <20>; 235 status = "okay"; 236}; 237 238<dc { 239 status = "okay"; 240 241 port { 242 ltdc_ep0_out: endpoint@0 { 243 reg = <0>; 244 remote-endpoint = <&dsi_in>; 245 }; 246 }; 247}; 248 249&m_can1 { 250 pinctrl-names = "default", "sleep"; 251 pinctrl-0 = <&m_can1_pins_a>; 252 pinctrl-1 = <&m_can1_sleep_pins_a>; 253 status = "okay"; 254}; 255 256&qspi { 257 pinctrl-names = "default", "sleep"; 258 pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a &qspi_bk2_pins_a>; 259 pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a &qspi_bk2_sleep_pins_a>; 260 reg = <0x58003000 0x1000>, <0x70000000 0x4000000>; 261 #address-cells = <1>; 262 #size-cells = <0>; 263 status = "okay"; 264 265 flash0: flash@0 { 266 compatible = "jedec,spi-nor"; 267 reg = <0>; 268 spi-rx-bus-width = <4>; 269 spi-max-frequency = <108000000>; 270 #address-cells = <1>; 271 #size-cells = <1>; 272 }; 273 274 flash1: flash@1 { 275 compatible = "jedec,spi-nor"; 276 reg = <1>; 277 spi-rx-bus-width = <4>; 278 spi-max-frequency = <108000000>; 279 #address-cells = <1>; 280 #size-cells = <1>; 281 }; 282}; 283 284&sdmmc3 { 285 pinctrl-names = "default", "opendrain", "sleep"; 286 pinctrl-0 = <&sdmmc3_b4_pins_a>; 287 pinctrl-1 = <&sdmmc3_b4_od_pins_a>; 288 pinctrl-2 = <&sdmmc3_b4_sleep_pins_a>; 289 broken-cd; 290 st,neg-edge; 291 bus-width = <4>; 292 vmmc-supply = <&v3v3>; 293 status = "disabled"; 294}; 295 296&spi1 { 297 pinctrl-names = "default"; 298 pinctrl-0 = <&spi1_pins_a>; 299 status = "disabled"; 300}; 301 302&timers2 { 303 /* spare dmas for other usage (un-delete to enable pwm capture) */ 304 /delete-property/dmas; 305 /delete-property/dma-names; 306 status = "disabled"; 307 pwm { 308 pinctrl-0 = <&pwm2_pins_a>; 309 pinctrl-1 = <&pwm2_sleep_pins_a>; 310 pinctrl-names = "default", "sleep"; 311 status = "okay"; 312 }; 313 timer@1 { 314 status = "okay"; 315 }; 316}; 317 318&timers8 { 319 /delete-property/dmas; 320 /delete-property/dma-names; 321 status = "disabled"; 322 pwm { 323 pinctrl-0 = <&pwm8_pins_a>; 324 pinctrl-1 = <&pwm8_sleep_pins_a>; 325 pinctrl-names = "default", "sleep"; 326 status = "okay"; 327 }; 328 timer@7 { 329 status = "okay"; 330 }; 331}; 332 333&timers12 { 334 /delete-property/dmas; 335 /delete-property/dma-names; 336 status = "disabled"; 337 pwm { 338 pinctrl-0 = <&pwm12_pins_a>; 339 pinctrl-1 = <&pwm12_sleep_pins_a>; 340 pinctrl-names = "default", "sleep"; 341 status = "okay"; 342 }; 343 timer@11 { 344 status = "okay"; 345 }; 346}; 347 348&usart3 { 349 pinctrl-names = "default", "sleep", "idle"; 350 pinctrl-0 = <&usart3_pins_b>; 351 pinctrl-1 = <&usart3_sleep_pins_b>; 352 pinctrl-2 = <&usart3_idle_pins_b>; 353 /* 354 * HW flow control USART3_RTS is optional, and isn't default wired to 355 * the connector. SB23 needs to be soldered in order to use it, and R77 356 * (ETH_CLK) should be removed. 357 */ 358 uart-has-rtscts; 359 status = "disabled"; 360}; 361 362&usbh_ehci { 363 phys = <&usbphyc_port0>; 364 status = "okay"; 365}; 366 367&usbotg_hs { 368 pinctrl-0 = <&usbotg_hs_pins_a>; 369 pinctrl-names = "default"; 370 phys = <&usbphyc_port1 0>; 371 phy-names = "usb2-phy"; 372 status = "okay"; 373}; 374 375&usbphyc { 376 status = "okay"; 377}; 378 379&usbphyc_port0 { 380 st,tune-hs-dc-level = <2>; 381 st,enable-fs-rftime-tuning; 382 st,enable-hs-rftime-reduction; 383 st,trim-hs-current = <15>; 384 st,trim-hs-impedance = <1>; 385 st,tune-squelch-level = <3>; 386 st,tune-hs-rx-offset = <2>; 387 st,no-lsfs-sc; 388}; 389 390&usbphyc_port1 { 391 st,tune-hs-dc-level = <2>; 392 st,enable-fs-rftime-tuning; 393 st,enable-hs-rftime-reduction; 394 st,trim-hs-current = <15>; 395 st,trim-hs-impedance = <1>; 396 st,tune-squelch-level = <3>; 397 st,tune-hs-rx-offset = <2>; 398 st,no-lsfs-sc; 399};