0001 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
0002 /*
0003 * Copyright (C) 2020 Marcin Sloniewski <marcin.sloniewski@gmail.com>.
0004 */
0005
0006 /dts-v1/;
0007
0008 #include "stm32mp157.dtsi"
0009 #include "stm32mp15xc.dtsi"
0010 #include "stm32mp15-pinctrl.dtsi"
0011 #include "stm32mp15xxac-pinctrl.dtsi"
0012 #include <dt-bindings/gpio/gpio.h>
0013 #include <dt-bindings/leds/common.h>
0014 #include <dt-bindings/mfd/st,stpmic1.h>
0015
0016 / {
0017 model = "Seeed Studio Odyssey-STM32MP157C SOM";
0018 compatible = "seeed,stm32mp157c-odyssey-som", "st,stm32mp157";
0019
0020 memory@c0000000 {
0021 device_type = "memory";
0022 reg = <0xc0000000 0x20000000>;
0023 };
0024
0025 reserved-memory {
0026 #address-cells = <1>;
0027 #size-cells = <1>;
0028 ranges;
0029
0030 mcuram2: mcuram2@10000000 {
0031 compatible = "shared-dma-pool";
0032 reg = <0x10000000 0x40000>;
0033 no-map;
0034 };
0035
0036 vdev0vring0: vdev0vring0@10040000 {
0037 compatible = "shared-dma-pool";
0038 reg = <0x10040000 0x1000>;
0039 no-map;
0040 };
0041
0042 vdev0vring1: vdev0vring1@10041000 {
0043 compatible = "shared-dma-pool";
0044 reg = <0x10041000 0x1000>;
0045 no-map;
0046 };
0047
0048 vdev0buffer: vdev0buffer@10042000 {
0049 compatible = "shared-dma-pool";
0050 reg = <0x10042000 0x4000>;
0051 no-map;
0052 };
0053
0054 mcuram: mcuram@30000000 {
0055 compatible = "shared-dma-pool";
0056 reg = <0x30000000 0x40000>;
0057 no-map;
0058 };
0059
0060 retram: retram@38000000 {
0061 compatible = "shared-dma-pool";
0062 reg = <0x38000000 0x10000>;
0063 no-map;
0064 };
0065
0066 gpu_reserved: gpu@d4000000 {
0067 reg = <0xd4000000 0x4000000>;
0068 no-map;
0069 };
0070 };
0071
0072 led {
0073 compatible = "gpio-leds";
0074 led-blue {
0075 color = <LED_COLOR_ID_BLUE>;
0076 function = LED_FUNCTION_HEARTBEAT;
0077 gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>;
0078 linux,default-trigger = "heartbeat";
0079 };
0080 };
0081 };
0082
0083 &gpu {
0084 contiguous-area = <&gpu_reserved>;
0085 status = "okay";
0086 };
0087
0088 &i2c2 {
0089 pinctrl-names = "default";
0090 pinctrl-0 = <&i2c2_pins_a>;
0091 i2c-scl-rising-time-ns = <185>;
0092 i2c-scl-falling-time-ns = <20>;
0093 status = "okay";
0094 /* spare dmas for other usage */
0095 /delete-property/dmas;
0096 /delete-property/dma-names;
0097
0098 pmic: stpmic@33 {
0099 compatible = "st,stpmic1";
0100 reg = <0x33>;
0101 interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
0102 interrupt-controller;
0103 #interrupt-cells = <2>;
0104
0105 regulators {
0106 compatible = "st,stpmic1-regulators";
0107 ldo1-supply = <&v3v3>;
0108 ldo3-supply = <&vdd_ddr>;
0109 ldo6-supply = <&v3v3>;
0110 pwr_sw1-supply = <&bst_out>;
0111 pwr_sw2-supply = <&bst_out>;
0112
0113 vddcore: buck1 {
0114 regulator-name = "vddcore";
0115 regulator-min-microvolt = <800000>;
0116 regulator-max-microvolt = <1350000>;
0117 regulator-always-on;
0118 regulator-initial-mode = <0>;
0119 regulator-over-current-protection;
0120 };
0121
0122 vdd_ddr: buck2 {
0123 regulator-name = "vdd_ddr";
0124 regulator-min-microvolt = <1350000>;
0125 regulator-max-microvolt = <1350000>;
0126 regulator-always-on;
0127 regulator-initial-mode = <0>;
0128 regulator-over-current-protection;
0129 };
0130
0131 vdd: buck3 {
0132 regulator-name = "vdd";
0133 regulator-min-microvolt = <3300000>;
0134 regulator-max-microvolt = <3300000>;
0135 regulator-always-on;
0136 st,mask-reset;
0137 regulator-initial-mode = <0>;
0138 regulator-over-current-protection;
0139 };
0140
0141 v3v3: buck4 {
0142 regulator-name = "v3v3";
0143 regulator-min-microvolt = <3300000>;
0144 regulator-max-microvolt = <3300000>;
0145 regulator-always-on;
0146 regulator-over-current-protection;
0147 regulator-initial-mode = <0>;
0148 };
0149
0150 v1v8_audio: ldo1 {
0151 regulator-name = "v1v8_audio";
0152 regulator-min-microvolt = <1800000>;
0153 regulator-max-microvolt = <1800000>;
0154 regulator-always-on;
0155 interrupts = <IT_CURLIM_LDO1 0>;
0156 };
0157
0158 v3v3_hdmi: ldo2 {
0159 regulator-name = "v3v3_hdmi";
0160 regulator-min-microvolt = <3300000>;
0161 regulator-max-microvolt = <3300000>;
0162 regulator-always-on;
0163 interrupts = <IT_CURLIM_LDO2 0>;
0164 };
0165
0166 vtt_ddr: ldo3 {
0167 regulator-name = "vtt_ddr";
0168 regulator-min-microvolt = <500000>;
0169 regulator-max-microvolt = <750000>;
0170 regulator-always-on;
0171 regulator-over-current-protection;
0172 };
0173
0174 vdd_usb: ldo4 {
0175 regulator-name = "vdd_usb";
0176 interrupts = <IT_CURLIM_LDO4 0>;
0177 };
0178
0179 vdda: ldo5 {
0180 regulator-name = "vdda";
0181 regulator-min-microvolt = <2900000>;
0182 regulator-max-microvolt = <2900000>;
0183 interrupts = <IT_CURLIM_LDO5 0>;
0184 regulator-boot-on;
0185 };
0186
0187 v1v2_hdmi: ldo6 {
0188 regulator-name = "v1v2_hdmi";
0189 regulator-min-microvolt = <1200000>;
0190 regulator-max-microvolt = <1200000>;
0191 regulator-always-on;
0192 interrupts = <IT_CURLIM_LDO6 0>;
0193 };
0194
0195 vref_ddr: vref_ddr {
0196 regulator-name = "vref_ddr";
0197 regulator-always-on;
0198 };
0199
0200 bst_out: boost {
0201 regulator-name = "bst_out";
0202 interrupts = <IT_OCP_BOOST 0>;
0203 };
0204
0205 vbus_otg: pwr_sw1 {
0206 regulator-name = "vbus_otg";
0207 interrupts = <IT_OCP_OTG 0>;
0208 };
0209
0210 vbus_sw: pwr_sw2 {
0211 regulator-name = "vbus_sw";
0212 interrupts = <IT_OCP_SWOUT 0>;
0213 regulator-active-discharge = <1>;
0214 };
0215 };
0216
0217 onkey {
0218 compatible = "st,stpmic1-onkey";
0219 interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
0220 interrupt-names = "onkey-falling", "onkey-rising";
0221 power-off-time-sec = <10>;
0222 };
0223
0224 watchdog {
0225 compatible = "st,stpmic1-wdt";
0226 status = "disabled";
0227 };
0228 };
0229 };
0230
0231 &ipcc {
0232 status = "okay";
0233 };
0234
0235 &iwdg2 {
0236 timeout-sec = <32>;
0237 status = "okay";
0238 };
0239
0240 &m4_rproc {
0241 memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
0242 <&vdev0vring1>, <&vdev0buffer>;
0243 mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
0244 mbox-names = "vq0", "vq1", "shutdown";
0245 interrupt-parent = <&exti>;
0246 interrupts = <68 1>;
0247 status = "okay";
0248 };
0249
0250 &rng1 {
0251 status = "okay";
0252 };
0253
0254 &rtc {
0255 status = "okay";
0256 };
0257
0258 &sdmmc2 {
0259 pinctrl-names = "default", "opendrain", "sleep";
0260 pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_d>;
0261 pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_d>;
0262 pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_d>;
0263 non-removable;
0264 no-sd;
0265 no-sdio;
0266 st,neg-edge;
0267 bus-width = <8>;
0268 vmmc-supply = <&v3v3>;
0269 vqmmc-supply = <&vdd>;
0270 mmc-ddr-3_3v;
0271 status = "okay";
0272 };
0273