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

Merge tag 'stm32-dt-for-v5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/dt

STM32 DT updates for v5.5, round 1

Highlights:
----------

MPU part:
-Add and enable ADC support on stm32mp157a-dk1
-Add DAC support on stm32mp157c-ed1
-Add and enable VREFBUF support on stm32mp157a-dk1
-Add focaltech touchscreen on stm32mp157c-dk2
-Add hdmi support on stm32mp157a-dk1
-Fix issues seen during YAML DT validation
-Fix regulators issues for all MPU boards

MCU part:
-Fix issues seen during YAML DT validation

* tag 'stm32-dt-for-v5.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32:
ARM: dts: stm32: remove useless dma-ranges property for stm32f469
ARM: dts: stm32: remove useless dma-ranges property for stm32f429
ARM: dts: stm32: disable active-discharge for vbus_otg on stm32mp157a-avenger96
ARM: dts: stm32: Fix active discharge usage on stm32mp157
ARM: dts: stm32: change default minimal buck1 value on stm32mp157
ARM: dts: stm32: add PWR regulators support on stm32mp157
ARM: dts: stm32: remove useless interrupt from dsi node for stm32f469
ARM: dts: stm32: add hdmi audio support to stm32mp157a-dk1 board
ARM: dts: stm32: Add DAC support to stm32mp157c-ed1
ARM: dts: stm32: Add DAC pins used on stm32mp157c-ed1
ARM: dts: stm32: fix regulator-sd_switch node on stm32mp157c-ed1 board
ARM: dts: stm32: remove usb phy-names entries on stm32mp157c-ev1
ARM: dts: stm32: fix joystick node on stm32f746 and stm32mp157c eval boards
ARM: dts: stm32: fix memory nodes to match with DT validation tool
ARM: dts: stm32: add focaltech touchscreen on stm32mp157c-dk2 board
ARM: dts: stm32: enable ADC support on stm32mp157a-dk1
ARM: dts: stm32: add ADC pins used on stm32mp157a-dk1
ARM: dts: stm32: Enable VREFBUF on stm32mp157a-dk1
ARM: dts: stm32: move ltdc pinctrl on stm32mp157a dk1 board

Link: https://lore.kernel.org/r/02c39510-f36d-abbb-c76f-49aff07c0a08@st.com
Signed-off-by: Olof Johansson <olof@lixom.net>

+171 -50
+1 -2
arch/arm/boot/dts/stm32429i-eval.dts
··· 60 60 stdout-path = "serial0:115200n8"; 61 61 }; 62 62 63 - memory { 63 + memory@00000000 { 64 64 device_type = "memory"; 65 65 reg = <0x00000000 0x2000000>; 66 66 }; ··· 234 234 status = "okay"; 235 235 pinctrl-0 = <&ltdc_pins>; 236 236 pinctrl-names = "default"; 237 - dma-ranges; 238 237 239 238 port { 240 239 ltdc_out_rgb: endpoint {
+1 -2
arch/arm/boot/dts/stm32746g-eval.dts
··· 55 55 stdout-path = "serial0:115200n8"; 56 56 }; 57 57 58 - memory { 58 + memory@c0000000 { 59 59 device_type = "memory"; 60 60 reg = <0xc0000000 0x2000000>; 61 61 }; ··· 95 95 96 96 joystick { 97 97 compatible = "gpio-keys"; 98 - #size-cells = <0>; 99 98 pinctrl-0 = <&joystick_pins>; 100 99 pinctrl-names = "default"; 101 100 button-0 {
+1 -1
arch/arm/boot/dts/stm32f429-disco.dts
··· 59 59 stdout-path = "serial0:115200n8"; 60 60 }; 61 61 62 - memory { 62 + memory@90000000 { 63 63 device_type = "memory"; 64 64 reg = <0x90000000 0x800000>; 65 65 };
+1 -2
arch/arm/boot/dts/stm32f469-disco.dts
··· 60 60 stdout-path = "serial0:115200n8"; 61 61 }; 62 62 63 - memory { 63 + memory@00000000 { 64 64 device_type = "memory"; 65 65 reg = <0x00000000 0x1000000>; 66 66 }; ··· 166 166 }; 167 167 168 168 &ltdc { 169 - dma-ranges; 170 169 status = "okay"; 171 170 172 171 port {
-1
arch/arm/boot/dts/stm32f469.dtsi
··· 8 8 dsi: dsi@40016c00 { 9 9 compatible = "st,stm32-dsi"; 10 10 reg = <0x40016c00 0x800>; 11 - interrupts = <92>; 12 11 resets = <&rcc STM32F4_APB2_RESET(DSI)>; 13 12 reset-names = "apb"; 14 13 clocks = <&rcc 1 CLK_F469_DSI>, <&clk_hse>;
+1 -1
arch/arm/boot/dts/stm32f746-disco.dts
··· 55 55 stdout-path = "serial0:115200n8"; 56 56 }; 57 57 58 - memory { 58 + memory@c0000000 { 59 59 device_type = "memory"; 60 60 reg = <0xC0000000 0x800000>; 61 61 };
+1 -1
arch/arm/boot/dts/stm32f769-disco.dts
··· 55 55 stdout-path = "serial0:115200n8"; 56 56 }; 57 57 58 - memory { 58 + memory@c0000000 { 59 59 device_type = "memory"; 60 60 reg = <0xC0000000 0x1000000>; 61 61 };
+1 -1
arch/arm/boot/dts/stm32h743i-disco.dts
··· 53 53 stdout-path = "serial0:115200n8"; 54 54 }; 55 55 56 - memory { 56 + memory@d0000000 { 57 57 device_type = "memory"; 58 58 reg = <0xd0000000 0x2000000>; 59 59 };
+1 -1
arch/arm/boot/dts/stm32h743i-eval.dts
··· 53 53 stdout-path = "serial0:115200n8"; 54 54 }; 55 55 56 - memory { 56 + memory@d0000000 { 57 57 device_type = "memory"; 58 58 reg = <0xd0000000 0x2000000>; 59 59 };
+28
arch/arm/boot/dts/stm32mp157-pinctrl.dtsi
··· 137 137 status = "disabled"; 138 138 }; 139 139 140 + adc12_ain_pins_a: adc12-ain-0 { 141 + pins { 142 + pinmux = <STM32_PINMUX('C', 3, ANALOG)>, /* ADC1 in13 */ 143 + <STM32_PINMUX('F', 12, ANALOG)>, /* ADC1 in6 */ 144 + <STM32_PINMUX('F', 13, ANALOG)>, /* ADC2 in2 */ 145 + <STM32_PINMUX('F', 14, ANALOG)>; /* ADC2 in6 */ 146 + }; 147 + }; 148 + 149 + adc12_usb_cc_pins_a: adc12-usb-cc-pins-0 { 150 + pins { 151 + pinmux = <STM32_PINMUX('A', 4, ANALOG)>, /* ADC12 in18 */ 152 + <STM32_PINMUX('A', 5, ANALOG)>; /* ADC12 in19 */ 153 + }; 154 + }; 155 + 140 156 cec_pins_a: cec-0 { 141 157 pins { 142 158 pinmux = <STM32_PINMUX('A', 15, AF4)>; ··· 180 164 cec_pins_sleep_b: cec-sleep-1 { 181 165 pins { 182 166 pinmux = <STM32_PINMUX('B', 6, ANALOG)>; /* HDMI_CEC */ 167 + }; 168 + }; 169 + 170 + dac_ch1_pins_a: dac-ch1 { 171 + pins { 172 + pinmux = <STM32_PINMUX('A', 4, ANALOG)>; 173 + }; 174 + }; 175 + 176 + dac_ch2_pins_a: dac-ch2 { 177 + pins { 178 + pinmux = <STM32_PINMUX('A', 5, ANALOG)>; 183 179 }; 184 180 }; 185 181
+6 -2
arch/arm/boot/dts/stm32mp157a-avenger96.dts
··· 252 252 regulator-name = "vbus_otg"; 253 253 interrupts = <IT_OCP_OTG 0>; 254 254 interrupt-parent = <&pmic>; 255 - regulator-active-discharge; 256 255 }; 257 256 258 257 vbus_sw: pwr_sw2 { 259 258 regulator-name = "vbus_sw"; 260 259 interrupts = <IT_OCP_SWOUT 0>; 261 260 interrupt-parent = <&pmic>; 262 - regulator-active-discharge; 261 + regulator-active-discharge = <1>; 263 262 }; 264 263 }; 265 264 ··· 279 280 &iwdg2 { 280 281 timeout-sec = <32>; 281 282 status = "okay"; 283 + }; 284 + 285 + &pwr_regulators { 286 + vdd-supply = <&vdd>; 287 + vdd_3v3_usbfs-supply = <&vdd_usb>; 282 288 }; 283 289 284 290 &rng1 {
+71 -6
arch/arm/boot/dts/stm32mp157a-dk1.dts
··· 25 25 }; 26 26 27 27 memory@c0000000 { 28 + device_type = "memory"; 28 29 reg = <0xc0000000 0x20000000>; 29 30 }; 30 31 ··· 93 92 "Playback" , "MCLK", 94 93 "Capture" , "MCLK", 95 94 "MICL" , "Mic Bias"; 96 - dais = <&sai2a_port &sai2b_port>; 95 + dais = <&sai2a_port &sai2b_port &i2s2_port>; 96 + status = "okay"; 97 + }; 98 + }; 99 + 100 + &adc { 101 + pinctrl-names = "default"; 102 + pinctrl-0 = <&adc12_ain_pins_a>, <&adc12_usb_cc_pins_a>; 103 + vdd-supply = <&vdd>; 104 + vdda-supply = <&vdd>; 105 + vref-supply = <&vrefbuf>; 106 + status = "disabled"; 107 + adc1: adc@0 { 108 + /* 109 + * Type-C USB_PWR_CC1 & USB_PWR_CC2 on in18 & in19. 110 + * Use at least 5 * RC time, e.g. 5 * (Rp + Rd) * C: 111 + * 5 * (56 + 47kOhms) * 5pF => 2.5us. 112 + * Use arbitrary margin here (e.g. 5us). 113 + */ 114 + st,min-sample-time-nsecs = <5000>; 115 + /* AIN connector, USB Type-C CC1 & CC2 */ 116 + st,adc-channels = <0 1 6 13 18 19>; 117 + status = "okay"; 118 + }; 119 + adc2: adc@100 { 120 + /* AIN connector, USB Type-C CC1 & CC2 */ 121 + st,adc-channels = <0 1 2 6 18 19>; 122 + st,min-sample-time-nsecs = <5000>; 97 123 status = "okay"; 98 124 }; 99 125 }; ··· 174 146 reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>; 175 147 interrupts = <1 IRQ_TYPE_EDGE_FALLING>; 176 148 interrupt-parent = <&gpiog>; 177 - pinctrl-names = "default", "sleep"; 178 - pinctrl-0 = <&ltdc_pins_a>; 179 - pinctrl-1 = <&ltdc_pins_sleep_a>; 149 + #sound-dai-cells = <0>; 180 150 status = "okay"; 181 151 182 152 ports { ··· 185 159 reg = <0>; 186 160 sii9022_in: endpoint { 187 161 remote-endpoint = <&ltdc_ep0_out>; 162 + }; 163 + }; 164 + 165 + port@3 { 166 + reg = <3>; 167 + sii9022_tx_endpoint: endpoint { 168 + remote-endpoint = <&i2s2_endpoint>; 188 169 }; 189 170 }; 190 171 }; ··· 259 226 260 227 vddcore: buck1 { 261 228 regulator-name = "vddcore"; 262 - regulator-min-microvolt = <800000>; 229 + regulator-min-microvolt = <1200000>; 263 230 regulator-max-microvolt = <1350000>; 264 231 regulator-always-on; 265 232 regulator-initial-mode = <0>; ··· 360 327 vbus_sw: pwr_sw2 { 361 328 regulator-name = "vbus_sw"; 362 329 interrupts = <IT_OCP_SWOUT 0>; 363 - regulator-active-discharge; 330 + regulator-active-discharge = <1>; 364 331 }; 365 332 }; 366 333 ··· 379 346 }; 380 347 }; 381 348 349 + &i2s2 { 350 + clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>; 351 + clock-names = "pclk", "i2sclk", "x8k", "x11k"; 352 + pinctrl-names = "default", "sleep"; 353 + pinctrl-0 = <&i2s2_pins_a>; 354 + pinctrl-1 = <&i2s2_pins_sleep_a>; 355 + status = "okay"; 356 + 357 + i2s2_port: port { 358 + i2s2_endpoint: endpoint { 359 + remote-endpoint = <&sii9022_tx_endpoint>; 360 + format = "i2s"; 361 + mclk-fs = <256>; 362 + }; 363 + }; 364 + }; 365 + 382 366 &ipcc { 383 367 status = "okay"; 384 368 }; ··· 406 356 }; 407 357 408 358 &ltdc { 359 + pinctrl-names = "default", "sleep"; 360 + pinctrl-0 = <&ltdc_pins_a>; 361 + pinctrl-1 = <&ltdc_pins_sleep_a>; 409 362 status = "okay"; 410 363 411 364 port { ··· 430 377 interrupt-parent = <&exti>; 431 378 interrupts = <68 1>; 432 379 status = "okay"; 380 + }; 381 + 382 + &pwr_regulators { 383 + vdd-supply = <&vdd>; 384 + vdd_3v3_usbfs-supply = <&vdd_usb>; 433 385 }; 434 386 435 387 &rng1 { ··· 505 447 &uart4 { 506 448 pinctrl-names = "default"; 507 449 pinctrl-0 = <&uart4_pins_a>; 450 + status = "okay"; 451 + }; 452 + 453 + &vrefbuf { 454 + regulator-min-microvolt = <2500000>; 455 + regulator-max-microvolt = <2500000>; 456 + vdda-supply = <&vdd>; 508 457 status = "okay"; 509 458 };
+13 -8
arch/arm/boot/dts/stm32mp157c-dk2.dts
··· 11 11 / { 12 12 model = "STMicroelectronics STM32MP157C-DK2 Discovery Board"; 13 13 compatible = "st,stm32mp157c-dk2", "st,stm32mp157"; 14 - 15 - reg18: reg18 { 16 - compatible = "regulator-fixed"; 17 - regulator-name = "reg18"; 18 - regulator-min-microvolt = <1800000>; 19 - regulator-max-microvolt = <1800000>; 20 - regulator-always-on; 21 - }; 22 14 }; 23 15 24 16 &dsi { ··· 50 58 remote-endpoint = <&dsi_out>; 51 59 }; 52 60 }; 61 + }; 62 + }; 63 + 64 + &i2c1 { 65 + touchscreen@38 { 66 + compatible = "focaltech,ft6236"; 67 + reg = <0x38>; 68 + interrupts = <2 2>; 69 + interrupt-parent = <&gpiof>; 70 + interrupt-controller; 71 + touchscreen-size-x = <480>; 72 + touchscreen-size-y = <800>; 73 + status = "okay"; 53 74 }; 54 75 }; 55 76
+22 -19
arch/arm/boot/dts/stm32mp157c-ed1.dts
··· 74 74 serial0 = &uart4; 75 75 }; 76 76 77 - reg11: reg11 { 78 - compatible = "regulator-fixed"; 79 - regulator-name = "reg11"; 80 - regulator-min-microvolt = <1100000>; 81 - regulator-max-microvolt = <1100000>; 82 - regulator-always-on; 83 - }; 84 - 85 - reg18: reg18 { 86 - compatible = "regulator-fixed"; 87 - regulator-name = "reg18"; 88 - regulator-min-microvolt = <1800000>; 89 - regulator-max-microvolt = <1800000>; 90 - regulator-always-on; 91 - }; 92 - 93 77 sd_switch: regulator-sd_switch { 94 78 compatible = "regulator-gpio"; 95 79 regulator-name = "sd_switch"; ··· 84 100 85 101 gpios = <&gpiof 14 GPIO_ACTIVE_HIGH>; 86 102 gpios-states = <0>; 87 - states = <1800000 0x1 2900000 0x0>; 103 + states = <1800000 0x1>, 104 + <2900000 0x0>; 105 + }; 106 + }; 107 + 108 + &dac { 109 + pinctrl-names = "default"; 110 + pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>; 111 + vref-supply = <&vdda>; 112 + status = "disabled"; 113 + dac1: dac@1 { 114 + status = "okay"; 115 + }; 116 + dac2: dac@2 { 117 + status = "okay"; 88 118 }; 89 119 }; 90 120 ··· 141 143 142 144 vddcore: buck1 { 143 145 regulator-name = "vddcore"; 144 - regulator-min-microvolt = <800000>; 146 + regulator-min-microvolt = <1200000>; 145 147 regulator-max-microvolt = <1350000>; 146 148 regulator-always-on; 147 149 regulator-initial-mode = <0>; ··· 239 241 vbus_sw: pwr_sw2 { 240 242 regulator-name = "vbus_sw"; 241 243 interrupts = <IT_OCP_SWOUT 0>; 242 - regulator-active-discharge; 244 + regulator-active-discharge = <1>; 243 245 }; 244 246 }; 245 247 ··· 275 277 interrupt-parent = <&exti>; 276 278 interrupts = <68 1>; 277 279 status = "okay"; 280 + }; 281 + 282 + &pwr_regulators { 283 + vdd-supply = <&vdd>; 284 + vdd_3v3_usbfs-supply = <&vdd_usb>; 278 285 }; 279 286 280 287 &rng1 {
-3
arch/arm/boot/dts/stm32mp157c-ev1.dts
··· 32 32 33 33 joystick { 34 34 compatible = "gpio-keys"; 35 - #size-cells = <0>; 36 35 pinctrl-0 = <&joystick_pins>; 37 36 pinctrl-names = "default"; 38 37 button-0 { ··· 343 344 344 345 &usbh_ehci { 345 346 phys = <&usbphyc_port0>; 346 - phy-names = "usb"; 347 347 status = "okay"; 348 348 }; 349 349 350 350 &usbotg_hs { 351 351 dr_mode = "peripheral"; 352 352 phys = <&usbphyc_port1 0>; 353 - phy-names = "usb2-phy"; 354 353 status = "okay"; 355 354 }; 356 355
+23
arch/arm/boot/dts/stm32mp157c.dtsi
··· 1079 1079 #reset-cells = <1>; 1080 1080 }; 1081 1081 1082 + pwr_regulators: pwr@50001000 { 1083 + compatible = "st,stm32mp1,pwr-reg"; 1084 + reg = <0x50001000 0x10>; 1085 + 1086 + reg11: reg11 { 1087 + regulator-name = "reg11"; 1088 + regulator-min-microvolt = <1100000>; 1089 + regulator-max-microvolt = <1100000>; 1090 + }; 1091 + 1092 + reg18: reg18 { 1093 + regulator-name = "reg18"; 1094 + regulator-min-microvolt = <1800000>; 1095 + regulator-max-microvolt = <1800000>; 1096 + }; 1097 + 1098 + usb33: usb33 { 1099 + regulator-name = "usb33"; 1100 + regulator-min-microvolt = <3300000>; 1101 + regulator-max-microvolt = <3300000>; 1102 + }; 1103 + }; 1104 + 1082 1105 exti: interrupt-controller@5000d000 { 1083 1106 compatible = "st,stm32mp1-exti", "syscon"; 1084 1107 interrupt-controller;