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.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/dt

STM32 DT updates for v5.11, round 1

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

MCU part:
-Fix dmamux reg property (length) on stm32h743.
-Explicitly set DCMI bus type on stm32429i eval board.

MPU part:
-Enable FIFO mode with half-full threshold for DCMI.
-Harmonize EHCI/OHCI nodes.
-Move SDMMC IP version to v2.0 to get features improvements.
-Add LP-timer wakeup support.
-Enable crypto/hash/crc support.
-Explicitly set DCMI bus type on stm32mp157 eval board.
-Add USB type-c controller (STUSB1600) on stm32mp15 DK boards
(It is connected to I2C4).
-Fix dmamux reg property (length) on stm32mp151.
-Optimize USB OTG FIFO sizes on stm32mp151.
-Declare tamp node also as "simple-mfd".

-LXA:
-Document Octavo vendor-prefixes yaml file.
-Document lxa,stm32mp157c-mc1 in STM32 yaml file.

-DH:
-Connect PHY IRQ line on DH SoM.
-Add KS8851 Ethernet support on DHCOM which is mapped to FMC2.
-Document all DH compatible strings in STM32 yaml file.
-Add DHCOM based PicoITX board. This board embedds ethernet port,
USB, CAN LEDS and a custom board-to-board connector.

* tag 'stm32-dt-for-v5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32: (34 commits)
ARM: dts: stm32: lxa-mc1: add OSD32MP15x to list of compatibles
dt-bindings: arm: stm32: add extra SiP compatible for lxa,stm32mp157c-mc1
dt-bindings: vendor-prefixes: document Octavo Systems oct prefix
ARM: dts: stm32: Add DHCOM based PicoITX board
dt-bindings: arm: stm32: Add compatible strings for DH SoMs and boards
ARM: dts: stm32: support child mfd cells for the stm32mp1 TAMP syscon
dt-bindings: arm: stm32: add simple-mfd compatible for tamp node
ARM: dts: stm32: update stm32mp151 for remote proc synchronization support
ARM: dts: stm32: adjust USB OTG gadget fifo sizes in stm32mp151
ARM: dts: stm32: fix dmamux reg property on stm32h743
ARM: dts: stm32: fix dmamux reg property on stm32mp151
ARM: dts: stm32: fix mdma1 clients channel priority level on stm32mp151
ARM: dts: stm32: add STUSB1600 Type-C using I2C4 on stm32mp15xx-dkx
dt-bindings: usb: Add DT bindings for STUSB160x Type-C controller
dt-bindings: connector: add typec-power-opmode property to usb-connector
ARM: dts: stm32: reorder spi4 within stm32mp15-pinctrl
ARM: dts: stm32: set bus-type in DCMI endpoint for stm32429i-eval board
ARM: dts: stm32: set bus-type in DCMI endpoint for stm32mp157c-ev1 board
ARM: dts: stm32: enable CRYP by default on stm32mp15
ARM: dts: stm32: enable CRC1 by default on stm32mp15
...

Link: https://lore.kernel.org/r/873c17a5-28d5-9261-f691-1b917611c932@foss.st.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+534 -38
+4
Documentation/devicetree/bindings/arm/stm32/st,stm32-syscon.yaml
··· 20 20 - st,stm32-syscfg 21 21 - st,stm32-power-config 22 22 - const: syscon 23 + - items: 24 + - const: st,stm32-tamp 25 + - const: syscon 26 + - const: simple-mfd 23 27 24 28 reg: 25 29 maxItems: 1
+21 -2
Documentation/devicetree/bindings/arm/stm32/stm32.yaml
··· 14 14 const: "/" 15 15 compatible: 16 16 oneOf: 17 + - description: DH STM32MP1 SoM based Boards 18 + items: 19 + - enum: 20 + - arrow,stm32mp157a-avenger96 # Avenger96 21 + - dh,stm32mp153c-dhcom-drc02 22 + - dh,stm32mp157c-dhcom-pdk2 23 + - dh,stm32mp157c-dhcom-picoitx 24 + - enum: 25 + - dh,stm32mp153c-dhcom-som 26 + - dh,stm32mp157a-dhcor-som 27 + - dh,stm32mp157c-dhcom-som 28 + - enum: 29 + - st,stm32mp153 30 + - st,stm32mp157 17 31 - items: 18 32 - enum: 19 33 - st,stm32f429i-disco ··· 53 39 - const: st,stm32h743 54 40 - items: 55 41 - enum: 56 - - arrow,stm32mp157a-avenger96 # Avenger96 57 - - lxa,stm32mp157c-mc1 58 42 - shiratech,stm32mp157a-iot-box # IoT Box 59 43 - shiratech,stm32mp157a-stinger96 # Stinger96 60 44 - st,stm32mp157c-ed1 ··· 64 52 - const: st,stm32mp157c-ev1 65 53 - const: st,stm32mp157c-ed1 66 54 - const: st,stm32mp157 55 + - description: Octavo OSD32MP15x System-in-Package based boards 56 + items: 57 + - enum: 58 + - lxa,stm32mp157c-mc1 # Linux Automation MC-1 59 + - const: oct,stm32mp15xx-osd32 60 + - enum: 61 + - st,stm32mp157 67 62 - description: Odyssey STM32MP1 SoM based Boards 68 63 items: 69 64 - enum:
+24
Documentation/devicetree/bindings/connector/usb-connector.yaml
··· 93 93 - device 94 94 - dual 95 95 96 + typec-power-opmode: 97 + description: Determines the power operation mode that the Type C connector 98 + will support and will advertise through CC pins when it has no power 99 + delivery support. 100 + - "default" corresponds to default USB voltage and current defined by the 101 + USB 2.0 and USB 3.2 specifications, 5V 500mA for USB 2.0 ports and 102 + 5V 900mA or 1500mA for USB 3.2 ports in single-lane or dual-lane 103 + operation respectively. 104 + - "1.5A" and "3.0A", 5V 1.5A and 5V 3.0A respectively, as defined in USB 105 + Type-C Cable and Connector specification, when Power Delivery is not 106 + supported. 107 + allOf: 108 + - $ref: /schemas/types.yaml#definitions/string 109 + enum: 110 + - default 111 + - 1.5A 112 + - 3.0A 113 + 96 114 # The following are optional properties for "usb-c-connector" with power 97 115 # delivery support. 98 116 source-pdos: ··· 190 172 properties: 191 173 type: 192 174 const: micro 175 + 176 + anyOf: 177 + - not: 178 + required: 179 + - typec-power-opmode 180 + - new-source-frs-typec-current 193 181 194 182 additionalProperties: true 195 183
+87
Documentation/devicetree/bindings/usb/st,stusb160x.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: "http://devicetree.org/schemas/usb/st,stusb160x.yaml#" 5 + $schema: "http://devicetree.org/meta-schemas/core.yaml#" 6 + 7 + title: STMicroelectronics STUSB160x Type-C controller bindings 8 + 9 + maintainers: 10 + - Amelie Delaunay <amelie.delaunay@st.com> 11 + 12 + properties: 13 + compatible: 14 + enum: 15 + - st,stusb1600 16 + 17 + reg: 18 + maxItems: 1 19 + 20 + interrupts: 21 + maxItems: 1 22 + 23 + vdd-supply: 24 + description: main power supply (4.1V-22V) 25 + 26 + vsys-supply: 27 + description: low power supply (3.0V-5.5V) 28 + 29 + vconn-supply: 30 + description: power supply (2.7V-5.5V) used to supply VConn on CC pin in 31 + source or dual power role 32 + 33 + connector: 34 + type: object 35 + 36 + allOf: 37 + - $ref: ../connector/usb-connector.yaml 38 + 39 + properties: 40 + compatible: 41 + const: usb-c-connector 42 + 43 + power-role: true 44 + 45 + typec-power-opmode: true 46 + 47 + required: 48 + - compatible 49 + 50 + required: 51 + - compatible 52 + - reg 53 + - connector 54 + 55 + additionalProperties: false 56 + 57 + examples: 58 + - | 59 + #include <dt-bindings/interrupt-controller/irq.h> 60 + i2c4 { 61 + #address-cells = <1>; 62 + #size-cells = <0>; 63 + 64 + typec: stusb1600@28 { 65 + compatible = "st,stusb1600"; 66 + reg = <0x28>; 67 + vdd-supply = <&vbus_drd>; 68 + vsys-supply = <&vdd_usb>; 69 + interrupts = <11 IRQ_TYPE_EDGE_FALLING>; 70 + interrupt-parent = <&gpioi>; 71 + 72 + typec_con: connector { 73 + compatible = "usb-c-connector"; 74 + label = "USB-C"; 75 + power-role = "dual"; 76 + data-role = "dual"; 77 + typec-power-opmode = "default"; 78 + 79 + port { 80 + typec_con_ep: endpoint { 81 + remote-endpoint = <&usbotg_hs_ep>; 82 + }; 83 + }; 84 + }; 85 + }; 86 + }; 87 + ...
+2
Documentation/devicetree/bindings/vendor-prefixes.yaml
··· 760 760 description: NXP Semiconductors 761 761 "^oceanic,.*": 762 762 description: Oceanic Systems (UK) Ltd. 763 + "^oct,.*": 764 + description: Octavo Systems LLC 763 765 "^okaya,.*": 764 766 description: Okaya Electric America, Inc. 765 767 "^oki,.*":
+1
arch/arm/boot/dts/Makefile
··· 1066 1066 stm32mp157a-iot-box.dtb \ 1067 1067 stm32mp157a-stinger96.dtb \ 1068 1068 stm32mp157c-dhcom-pdk2.dtb \ 1069 + stm32mp157c-dhcom-picoitx.dtb \ 1069 1070 stm32mp157c-dk2.dtb \ 1070 1071 stm32mp157c-ed1.dtb \ 1071 1072 stm32mp157c-ev1.dtb \
+1
arch/arm/boot/dts/stm32429i-eval.dts
··· 188 188 port { 189 189 dcmi_0: endpoint { 190 190 remote-endpoint = <&ov2640_0>; 191 + bus-type = <5>; 191 192 bus-width = <8>; 192 193 hsync-active = <0>; 193 194 vsync-active = <0>;
+1 -1
arch/arm/boot/dts/stm32h743.dtsi
··· 274 274 275 275 dmamux1: dma-router@40020800 { 276 276 compatible = "st,stm32h7-dmamux"; 277 - reg = <0x40020800 0x1c>; 277 + reg = <0x40020800 0x40>; 278 278 #dma-cells = <3>; 279 279 dma-channels = <16>; 280 280 dma-requests = <128>;
+76 -14
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi
··· 349 349 }; 350 350 }; 351 351 352 + fmc_pins_b: fmc-1 { 353 + pins { 354 + pinmux = <STM32_PINMUX('D', 4, AF12)>, /* FMC_NOE */ 355 + <STM32_PINMUX('D', 5, AF12)>, /* FMC_NWE */ 356 + <STM32_PINMUX('B', 7, AF12)>, /* FMC_NL */ 357 + <STM32_PINMUX('D', 14, AF12)>, /* FMC_D0 */ 358 + <STM32_PINMUX('D', 15, AF12)>, /* FMC_D1 */ 359 + <STM32_PINMUX('D', 0, AF12)>, /* FMC_D2 */ 360 + <STM32_PINMUX('D', 1, AF12)>, /* FMC_D3 */ 361 + <STM32_PINMUX('E', 7, AF12)>, /* FMC_D4 */ 362 + <STM32_PINMUX('E', 8, AF12)>, /* FMC_D5 */ 363 + <STM32_PINMUX('E', 9, AF12)>, /* FMC_D6 */ 364 + <STM32_PINMUX('E', 10, AF12)>, /* FMC_D7 */ 365 + <STM32_PINMUX('E', 11, AF12)>, /* FMC_D8 */ 366 + <STM32_PINMUX('E', 12, AF12)>, /* FMC_D9 */ 367 + <STM32_PINMUX('E', 13, AF12)>, /* FMC_D10 */ 368 + <STM32_PINMUX('E', 14, AF12)>, /* FMC_D11 */ 369 + <STM32_PINMUX('E', 15, AF12)>, /* FMC_D12 */ 370 + <STM32_PINMUX('D', 8, AF12)>, /* FMC_D13 */ 371 + <STM32_PINMUX('D', 9, AF12)>, /* FMC_D14 */ 372 + <STM32_PINMUX('D', 10, AF12)>, /* FMC_D15 */ 373 + <STM32_PINMUX('G', 9, AF12)>, /* FMC_NE2_FMC_NCE */ 374 + <STM32_PINMUX('G', 12, AF12)>; /* FMC_NE4 */ 375 + bias-disable; 376 + drive-push-pull; 377 + slew-rate = <3>; 378 + }; 379 + }; 380 + 381 + fmc_sleep_pins_b: fmc-sleep-1 { 382 + pins { 383 + pinmux = <STM32_PINMUX('D', 4, ANALOG)>, /* FMC_NOE */ 384 + <STM32_PINMUX('D', 5, ANALOG)>, /* FMC_NWE */ 385 + <STM32_PINMUX('B', 7, ANALOG)>, /* FMC_NL */ 386 + <STM32_PINMUX('D', 14, ANALOG)>, /* FMC_D0 */ 387 + <STM32_PINMUX('D', 15, ANALOG)>, /* FMC_D1 */ 388 + <STM32_PINMUX('D', 0, ANALOG)>, /* FMC_D2 */ 389 + <STM32_PINMUX('D', 1, ANALOG)>, /* FMC_D3 */ 390 + <STM32_PINMUX('E', 7, ANALOG)>, /* FMC_D4 */ 391 + <STM32_PINMUX('E', 8, ANALOG)>, /* FMC_D5 */ 392 + <STM32_PINMUX('E', 9, ANALOG)>, /* FMC_D6 */ 393 + <STM32_PINMUX('E', 10, ANALOG)>, /* FMC_D7 */ 394 + <STM32_PINMUX('E', 11, ANALOG)>, /* FMC_D8 */ 395 + <STM32_PINMUX('E', 12, ANALOG)>, /* FMC_D9 */ 396 + <STM32_PINMUX('E', 13, ANALOG)>, /* FMC_D10 */ 397 + <STM32_PINMUX('E', 14, ANALOG)>, /* FMC_D11 */ 398 + <STM32_PINMUX('E', 15, ANALOG)>, /* FMC_D12 */ 399 + <STM32_PINMUX('D', 8, ANALOG)>, /* FMC_D13 */ 400 + <STM32_PINMUX('D', 9, ANALOG)>, /* FMC_D14 */ 401 + <STM32_PINMUX('D', 10, ANALOG)>, /* FMC_D15 */ 402 + <STM32_PINMUX('G', 9, ANALOG)>, /* FMC_NE2_FMC_NCE */ 403 + <STM32_PINMUX('G', 12, ANALOG)>; /* FMC_NE4 */ 404 + }; 405 + }; 406 + 352 407 i2c1_pins_a: i2c1-0 { 353 408 pins { 354 409 pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */ ··· 1646 1591 }; 1647 1592 }; 1648 1593 1594 + spi4_pins_a: spi4-0 { 1595 + pins { 1596 + pinmux = <STM32_PINMUX('E', 12, AF5)>, /* SPI4_SCK */ 1597 + <STM32_PINMUX('E', 6, AF5)>; /* SPI4_MOSI */ 1598 + bias-disable; 1599 + drive-push-pull; 1600 + slew-rate = <1>; 1601 + }; 1602 + pins2 { 1603 + pinmux = <STM32_PINMUX('E', 13, AF5)>; /* SPI4_MISO */ 1604 + bias-disable; 1605 + }; 1606 + }; 1607 + 1608 + stusb1600_pins_a: stusb1600-0 { 1609 + pins { 1610 + pinmux = <STM32_PINMUX('I', 11, ANALOG)>; 1611 + bias-pull-up; 1612 + }; 1613 + }; 1614 + 1649 1615 uart4_pins_a: uart4-0 { 1650 1616 pins1 { 1651 1617 pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */ ··· 1798 1722 pins { 1799 1723 pinmux = <STM32_PINMUX('G', 7, AF8)>, /* UART8_RTS */ 1800 1724 <STM32_PINMUX('G', 10, AF8)>; /* UART8_CTS */ 1801 - bias-disable; 1802 - }; 1803 - }; 1804 - 1805 - spi4_pins_a: spi4-0 { 1806 - pins { 1807 - pinmux = <STM32_PINMUX('E', 12, AF5)>, /* SPI4_SCK */ 1808 - <STM32_PINMUX('E', 6, AF5)>; /* SPI4_MOSI */ 1809 - bias-disable; 1810 - drive-push-pull; 1811 - slew-rate = <1>; 1812 - }; 1813 - pins2 { 1814 - pinmux = <STM32_PINMUX('E', 13, AF5)>; /* SPI4_MISO */ 1815 1725 bias-disable; 1816 1726 }; 1817 1727 };
+29 -12
arch/arm/boot/dts/stm32mp151.dtsi
··· 362 362 #size-cells = <0>; 363 363 compatible = "st,stm32-lptimer"; 364 364 reg = <0x40009000 0x400>; 365 + interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>; 365 366 clocks = <&rcc LPTIM1_K>; 366 367 clock-names = "mux"; 368 + wakeup-source; 367 369 status = "disabled"; 368 370 369 371 pwm { ··· 1001 999 1002 1000 dmamux1: dma-router@48002000 { 1003 1001 compatible = "st,stm32h7-dmamux"; 1004 - reg = <0x48002000 0x1c>; 1002 + reg = <0x48002000 0x40>; 1005 1003 #dma-cells = <3>; 1006 1004 dma-requests = <128>; 1007 1005 dma-masters = <&dma1 &dma2>; ··· 1049 1047 1050 1048 sdmmc3: sdmmc@48004000 { 1051 1049 compatible = "arm,pl18x", "arm,primecell"; 1052 - arm,primecell-periphid = <0x10153180>; 1050 + arm,primecell-periphid = <0x00253180>; 1053 1051 reg = <0x48004000 0x400>; 1054 1052 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>; 1055 1053 interrupt-names = "cmd_irq"; ··· 1070 1068 resets = <&rcc USBO_R>; 1071 1069 reset-names = "dwc2"; 1072 1070 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 1073 - g-rx-fifo-size = <256>; 1071 + g-rx-fifo-size = <512>; 1074 1072 g-np-tx-fifo-size = <32>; 1075 - g-tx-fifo-size = <128 128 64 64 64 64 32 32>; 1073 + g-tx-fifo-size = <256 16 16 16 16 16 16 16>; 1076 1074 dr_mode = "otg"; 1077 1075 usb33d-supply = <&usb33>; 1078 1076 status = "disabled"; ··· 1100 1098 resets = <&rcc CAMITF_R>; 1101 1099 clocks = <&rcc DCMI>; 1102 1100 clock-names = "mclk"; 1103 - dmas = <&dmamux1 75 0x400 0x0d>; 1101 + dmas = <&dmamux1 75 0x400 0x01>; 1104 1102 dma-names = "tx"; 1105 1103 status = "disabled"; 1106 1104 }; ··· 1158 1156 #size-cells = <0>; 1159 1157 compatible = "st,stm32-lptimer"; 1160 1158 reg = <0x50021000 0x400>; 1159 + interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>; 1161 1160 clocks = <&rcc LPTIM2_K>; 1162 1161 clock-names = "mux"; 1162 + wakeup-source; 1163 1163 status = "disabled"; 1164 1164 1165 1165 pwm { ··· 1187 1183 #size-cells = <0>; 1188 1184 compatible = "st,stm32-lptimer"; 1189 1185 reg = <0x50022000 0x400>; 1186 + interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>; 1190 1187 clocks = <&rcc LPTIM3_K>; 1191 1188 clock-names = "mux"; 1189 + wakeup-source; 1192 1190 status = "disabled"; 1193 1191 1194 1192 pwm { ··· 1209 1203 lptimer4: timer@50023000 { 1210 1204 compatible = "st,stm32-lptimer"; 1211 1205 reg = <0x50023000 0x400>; 1206 + interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>; 1212 1207 clocks = <&rcc LPTIM4_K>; 1213 1208 clock-names = "mux"; 1209 + wakeup-source; 1214 1210 status = "disabled"; 1215 1211 1216 1212 pwm { ··· 1225 1217 lptimer5: timer@50024000 { 1226 1218 compatible = "st,stm32-lptimer"; 1227 1219 reg = <0x50024000 0x400>; 1220 + interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>; 1228 1221 clocks = <&rcc LPTIM5_K>; 1229 1222 clock-names = "mux"; 1223 + wakeup-source; 1230 1224 status = "disabled"; 1231 1225 1232 1226 pwm { ··· 1294 1284 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 1295 1285 clocks = <&rcc HASH1>; 1296 1286 resets = <&rcc HASH1_R>; 1297 - dmas = <&mdma1 31 0x10 0x1000A02 0x0 0x0>; 1287 + dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>; 1298 1288 dma-names = "in"; 1299 1289 dma-maxburst = <2>; 1300 1290 status = "disabled"; ··· 1358 1348 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>; 1359 1349 reg-names = "qspi", "qspi_mm"; 1360 1350 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 1361 - dmas = <&mdma1 22 0x10 0x100002 0x0 0x0>, 1362 - <&mdma1 22 0x10 0x100008 0x0 0x0>; 1351 + dmas = <&mdma1 22 0x2 0x100002 0x0 0x0>, 1352 + <&mdma1 22 0x2 0x100008 0x0 0x0>; 1363 1353 dma-names = "tx", "rx"; 1364 1354 clocks = <&rcc QSPI_K>; 1365 1355 resets = <&rcc QSPI_R>; ··· 1370 1360 1371 1361 sdmmc1: sdmmc@58005000 { 1372 1362 compatible = "arm,pl18x", "arm,primecell"; 1373 - arm,primecell-periphid = <0x10153180>; 1363 + arm,primecell-periphid = <0x00253180>; 1374 1364 reg = <0x58005000 0x1000>; 1375 1365 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 1376 1366 interrupt-names = "cmd_irq"; ··· 1385 1375 1386 1376 sdmmc2: sdmmc@58007000 { 1387 1377 compatible = "arm,pl18x", "arm,primecell"; 1388 - arm,primecell-periphid = <0x10153180>; 1378 + arm,primecell-periphid = <0x00253180>; 1389 1379 reg = <0x58007000 0x1000>; 1390 1380 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>; 1391 1381 interrupt-names = "cmd_irq"; ··· 1436 1426 status = "disabled"; 1437 1427 }; 1438 1428 1439 - usbh_ohci: usbh-ohci@5800c000 { 1429 + usbh_ohci: usb@5800c000 { 1440 1430 compatible = "generic-ohci"; 1441 1431 reg = <0x5800c000 0x1000>; 1442 1432 clocks = <&rcc USBH>; ··· 1445 1435 status = "disabled"; 1446 1436 }; 1447 1437 1448 - usbh_ehci: usbh-ehci@5800d000 { 1438 + usbh_ehci: usb@5800d000 { 1449 1439 compatible = "generic-ehci"; 1450 1440 reg = <0x5800d000 0x1000>; 1451 1441 clocks = <&rcc USBH>; ··· 1571 1561 st,syscfg-fmp = <&syscfg 0x4 0x20>; 1572 1562 wakeup-source; 1573 1563 status = "disabled"; 1564 + }; 1565 + 1566 + tamp: tamp@5c00a000 { 1567 + compatible = "st,stm32-tamp", "syscon", "simple-mfd"; 1568 + reg = <0x5c00a000 0x400>; 1574 1569 }; 1575 1570 1576 1571 /* ··· 1754 1739 st,syscfg-holdboot = <&rcc 0x10C 0x1>; 1755 1740 st,syscfg-tz = <&rcc 0x000 0x1>; 1756 1741 st,syscfg-pdds = <&pwr_mcu 0x0 0x1>; 1742 + st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>; 1743 + st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>; 1757 1744 status = "disabled"; 1758 1745 }; 1759 1746 };
+35
arch/arm/boot/dts/stm32mp157c-dhcom-picoitx.dts
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause 2 + /* 3 + * Copyright (C) 2020 Marek Vasut <marex@denx.de> 4 + * 5 + * DHCOM STM32MP1 variant: 6 + * DHCM-STM32MP157C-C065-R102-F0819-SPI-E-CAN2-SD-RTC-T-DSI-I-01D2 7 + * DHCOM PCB number: 587-200 or newer 8 + * PicoITX PCB number: 487-600 or newer 9 + */ 10 + /dts-v1/; 11 + 12 + #include "stm32mp157.dtsi" 13 + #include "stm32mp15xc.dtsi" 14 + #include "stm32mp15xx-dhcom-som.dtsi" 15 + #include "stm32mp15xx-dhcom-picoitx.dtsi" 16 + 17 + / { 18 + model = "DH electronics STM32MP157C DHCOM PicoITX"; 19 + compatible = "dh,stm32mp157c-dhcom-picoitx", "dh,stm32mp157c-dhcom-som", 20 + "st,stm32mp157"; 21 + }; 22 + 23 + &m_can1 { 24 + pinctrl-names = "default", "sleep"; 25 + pinctrl-0 = <&m_can1_pins_a>; 26 + pinctrl-1 = <&m_can1_sleep_pins_a>; 27 + status = "okay"; 28 + }; 29 + 30 + &m_can2 { 31 + pinctrl-names = "default", "sleep"; 32 + pinctrl-0 = <&m_can2_pins_a>; 33 + pinctrl-1 = <&m_can2_sleep_pins_a>; 34 + status = "okay"; 35 + };
+4
arch/arm/boot/dts/stm32mp157c-dk2.dts
··· 29 29 }; 30 30 }; 31 31 32 + &cryp1 { 33 + status = "okay"; 34 + }; 35 + 32 36 &dsi { 33 37 status = "okay"; 34 38 phy-dsi-supply = <&reg18>;
+12
arch/arm/boot/dts/stm32mp157c-ed1.dts
··· 115 115 }; 116 116 }; 117 117 118 + &crc1 { 119 + status = "okay"; 120 + }; 121 + 122 + &cryp1 { 123 + status = "okay"; 124 + }; 125 + 118 126 &dac { 119 127 pinctrl-names = "default"; 120 128 pinctrl-0 = <&dac_ch1_pins_a &dac_ch2_pins_a>; ··· 142 134 143 135 &gpu { 144 136 contiguous-area = <&gpu_reserved>; 137 + }; 138 + 139 + &hash1 { 140 + status = "okay"; 145 141 }; 146 142 147 143 &i2c4 {
+1
arch/arm/boot/dts/stm32mp157c-ev1.dts
··· 90 90 port { 91 91 dcmi_0: endpoint { 92 92 remote-endpoint = <&ov5640_0>; 93 + bus-type = <5>; 93 94 bus-width = <8>; 94 95 hsync-active = <0>; 95 96 vsync-active = <0>;
+1 -1
arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts
··· 15 15 16 16 / { 17 17 model = "Linux Automation MC-1 board"; 18 - compatible = "lxa,stm32mp157c-mc1", "st,stm32mp157"; 18 + compatible = "lxa,stm32mp157c-mc1", "oct,stm32mp15xx-osd32", "st,stm32mp157"; 19 19 20 20 aliases { 21 21 ethernet0 = &ethernet0;
+11 -8
arch/arm/boot/dts/stm32mp15xx-dhcom-pdk2.dtsi
··· 46 46 linux,code = <KEY_A>; 47 47 gpios = <&gpiof 3 GPIO_ACTIVE_LOW>; 48 48 }; 49 + 50 + /* 51 + * The EXTi IRQ line 0 is shared with PMIC, 52 + * so mark this as polled GPIO key. 53 + */ 54 + button-2 { 55 + label = "TA3-GPIO-C"; 56 + linux,code = <KEY_C>; 57 + gpios = <&gpiog 0 GPIO_ACTIVE_LOW>; 58 + }; 49 59 }; 50 60 51 61 gpio-keys { ··· 66 56 label = "TA2-GPIO-B"; 67 57 linux,code = <KEY_B>; 68 58 gpios = <&gpiod 6 GPIO_ACTIVE_LOW>; 69 - wakeup-source; 70 - }; 71 - 72 - button-2 { 73 - label = "TA3-GPIO-C"; 74 - linux,code = <KEY_C>; 75 - gpios = <&gpioi 11 GPIO_ACTIVE_LOW>; 76 59 wakeup-source; 77 60 }; 78 61 ··· 82 79 83 80 led-0 { 84 81 label = "green:led5"; 85 - gpios = <&gpiog 2 GPIO_ACTIVE_HIGH>; 82 + gpios = <&gpioc 6 GPIO_ACTIVE_HIGH>; 86 83 default-state = "off"; 87 84 }; 88 85
+143
arch/arm/boot/dts/stm32mp15xx-dhcom-picoitx.dtsi
··· 1 + // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause 2 + /* 3 + * Copyright (C) 2020 Marek Vasut <marex@denx.de> 4 + */ 5 + 6 + #include <dt-bindings/input/input.h> 7 + #include <dt-bindings/pwm/pwm.h> 8 + 9 + / { 10 + aliases { 11 + serial0 = &uart4; 12 + serial1 = &usart3; 13 + serial2 = &uart8; 14 + }; 15 + 16 + chosen { 17 + stdout-path = "serial0:115200n8"; 18 + }; 19 + 20 + led { 21 + compatible = "gpio-leds"; 22 + 23 + led-0 { 24 + label = "yellow:led"; 25 + gpios = <&gpioi 3 GPIO_ACTIVE_HIGH>; 26 + default-state = "off"; 27 + }; 28 + }; 29 + }; 30 + 31 + &adc { 32 + status = "disabled"; 33 + }; 34 + 35 + &dac { 36 + status = "disabled"; 37 + }; 38 + 39 + &gpioa { 40 + /* 41 + * NOTE: The USB Port on the PicoITX needs a PWR_EN signal to enable 42 + * port power. This signal should be handled by USB power sequencing 43 + * in order to turn on port power when USB bus is powered up, but so 44 + * far there is no such functionality. 45 + */ 46 + usb-port-power { 47 + gpio-hog; 48 + gpios = <13 GPIO_ACTIVE_LOW>; 49 + output-low; 50 + line-name = "usb-port-power"; 51 + }; 52 + }; 53 + 54 + &gpioc { 55 + gpio-line-names = "", "", "", "", 56 + "", "", "In1", "", 57 + "", "", "", "", 58 + "", "", "", ""; 59 + }; 60 + 61 + &gpiod { 62 + gpio-line-names = "", "", "", "", 63 + "", "", "", "", 64 + "", "", "", "Out1", 65 + "Out2", "", "", ""; 66 + }; 67 + 68 + &gpiog { 69 + gpio-line-names = "In2", "", "", "", 70 + "", "", "", "", 71 + "", "", "", "", 72 + "", "", "", ""; 73 + }; 74 + 75 + &i2c2 { /* On board-to-board connector (optional) */ 76 + pinctrl-names = "default"; 77 + pinctrl-0 = <&i2c2_pins_a>; 78 + i2c-scl-rising-time-ns = <185>; 79 + i2c-scl-falling-time-ns = <20>; 80 + status = "okay"; 81 + /* spare dmas for other usage */ 82 + /delete-property/dmas; 83 + /delete-property/dma-names; 84 + }; 85 + 86 + &i2c5 { /* On board-to-board connector */ 87 + pinctrl-names = "default"; 88 + pinctrl-0 = <&i2c5_pins_a>; 89 + i2c-scl-rising-time-ns = <185>; 90 + i2c-scl-falling-time-ns = <20>; 91 + status = "okay"; 92 + /* spare dmas for other usage */ 93 + /delete-property/dmas; 94 + /delete-property/dma-names; 95 + }; 96 + 97 + &usart3 { 98 + pinctrl-names = "default"; 99 + pinctrl-0 = <&usart3_pins_a>; 100 + status = "okay"; 101 + }; 102 + 103 + &uart8 { 104 + pinctrl-names = "default"; 105 + pinctrl-0 = <&uart8_pins_a &uart8_rtscts_pins_a>; 106 + status = "okay"; 107 + }; 108 + 109 + &usbh_ehci { 110 + phys = <&usbphyc_port0>; 111 + status = "okay"; 112 + }; 113 + 114 + &usbh_ohci { 115 + phys = <&usbphyc_port0>; 116 + status = "okay"; 117 + }; 118 + 119 + &usbotg_hs { 120 + dr_mode = "otg"; 121 + pinctrl-0 = <&usbotg_hs_pins_a>; 122 + pinctrl-names = "default"; 123 + phy-names = "usb2-phy"; 124 + phys = <&usbphyc_port1 0>; 125 + vbus-supply = <&vbus_otg>; 126 + status = "okay"; 127 + }; 128 + 129 + &usbphyc { 130 + status = "okay"; 131 + }; 132 + 133 + &usbphyc_port0 { 134 + phy-supply = <&vdd_usb>; 135 + vdda1v1-supply = <&reg11>; 136 + vdda1v8-supply = <&reg18>; 137 + }; 138 + 139 + &usbphyc_port1 { 140 + phy-supply = <&vdd_usb>; 141 + vdda1v1-supply = <&reg11>; 142 + vdda1v8-supply = <&reg18>; 143 + };
+39
arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
··· 11 11 / { 12 12 aliases { 13 13 ethernet0 = &ethernet0; 14 + ethernet1 = &ksz8851; 14 15 }; 15 16 16 17 memory@c0000000 { ··· 69 68 gpio = <&gpiog 3 GPIO_ACTIVE_LOW>; 70 69 regulator-always-on; 71 70 regulator-boot-on; 71 + vin-supply = <&vdd>; 72 72 }; 73 73 }; 74 74 ··· 128 126 129 127 phy0: ethernet-phy@1 { 130 128 reg = <1>; 129 + interrupt-parent = <&gpioi>; 130 + interrupts = <11 IRQ_TYPE_LEVEL_LOW>; 131 131 }; 132 132 }; 133 + }; 134 + 135 + &fmc { 136 + pinctrl-names = "default", "sleep"; 137 + pinctrl-0 = <&fmc_pins_b>; 138 + pinctrl-1 = <&fmc_sleep_pins_b>; 139 + status = "okay"; 140 + 141 + ksz8851: ks8851mll@1,0 { 142 + compatible = "micrel,ks8851-mll"; 143 + reg = <1 0x0 0x2>, <1 0x2 0x20000>; 144 + interrupt-parent = <&gpioc>; 145 + interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 146 + bank-width = <2>; 147 + 148 + /* Timing values are in nS */ 149 + st,fmc2-ebi-cs-mux-enable; 150 + st,fmc2-ebi-cs-transaction-type = <4>; 151 + st,fmc2-ebi-cs-buswidth = <16>; 152 + st,fmc2-ebi-cs-address-setup-ns = <5>; 153 + st,fmc2-ebi-cs-address-hold-ns = <5>; 154 + st,fmc2-ebi-cs-bus-turnaround-ns = <5>; 155 + st,fmc2-ebi-cs-data-setup-ns = <45>; 156 + st,fmc2-ebi-cs-data-hold-ns = <1>; 157 + st,fmc2-ebi-cs-write-address-setup-ns = <5>; 158 + st,fmc2-ebi-cs-write-address-hold-ns = <5>; 159 + st,fmc2-ebi-cs-write-bus-turnaround-ns = <5>; 160 + st,fmc2-ebi-cs-write-data-setup-ns = <45>; 161 + st,fmc2-ebi-cs-write-data-hold-ns = <1>; 162 + }; 163 + }; 164 + 165 + &gpioc { 166 + status = "okay"; 133 167 }; 134 168 135 169 &i2c4 { ··· 240 202 241 203 vdda: ldo1 { 242 204 regulator-name = "vdda"; 205 + regulator-always-on; 243 206 regulator-min-microvolt = <2900000>; 244 207 regulator-max-microvolt = <2900000>; 245 208 interrupts = <IT_CURLIM_LDO1 0>;
+4
arch/arm/boot/dts/stm32mp15xx-dhcor-som.dtsi
··· 21 21 }; 22 22 }; 23 23 24 + &dts { 25 + status = "okay"; 26 + }; 27 + 24 28 &i2c4 { 25 29 pinctrl-names = "default"; 26 30 pinctrl-0 = <&i2c4_pins_a>;
+38
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi
··· 124 124 status = "okay"; 125 125 }; 126 126 127 + &crc1 { 128 + status = "okay"; 129 + }; 130 + 127 131 &dts { 128 132 status = "okay"; 129 133 }; ··· 153 149 154 150 &gpu { 155 151 contiguous-area = <&gpu_reserved>; 152 + }; 153 + 154 + &hash1 { 155 + status = "okay"; 156 156 }; 157 157 158 158 &i2c1 { ··· 245 237 /* spare dmas for other usage */ 246 238 /delete-property/dmas; 247 239 /delete-property/dma-names; 240 + 241 + stusb1600@28 { 242 + compatible = "st,stusb1600"; 243 + reg = <0x28>; 244 + interrupts = <11 IRQ_TYPE_EDGE_FALLING>; 245 + interrupt-parent = <&gpioi>; 246 + pinctrl-names = "default"; 247 + pinctrl-0 = <&stusb1600_pins_a>; 248 + status = "okay"; 249 + vdd-supply = <&vin>; 250 + 251 + connector { 252 + compatible = "usb-c-connector"; 253 + label = "USB-C"; 254 + power-role = "dual"; 255 + typec-power-opmode = "default"; 256 + 257 + port { 258 + con_usbotg_hs_ep: endpoint { 259 + remote-endpoint = <&usbotg_hs_ep>; 260 + }; 261 + }; 262 + }; 263 + }; 248 264 249 265 pmic: stpmic@33 { 250 266 compatible = "st,stpmic1"; ··· 680 648 phy-names = "usb2-phy"; 681 649 usb-role-switch; 682 650 status = "okay"; 651 + 652 + port { 653 + usbotg_hs_ep: endpoint { 654 + remote-endpoint = <&con_usbotg_hs_ep>; 655 + }; 656 + }; 683 657 }; 684 658 685 659 &usbphyc {