Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: stm32: add RCC on STM32MP13x SoC family

Enables Reset and Clocks Controller on STM32MP13

Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com>
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>

authored by

Gabriel Fernandez and committed by
Alexandre Torgue
f95634be 63058bfb

+47 -79
+41 -75
arch/arm/boot/dts/stm32mp131.dtsi
··· 4 4 * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics. 5 5 */ 6 6 #include <dt-bindings/interrupt-controller/arm-gic.h> 7 + #include <dt-bindings/clock/stm32mp13-clks.h> 8 + #include <dt-bindings/reset/stm32mp13-resets.h> 7 9 8 10 / { 9 11 #address-cells = <1>; ··· 51 49 reg = <0x16>; 52 50 #reset-cells = <1>; 53 51 }; 54 - }; 55 - }; 56 - 57 - clocks { 58 - clk_axi: clk-axi { 59 - #clock-cells = <0>; 60 - compatible = "fixed-clock"; 61 - clock-frequency = <266500000>; 62 - }; 63 - 64 - clk_hse: clk-hse { 65 - #clock-cells = <0>; 66 - compatible = "fixed-clock"; 67 - clock-frequency = <24000000>; 68 - }; 69 - 70 - clk_hsi: clk-hsi { 71 - #clock-cells = <0>; 72 - compatible = "fixed-clock"; 73 - clock-frequency = <64000000>; 74 - }; 75 - 76 - clk_lsi: clk-lsi { 77 - #clock-cells = <0>; 78 - compatible = "fixed-clock"; 79 - clock-frequency = <32000>; 80 - }; 81 - 82 - clk_pclk3: clk-pclk3 { 83 - #clock-cells = <0>; 84 - compatible = "fixed-clock"; 85 - clock-frequency = <104438965>; 86 - }; 87 - 88 - clk_pclk4: clk-pclk4 { 89 - #clock-cells = <0>; 90 - compatible = "fixed-clock"; 91 - clock-frequency = <133250000>; 92 - }; 93 - 94 - clk_pll4_p: clk-pll4_p { 95 - #clock-cells = <0>; 96 - compatible = "fixed-clock"; 97 - clock-frequency = <50000000>; 98 - }; 99 - 100 - clk_pll4_r: clk-pll4_r { 101 - #clock-cells = <0>; 102 - compatible = "fixed-clock"; 103 - clock-frequency = <99000000>; 104 - }; 105 - 106 - clk_rtc_k: clk-rtc-k { 107 - #clock-cells = <0>; 108 - compatible = "fixed-clock"; 109 - clock-frequency = <32768>; 110 52 }; 111 53 }; 112 54 ··· 101 155 compatible = "st,stm32h7-uart"; 102 156 reg = <0x40010000 0x400>; 103 157 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 104 - clocks = <&clk_hsi>; 158 + clocks = <&rcc UART4_K>; 159 + resets = <&rcc UART4_R>; 105 160 status = "disabled"; 106 161 }; 107 162 ··· 117 170 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 118 171 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 119 172 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 120 - clocks = <&clk_pclk4>; 173 + clocks = <&rcc DMA1>; 174 + resets = <&rcc DMA1_R>; 121 175 #dma-cells = <4>; 122 176 st,mem2mem; 123 177 dma-requests = <8>; ··· 135 187 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>, 136 188 <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 137 189 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 138 - clocks = <&clk_pclk4>; 190 + clocks = <&rcc DMA2>; 191 + resets = <&rcc DMA2_R>; 139 192 #dma-cells = <4>; 140 193 st,mem2mem; 141 194 dma-requests = <8>; ··· 145 196 dmamux1: dma-router@48002000 { 146 197 compatible = "st,stm32h7-dmamux"; 147 198 reg = <0x48002000 0x40>; 148 - clocks = <&clk_pclk4>; 199 + clocks = <&rcc DMAMUX1>; 200 + resets = <&rcc DMAMUX1_R>; 149 201 #dma-cells = <3>; 150 202 dma-masters = <&dma1 &dma2>; 151 203 dma-requests = <128>; 152 204 dma-channels = <16>; 205 + }; 206 + 207 + rcc: rcc@50000000 { 208 + compatible = "st,stm32mp13-rcc", "syscon"; 209 + reg = <0x50000000 0x1000>; 210 + #clock-cells = <1>; 211 + #reset-cells = <1>; 212 + clock-names = "hse", "hsi", "csi", "lse", "lsi"; 213 + clocks = <&scmi_clk CK_SCMI_HSE>, 214 + <&scmi_clk CK_SCMI_HSI>, 215 + <&scmi_clk CK_SCMI_CSI>, 216 + <&scmi_clk CK_SCMI_LSE>, 217 + <&scmi_clk CK_SCMI_LSI>; 153 218 }; 154 219 155 220 exti: interrupt-controller@5000d000 { ··· 176 213 syscfg: syscon@50020000 { 177 214 compatible = "st,stm32mp157-syscfg", "syscon"; 178 215 reg = <0x50020000 0x400>; 179 - clocks = <&clk_pclk3>; 216 + clocks = <&rcc SYSCFG>; 180 217 }; 181 218 182 219 mdma: dma-controller@58000000 { 183 220 compatible = "st,stm32h7-mdma"; 184 221 reg = <0x58000000 0x1000>; 185 222 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 186 - clocks = <&clk_pclk4>; 223 + clocks = <&rcc MDMA>; 187 224 #dma-cells = <5>; 188 225 dma-channels = <32>; 189 226 dma-requests = <48>; ··· 195 232 reg = <0x58005000 0x1000>, <0x58006000 0x1000>; 196 233 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 197 234 interrupt-names = "cmd_irq"; 198 - clocks = <&clk_pll4_p>; 235 + clocks = <&rcc SDMMC1_K>; 199 236 clock-names = "apb_pclk"; 237 + resets = <&rcc SDMMC1_R>; 200 238 cap-sd-highspeed; 201 239 cap-mmc-highspeed; 202 240 max-frequency = <130000000>; ··· 210 246 reg = <0x58007000 0x1000>, <0x58008000 0x1000>; 211 247 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 212 248 interrupt-names = "cmd_irq"; 213 - clocks = <&clk_pll4_p>; 249 + clocks = <&rcc SDMMC2_K>; 214 250 clock-names = "apb_pclk"; 251 + resets = <&rcc SDMMC2_R>; 215 252 cap-sd-highspeed; 216 253 cap-mmc-highspeed; 217 254 max-frequency = <130000000>; ··· 222 257 iwdg2: watchdog@5a002000 { 223 258 compatible = "st,stm32mp1-iwdg"; 224 259 reg = <0x5a002000 0x400>; 225 - clocks = <&clk_pclk4>, <&clk_lsi>; 260 + clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>; 226 261 clock-names = "pclk", "lsi"; 227 262 status = "disabled"; 228 263 }; ··· 231 266 compatible = "st,stm32mp1-rtc"; 232 267 reg = <0x5c004000 0x400>; 233 268 interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>; 234 - clocks = <&clk_pclk4>, <&clk_rtc_k>; 269 + clocks = <&scmi_clk CK_SCMI_RTCAPB>, 270 + <&scmi_clk CK_SCMI_RTC>; 235 271 clock-names = "pclk", "rtc_ck"; 236 272 status = "disabled"; 237 273 }; ··· 273 307 interrupt-controller; 274 308 #interrupt-cells = <2>; 275 309 reg = <0x0 0x400>; 276 - clocks = <&clk_pclk4>; 310 + clocks = <&rcc GPIOA>; 277 311 st,bank-name = "GPIOA"; 278 312 ngpios = <16>; 279 313 gpio-ranges = <&pinctrl 0 0 16>; ··· 285 319 interrupt-controller; 286 320 #interrupt-cells = <2>; 287 321 reg = <0x1000 0x400>; 288 - clocks = <&clk_pclk4>; 322 + clocks = <&rcc GPIOB>; 289 323 st,bank-name = "GPIOB"; 290 324 ngpios = <16>; 291 325 gpio-ranges = <&pinctrl 0 16 16>; ··· 297 331 interrupt-controller; 298 332 #interrupt-cells = <2>; 299 333 reg = <0x2000 0x400>; 300 - clocks = <&clk_pclk4>; 334 + clocks = <&rcc GPIOC>; 301 335 st,bank-name = "GPIOC"; 302 336 ngpios = <16>; 303 337 gpio-ranges = <&pinctrl 0 32 16>; ··· 309 343 interrupt-controller; 310 344 #interrupt-cells = <2>; 311 345 reg = <0x3000 0x400>; 312 - clocks = <&clk_pclk4>; 346 + clocks = <&rcc GPIOD>; 313 347 st,bank-name = "GPIOD"; 314 348 ngpios = <16>; 315 349 gpio-ranges = <&pinctrl 0 48 16>; ··· 321 355 interrupt-controller; 322 356 #interrupt-cells = <2>; 323 357 reg = <0x4000 0x400>; 324 - clocks = <&clk_pclk4>; 358 + clocks = <&rcc GPIOE>; 325 359 st,bank-name = "GPIOE"; 326 360 ngpios = <16>; 327 361 gpio-ranges = <&pinctrl 0 64 16>; ··· 333 367 interrupt-controller; 334 368 #interrupt-cells = <2>; 335 369 reg = <0x5000 0x400>; 336 - clocks = <&clk_pclk4>; 370 + clocks = <&rcc GPIOF>; 337 371 st,bank-name = "GPIOF"; 338 372 ngpios = <16>; 339 373 gpio-ranges = <&pinctrl 0 80 16>; ··· 345 379 interrupt-controller; 346 380 #interrupt-cells = <2>; 347 381 reg = <0x6000 0x400>; 348 - clocks = <&clk_pclk4>; 382 + clocks = <&rcc GPIOG>; 349 383 st,bank-name = "GPIOG"; 350 384 ngpios = <16>; 351 385 gpio-ranges = <&pinctrl 0 96 16>; ··· 357 391 interrupt-controller; 358 392 #interrupt-cells = <2>; 359 393 reg = <0x7000 0x400>; 360 - clocks = <&clk_pclk4>; 394 + clocks = <&rcc GPIOH>; 361 395 st,bank-name = "GPIOH"; 362 396 ngpios = <15>; 363 397 gpio-ranges = <&pinctrl 0 112 15>; ··· 369 403 interrupt-controller; 370 404 #interrupt-cells = <2>; 371 405 reg = <0x8000 0x400>; 372 - clocks = <&clk_pclk4>; 406 + clocks = <&rcc GPIOI>; 373 407 st,bank-name = "GPIOI"; 374 408 ngpios = <8>; 375 409 gpio-ranges = <&pinctrl 0 128 8>;
+2 -2
arch/arm/boot/dts/stm32mp133.dtsi
··· 15 15 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 16 16 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 17 17 interrupt-names = "int0", "int1"; 18 - clocks = <&clk_hse>, <&clk_pll4_r>; 18 + clocks = <&scmi_clk CK_SCMI_HSE>, <&rcc FDCAN_K>; 19 19 clock-names = "hclk", "cclk"; 20 20 bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>; 21 21 status = "disabled"; ··· 28 28 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 29 29 <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 30 30 interrupt-names = "int0", "int1"; 31 - clocks = <&clk_hse>, <&clk_pll4_r>; 31 + clocks = <&scmi_clk CK_SCMI_HSE>, <&rcc FDCAN_K>; 32 32 clock-names = "hclk", "cclk"; 33 33 bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>; 34 34 status = "disabled";
+2 -1
arch/arm/boot/dts/stm32mp13xc.dtsi
··· 10 10 compatible = "st,stm32mp1-cryp"; 11 11 reg = <0x54002000 0x400>; 12 12 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 13 - clocks = <&clk_axi>; 13 + clocks = <&rcc CRYP1>; 14 + resets = <&rcc CRYP1_R>; 14 15 status = "disabled"; 15 16 }; 16 17 };
+2 -1
arch/arm/boot/dts/stm32mp13xf.dtsi
··· 10 10 compatible = "st,stm32mp1-cryp"; 11 11 reg = <0x54002000 0x400>; 12 12 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 13 - clocks = <&clk_axi>; 13 + clocks = <&rcc CRYP1>; 14 + resets = <&rcc CRYP1_R>; 14 15 status = "disabled"; 15 16 }; 16 17 };