1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * Copyright (C) 2020 Marcin Sloniewski <marcin.sloniewski@gmail.com>. 4 */ 5 6/dts-v1/; 7 8#include "stm32mp157.dtsi" 9#include "stm32mp15xc.dtsi" 10#include "stm32mp15-pinctrl.dtsi" 11#include "stm32mp15xxac-pinctrl.dtsi" 12#include <dt-bindings/gpio/gpio.h> 13#include <dt-bindings/leds/common.h> 14#include <dt-bindings/mfd/st,stpmic1.h> 15 16/ { 17 model = "Seeed Studio Odyssey-STM32MP157C SOM"; 18 compatible = "seeed,stm32mp157c-odyssey-som", "st,stm32mp157"; 19 20 memory@c0000000 { 21 device_type = "memory"; 22 reg = <0xc0000000 0x20000000>; 23 }; 24 25 reserved-memory { 26 #address-cells = <1>; 27 #size-cells = <1>; 28 ranges; 29 30 mcuram2: mcuram2@10000000 { 31 compatible = "shared-dma-pool"; 32 reg = <0x10000000 0x40000>; 33 no-map; 34 }; 35 36 vdev0vring0: vdev0vring0@10040000 { 37 compatible = "shared-dma-pool"; 38 reg = <0x10040000 0x1000>; 39 no-map; 40 }; 41 42 vdev0vring1: vdev0vring1@10041000 { 43 compatible = "shared-dma-pool"; 44 reg = <0x10041000 0x1000>; 45 no-map; 46 }; 47 48 vdev0buffer: vdev0buffer@10042000 { 49 compatible = "shared-dma-pool"; 50 reg = <0x10042000 0x4000>; 51 no-map; 52 }; 53 54 mcuram: mcuram@30000000 { 55 compatible = "shared-dma-pool"; 56 reg = <0x30000000 0x40000>; 57 no-map; 58 }; 59 60 retram: retram@38000000 { 61 compatible = "shared-dma-pool"; 62 reg = <0x38000000 0x10000>; 63 no-map; 64 }; 65 66 gpu_reserved: gpu@d4000000 { 67 reg = <0xd4000000 0x4000000>; 68 no-map; 69 }; 70 }; 71 72 led { 73 compatible = "gpio-leds"; 74 led-blue { 75 color = <LED_COLOR_ID_BLUE>; 76 function = LED_FUNCTION_HEARTBEAT; 77 gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>; 78 linux,default-trigger = "heartbeat"; 79 }; 80 }; 81}; 82 83&gpu { 84 contiguous-area = <&gpu_reserved>; 85 status = "okay"; 86}; 87 88&i2c2 { 89 pinctrl-names = "default"; 90 pinctrl-0 = <&i2c2_pins_a>; 91 i2c-scl-rising-time-ns = <185>; 92 i2c-scl-falling-time-ns = <20>; 93 status = "okay"; 94 /* spare dmas for other usage */ 95 /delete-property/dmas; 96 /delete-property/dma-names; 97 98 pmic: stpmic@33 { 99 compatible = "st,stpmic1"; 100 reg = <0x33>; 101 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>; 102 interrupt-controller; 103 #interrupt-cells = <2>; 104 105 regulators { 106 compatible = "st,stpmic1-regulators"; 107 ldo1-supply = <&v3v3>; 108 ldo3-supply = <&vdd_ddr>; 109 ldo6-supply = <&v3v3>; 110 pwr_sw1-supply = <&bst_out>; 111 pwr_sw2-supply = <&bst_out>; 112 113 vddcore: buck1 { 114 regulator-name = "vddcore"; 115 regulator-min-microvolt = <800000>; 116 regulator-max-microvolt = <1350000>; 117 regulator-always-on; 118 regulator-initial-mode = <0>; 119 regulator-over-current-protection; 120 }; 121 122 vdd_ddr: buck2 { 123 regulator-name = "vdd_ddr"; 124 regulator-min-microvolt = <1350000>; 125 regulator-max-microvolt = <1350000>; 126 regulator-always-on; 127 regulator-initial-mode = <0>; 128 regulator-over-current-protection; 129 }; 130 131 vdd: buck3 { 132 regulator-name = "vdd"; 133 regulator-min-microvolt = <3300000>; 134 regulator-max-microvolt = <3300000>; 135 regulator-always-on; 136 st,mask-reset; 137 regulator-initial-mode = <0>; 138 regulator-over-current-protection; 139 }; 140 141 v3v3: buck4 { 142 regulator-name = "v3v3"; 143 regulator-min-microvolt = <3300000>; 144 regulator-max-microvolt = <3300000>; 145 regulator-always-on; 146 regulator-over-current-protection; 147 regulator-initial-mode = <0>; 148 }; 149 150 v1v8_audio: ldo1 { 151 regulator-name = "v1v8_audio"; 152 regulator-min-microvolt = <1800000>; 153 regulator-max-microvolt = <1800000>; 154 regulator-always-on; 155 interrupts = <IT_CURLIM_LDO1 0>; 156 }; 157 158 v3v3_hdmi: ldo2 { 159 regulator-name = "v3v3_hdmi"; 160 regulator-min-microvolt = <3300000>; 161 regulator-max-microvolt = <3300000>; 162 regulator-always-on; 163 interrupts = <IT_CURLIM_LDO2 0>; 164 }; 165 166 vtt_ddr: ldo3 { 167 regulator-name = "vtt_ddr"; 168 regulator-min-microvolt = <500000>; 169 regulator-max-microvolt = <750000>; 170 regulator-always-on; 171 regulator-over-current-protection; 172 }; 173 174 vdd_usb: ldo4 { 175 regulator-name = "vdd_usb"; 176 interrupts = <IT_CURLIM_LDO4 0>; 177 }; 178 179 vdda: ldo5 { 180 regulator-name = "vdda"; 181 regulator-min-microvolt = <2900000>; 182 regulator-max-microvolt = <2900000>; 183 interrupts = <IT_CURLIM_LDO5 0>; 184 regulator-boot-on; 185 }; 186 187 v1v2_hdmi: ldo6 { 188 regulator-name = "v1v2_hdmi"; 189 regulator-min-microvolt = <1200000>; 190 regulator-max-microvolt = <1200000>; 191 regulator-always-on; 192 interrupts = <IT_CURLIM_LDO6 0>; 193 }; 194 195 vref_ddr: vref_ddr { 196 regulator-name = "vref_ddr"; 197 regulator-always-on; 198 }; 199 200 bst_out: boost { 201 regulator-name = "bst_out"; 202 interrupts = <IT_OCP_BOOST 0>; 203 }; 204 205 vbus_otg: pwr_sw1 { 206 regulator-name = "vbus_otg"; 207 interrupts = <IT_OCP_OTG 0>; 208 }; 209 210 vbus_sw: pwr_sw2 { 211 regulator-name = "vbus_sw"; 212 interrupts = <IT_OCP_SWOUT 0>; 213 regulator-active-discharge = <1>; 214 }; 215 }; 216 217 onkey { 218 compatible = "st,stpmic1-onkey"; 219 interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>; 220 interrupt-names = "onkey-falling", "onkey-rising"; 221 power-off-time-sec = <10>; 222 }; 223 224 watchdog { 225 compatible = "st,stpmic1-wdt"; 226 status = "disabled"; 227 }; 228 }; 229}; 230 231&ipcc { 232 status = "okay"; 233}; 234 235&iwdg2 { 236 timeout-sec = <32>; 237 status = "okay"; 238}; 239 240&m4_rproc { 241 memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, 242 <&vdev0vring1>, <&vdev0buffer>; 243 mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; 244 mbox-names = "vq0", "vq1", "shutdown"; 245 interrupt-parent = <&exti>; 246 interrupts = <68 1>; 247 status = "okay"; 248}; 249 250&rng1 { 251 status = "okay"; 252}; 253 254&rtc { 255 status = "okay"; 256}; 257 258&sdmmc2 { 259 pinctrl-names = "default", "opendrain", "sleep"; 260 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_d>; 261 pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_d>; 262 pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_d>; 263 non-removable; 264 no-sd; 265 no-sdio; 266 st,neg-edge; 267 bus-width = <8>; 268 vmmc-supply = <&v3v3>; 269 vqmmc-supply = <&vdd>; 270 mmc-ddr-3_3v; 271 status = "okay"; 272}; 273 274