Commit b61010a1 authored by Arnd Bergmann's avatar Arnd Bergmann

Merge tag 'stm32-dt-for-v5.9-1' of...

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

STM32 DT updates for v5.9, round 1

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

MCU part:
 -Enable stmpe811 on stm32f429
 -Enable l3gd20-gyro on stm32f429
 -Enable panel-ilitek-9341 on stm32f429
 -Fixes for yaml validation (leds, nodes names,
  remove useless bindings ...)
 -Add stm32xxx compatibles for syscon nodes

MPU part:
 -Add support for usb role switch to dwc2
 -Add stm32xxx compatibles for syscon nodes
 -Update uart4 pin configuration for low power mode
  used by dkx and ed1 ST boards
 -Fix uart nodes ordering and uart7_pins_a comments
 -Add the support of uart instances available on STM32MP157 boards:
  - usart3 on stm32mp157c-ev1, stm32mp157a-dk1, and stm32mp157c-dk2
  - uart7 on stm32mp157a-dk1 and stm32mp157c-dk2
  - usart2 on stm32mp157c-dk2
 -Configure I2C5 on stm32mp15 DK boards

* tag 'stm32-dt-for-v5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32: (38 commits)
  ARM: dts: stm32: enable usb-role-switch on USB OTG on stm32mp15xx-dkx
  ARM: dts: stm32: Add compatibles for syscon for stm32mp151
  ARM: dts: stm32: Add compatibles for syscon for stm32h743
  ARM: dts: stm32: Add compatibles for syscon for stm32f746
  ARM: dts: stm32: Add compatibles for syscon for stm32f426
  dt-bindings: arm: stm32: Add compatibles for syscon nodes
  ARM: dts: stm32: Fix spi4 pins in stm32mp15-pinctrl
  ARM: dts: stm32: configure i2c5 support on stm32mp15xx-dkx
  ARM: dts: stm32: add usart2 node to stm32mp157c-dk2
  ARM: dts: stm32: add uart7 support to stm32mp15xx-dkx boards
  ARM: dts: stm32: add usart3 node to stm32mp157c-ev1
  ARM: dts: stm32: add usart3 node to stm32mp15xx-dkx boards
  ARM: dts: stm32: add usart2, usart3 and uart7 pins in stm32mp15-pinctrl
  ARM: dts: stm32: cosmetic updates in stm32mp15-pinctrl
  ARM: dts: stm32: fix uart7_pins_a comments in stm32mp15-pinctrl
  ARM: dts: stm32: fix uart nodes ordering in stm32mp15-pinctrl
  ARM: dts: stm32: Update UART4 pin states on stm32mp15xx-dkx
  ARM: dts: stm32: Update pin states for uart4 on stm32mp157c-ed1
  ARM: dts: stm32: update uart4 pin configuration for low power on stm32mp157
  dt-bindings: usb: dwc2: Fix issues for stm32mp15x SoC
  ...

Link: https://lore.kernel.org/r/8a9bb27b-fc08-126a-11f7-01354e8577e1@st.comSigned-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents bd979a33 d9b6b515
......@@ -16,6 +16,9 @@ properties:
- items:
- enum:
- st,stm32mp157-syscfg
- st,stm32mp151-pwr-mcu
- st,stm32-syscfg
- st,stm32-power-config
- const: syscon
reg:
......@@ -27,7 +30,16 @@ properties:
required:
- compatible
- reg
- clocks
if:
properties:
compatible:
contains:
enum:
- st,stm32mp157-syscfg
then:
required:
- clocks
additionalProperties: false
......
......@@ -44,7 +44,9 @@ properties:
- const: st,stm32f4x9-hsotg
- const: st,stm32f7-hsotg
- const: st,stm32mp15-fsotg
- const: st,stm32mp15-hsotg
- items:
- const: st,stm32mp15-hsotg
- const: snps,dwc2
- const: samsung,s3c6400-hsotg
reg:
......@@ -93,7 +95,7 @@ properties:
vusb_a-supply:
description: phandle to voltage regulator of analog section.
vusb33d-supply:
usb33d-supply:
description: reference to the VBUS and ID sensing comparators supply, in
order to perform OTG operation, used on STM32MP15 SoCs.
......
......@@ -104,17 +104,17 @@ vdd_panel: vdd-panel {
leds {
compatible = "gpio-leds";
green {
led-green {
gpios = <&gpiog 6 1>;
linux,default-trigger = "heartbeat";
};
orange {
led-orange {
gpios = <&gpiog 7 1>;
};
red {
led-red {
gpios = <&gpiog 10 1>;
};
blue {
led-blue {
gpios = <&gpiog 12 1>;
};
};
......@@ -240,7 +240,7 @@ &iwdg {
&ltdc {
status = "okay";
pinctrl-0 = <&ltdc_pins>;
pinctrl-0 = <&ltdc_pins_a>;
pinctrl-names = "default";
port {
......
......@@ -66,17 +66,17 @@ aliases {
leds {
compatible = "gpio-leds";
green {
led-green {
gpios = <&gpiof 10 1>;
linux,default-trigger = "heartbeat";
};
orange {
led-orange {
gpios = <&stmfx_pinctrl 17 1>;
};
red {
led-red {
gpios = <&gpiob 7 1>;
};
blue {
led-blue {
gpios = <&stmfx_pinctrl 19 1>;
};
};
......
......@@ -257,7 +257,7 @@ pins {
};
};
pwm1_pins: pwm-1 {
pwm1_pins: pwm1-0 {
pins {
pinmux = <STM32_PINMUX('A', 8, AF1)>, /* TIM1_CH1 */
<STM32_PINMUX('B', 13, AF1)>, /* TIM1_CH1N */
......@@ -265,7 +265,7 @@ pins {
};
};
pwm3_pins: pwm-3 {
pwm3_pins: pwm3-0 {
pins {
pinmux = <STM32_PINMUX('B', 4, AF2)>, /* TIM3_CH1 */
<STM32_PINMUX('B', 5, AF2)>; /* TIM3_CH2 */
......@@ -282,7 +282,7 @@ pins {
};
};
ltdc_pins: ltdc-0 {
ltdc_pins_a: ltdc-0 {
pins {
pinmux = <STM32_PINMUX('I', 12, AF14)>, /* LCD_HSYNC */
<STM32_PINMUX('I', 13, AF14)>, /* LCD_VSYNC */
......@@ -316,6 +316,85 @@ pins {
};
};
ltdc_pins_b: ltdc-1 {
pins {
pinmux = <STM32_PINMUX('C', 6, AF14)>,
/* LCD_HSYNC */
<STM32_PINMUX('A', 4, AF14)>,
/* LCD_VSYNC */
<STM32_PINMUX('G', 7, AF14)>,
/* LCD_CLK */
<STM32_PINMUX('C', 10, AF14)>,
/* LCD_R2 */
<STM32_PINMUX('B', 0, AF9)>,
/* LCD_R3 */
<STM32_PINMUX('A', 11, AF14)>,
/* LCD_R4 */
<STM32_PINMUX('A', 12, AF14)>,
/* LCD_R5 */
<STM32_PINMUX('B', 1, AF9)>,
/* LCD_R6*/
<STM32_PINMUX('G', 6, AF14)>,
/* LCD_R7 */
<STM32_PINMUX('A', 6, AF14)>,
/* LCD_G2 */
<STM32_PINMUX('G', 10, AF9)>,
/* LCD_G3 */
<STM32_PINMUX('B', 10, AF14)>,
/* LCD_G4 */
<STM32_PINMUX('D', 6, AF14)>,
/* LCD_B2 */
<STM32_PINMUX('G', 11, AF14)>,
/* LCD_B3*/
<STM32_PINMUX('B', 11, AF14)>,
/* LCD_G5 */
<STM32_PINMUX('C', 7, AF14)>,
/* LCD_G6 */
<STM32_PINMUX('D', 3, AF14)>,
/* LCD_G7 */
<STM32_PINMUX('G', 12, AF9)>,
/* LCD_B4 */
<STM32_PINMUX('A', 3, AF14)>,
/* LCD_B5 */
<STM32_PINMUX('B', 8, AF14)>,
/* LCD_B6 */
<STM32_PINMUX('B', 9, AF14)>,
/* LCD_B7 */
<STM32_PINMUX('F', 10, AF14)>;
/* LCD_DE */
slew-rate = <2>;
};
};
spi5_pins: spi5-0 {
pins1 {
pinmux = <STM32_PINMUX('F', 7, AF5)>,
/* SPI5_CLK */
<STM32_PINMUX('F', 9, AF5)>;
/* SPI5_MOSI */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('F', 8, AF5)>;
/* SPI5_MISO */
bias-disable;
};
};
i2c3_pins: i2c3-0 {
pins {
pinmux = <STM32_PINMUX('C', 9, AF4)>,
/* I2C3_SDA */
<STM32_PINMUX('A', 8, AF4)>;
/* I2C3_SCL */
bias-disable;
drive-open-drain;
slew-rate = <3>;
};
};
dcmi_pins: dcmi-0 {
pins {
pinmux = <STM32_PINMUX('A', 4, AF13)>, /* DCMI_HSYNC */
......
......@@ -49,6 +49,8 @@
#include "stm32f429.dtsi"
#include "stm32f429-pinctrl.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>
/ {
model = "STMicroelectronics STM32F429i-DISCO board";
......@@ -70,10 +72,10 @@ aliases {
leds {
compatible = "gpio-leds";
red {
led-red {
gpios = <&gpiog 14 0>;
};
green {
led-green {
gpios = <&gpiog 13 0>;
linux,default-trigger = "heartbeat";
};
......@@ -108,12 +110,103 @@ &crc {
status = "okay";
};
&i2c3 {
pinctrl-names = "default";
pinctrl-0 = <&i2c3_pins>;
clock-frequency = <100000>;
status = "okay";
stmpe811@41 {
compatible = "st,stmpe811";
reg = <0x41>;
interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
interrupt-parent = <&gpioa>;
/* 3.25 MHz ADC clock speed */
st,adc-freq = <1>;
/* 12-bit ADC */
st,mod-12b = <1>;
/* internal ADC reference */
st,ref-sel = <0>;
/* ADC converstion time: 80 clocks */
st,sample-time = <4>;
stmpe_touchscreen {
compatible = "st,stmpe-ts";
/* 8 sample average control */
st,ave-ctrl = <3>;
/* 7 length fractional part in z */
st,fraction-z = <7>;
/*
* 50 mA typical 80 mA max touchscreen drivers
* current limit value
*/
st,i-drive = <1>;
/* 1 ms panel driver settling time */
st,settling = <3>;
/* 5 ms touch detect interrupt delay */
st,touch-det-delay = <5>;
};
stmpe_adc {
compatible = "st,stmpe-adc";
/* forbid to use ADC channels 3-0 (touch) */
st,norequest-mask = <0x0F>;
};
};
};
&ltdc {
status = "okay";
pinctrl-0 = <&ltdc_pins_b>;
pinctrl-names = "default";
port {
ltdc_out_rgb: endpoint {
remote-endpoint = <&panel_in_rgb>;
};
};
};
&rtc {
assigned-clocks = <&rcc 1 CLK_RTC>;
assigned-clock-parents = <&rcc 1 CLK_LSI>;
status = "okay";
};
&spi5 {
status = "okay";
pinctrl-0 = <&spi5_pins>;
pinctrl-names = "default";
#address-cells = <1>;
#size-cells = <0>;
cs-gpios = <&gpioc 1 GPIO_ACTIVE_LOW>, <&gpioc 2 GPIO_ACTIVE_LOW>;
l3gd20: l3gd20@0 {
compatible = "st,l3gd20-gyro";
spi-max-frequency = <10000000>;
st,drdy-int-pin = <2>;
interrupt-parent = <&gpioa>;
interrupts = <1 IRQ_TYPE_EDGE_RISING>,
<2 IRQ_TYPE_EDGE_RISING>;
reg = <0>;
status = "okay";
};
display: display@1{
/* Connect panel-ilitek-9341 to ltdc */
compatible = "st,sf-tc240t-9370-t";
reg = <1>;
spi-3wire;
spi-max-frequency = <10000000>;
dc-gpios = <&gpiod 13 0>;
port {
panel_in_rgb: endpoint {
remote-endpoint = <&ltdc_out_rgb>;
};
};
};
};
&usart1 {
pinctrl-0 = <&usart1_pins_a>;
pinctrl-names = "default";
......
......@@ -322,7 +322,6 @@ rtc: rtc@40002800 {
assigned-clock-parents = <&rcc 1 CLK_LSE>;
interrupt-parent = <&exti>;
interrupts = <17 1>;
interrupt-names = "alarm";
st,syscfg = <&pwrcfg 0x00 0x100>;
status = "disabled";
};
......@@ -402,6 +401,18 @@ i2c1: i2c@40005400 {
status = "disabled";
};
i2c3: i2c@40005c00 {
compatible = "st,stm32f4-i2c";
reg = <0x40005c00 0x400>;
interrupts = <72>,
<73>;
resets = <&rcc STM32F4_APB1_RESET(I2C3)>;
clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C3)>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
dac: dac@40007400 {
compatible = "st,stm32f4-dac-core";
reg = <0x40007400 0x400>;
......@@ -586,8 +597,8 @@ spi4: spi@40013400 {
status = "disabled";
};
syscfg: system-config@40013800 {
compatible = "syscon";
syscfg: syscon@40013800 {
compatible = "st,stm32-syscfg", "syscon";
reg = <0x40013800 0x400>;
};
......@@ -660,6 +671,9 @@ spi5: spi@40015000 {
reg = <0x40015000 0x400>;
interrupts = <85>;
clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI5)>;
dmas = <&dma2 3 2 0x400 0x0>,
<&dma2 4 2 0x400 0x0>;
dma-names = "rx", "tx";
status = "disabled";
};
......@@ -674,7 +688,7 @@ spi6: spi@40015400 {
};
pwrcfg: power-config@40007000 {
compatible = "syscon";
compatible = "st,stm32-power-config", "syscon";
reg = <0x40007000 0x400>;
};
......
......@@ -89,17 +89,17 @@ soc {
leds {
compatible = "gpio-leds";
green {
led-green {
gpios = <&gpiog 6 GPIO_ACTIVE_LOW>;
linux,default-trigger = "heartbeat";
};
orange {
led-orange {
gpios = <&gpiod 4 GPIO_ACTIVE_LOW>;
};
red {
led-red {
gpios = <&gpiod 5 GPIO_ACTIVE_LOW>;
};
blue {
led-blue {
gpios = <&gpiok 3 GPIO_ACTIVE_LOW>;
};
};
......
......@@ -304,7 +304,6 @@ rtc: rtc@40002800 {
assigned-clock-parents = <&rcc 1 CLK_LSE>;
interrupt-parent = <&exti>;
interrupts = <17 1>;
interrupt-names = "alarm";
st,syscfg = <&pwrcfg 0x00 0x100>;
status = "disabled";
};
......@@ -496,8 +495,8 @@ sdio1: sdio1@40012c00 {
status = "disabled";
};
syscfg: system-config@40013800 {
compatible = "syscon";
syscfg: syscon@40013800 {
compatible = "st,stm32-syscfg", "syscon";
reg = <0x40013800 0x400>;
};
......@@ -564,7 +563,7 @@ pwm {
};
pwrcfg: power-config@40007000 {
compatible = "syscon";
compatible = "st,stm32-power-config", "syscon";
reg = <0x40007000 0x400>;
};
......
......@@ -66,11 +66,11 @@ aliases {
leds {
compatible = "gpio-leds";
green {
led-green {
gpios = <&gpioj 5 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
};
red {
led-red {
gpios = <&gpioj 13 GPIO_ACTIVE_HIGH>;
};
};
......
......@@ -163,7 +163,7 @@ gpiok: gpio@58022800 {
#interrupt-cells = <2>;
};
i2c1_pins_a: i2c1@0 {
i2c1_pins_a: i2c1-0 {
pins {
pinmux = <STM32_PINMUX('B', 6, AF4)>, /* I2C1_SCL */
<STM32_PINMUX('B', 7, AF4)>; /* I2C1_SDA */
......@@ -173,7 +173,7 @@ pins {
};
};
ethernet_rmii: rmii@0 {
ethernet_rmii: rmii-0 {
pins {
pinmux = <STM32_PINMUX('G', 11, AF11)>,
<STM32_PINMUX('G', 13, AF11)>,
......@@ -256,7 +256,7 @@ pins {
};
};
usart1_pins: usart1@0 {
usart1_pins: usart1-0 {
pins1 {
pinmux = <STM32_PINMUX('B', 14, AF4)>; /* USART1_TX */
bias-disable;
......@@ -269,7 +269,7 @@ pins2 {
};
};
usart2_pins: usart2@0 {
usart2_pins: usart2-0 {
pins1 {
pinmux = <STM32_PINMUX('D', 5, AF7)>; /* USART2_TX */
bias-disable;
......@@ -282,7 +282,7 @@ pins2 {
};
};
usbotg_hs_pins_a: usbotg-hs@0 {
usbotg_hs_pins_a: usbotg-hs-0 {
pins {
pinmux = <STM32_PINMUX('H', 4, AF10)>, /* ULPI_NXT */
<STM32_PINMUX('I', 11, AF10)>, /* ULPI_DIR> */
......
......@@ -361,8 +361,8 @@ exti: interrupt-controller@58000000 {
interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <62>, <76>;
};
syscfg: system-config@58000400 {
compatible = "syscon";
syscfg: syscon@58000400 {
compatible = "st,stm32-syscfg", "syscon";
reg = <0x58000400 0x400>;
};
......@@ -487,7 +487,6 @@ rtc: rtc@58004000 {
assigned-clock-parents = <&rcc LSE_CK>;
interrupt-parent = <&exti>;
interrupts = <17 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "alarm";
st,syscfg = <&pwrcfg 0x00 0x100>;
status = "disabled";
};
......@@ -502,7 +501,7 @@ rcc: reset-clock-controller@58024400 {
};
pwrcfg: power-config@58024800 {
compatible = "syscon";
compatible = "st,stm32-power-config", "syscon";
reg = <0x58024800 0x400>;
};
......
......@@ -210,8 +210,8 @@ pins1 {
<STM32_PINMUX('E', 2, ANALOG)>, /* ETH_RGMII_TXD3 */
<STM32_PINMUX('B', 11, ANALOG)>, /* ETH_RGMII_TX_CTL */
<STM32_PINMUX('C', 1, ANALOG)>, /* ETH_MDC */
<STM32_PINMUX('A', 2, ANALOG)>, /* ETH_MDIO */
<STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RGMII_RXD0 */
<STM32_PINMUX('A', 2, ANALOG)>, /* ETH_MDIO */
<STM32_PINMUX('C', 4, ANALOG)>, /* ETH_RGMII_RXD0 */
<STM32_PINMUX('C', 5, ANALOG)>, /* ETH_RGMII_RXD1 */
<STM32_PINMUX('H', 6, ANALOG)>, /* ETH_RGMII_RXD2 */
<STM32_PINMUX('H', 7, ANALOG)>, /* ETH_RGMII_RXD3 */
......@@ -453,7 +453,7 @@ pins {
i2c5_pins_b: i2c5-1 {
pins {
pinmux = <STM32_PINMUX('D', 0, AF4)>, /* I2C5_SCL */
<STM32_PINMUX('D', 1, AF4)>; /* I2C5_SDA */
<STM32_PINMUX('D', 1, AF4)>; /* I2C5_SDA */
bias-disable;
drive-open-drain;
slew-rate = <0>;
......@@ -463,7 +463,7 @@ pins {
i2c5_sleep_pins_b: i2c5-sleep-1 {
pins {
pinmux = <STM32_PINMUX('D', 0, ANALOG)>, /* I2C5_SCL */
<STM32_PINMUX('D', 1, ANALOG)>; /* I2C5_SDA */
<STM32_PINMUX('D', 1, ANALOG)>; /* I2C5_SDA */
};
};
......@@ -1072,7 +1072,6 @@ pins {
};
};
sai2a_pins_b: sai2a-1 {
pins1 {
pinmux = <STM32_PINMUX('I', 6, AF10)>, /* SAI2_SD_A */
......@@ -1574,6 +1573,147 @@ pins2 {
};
};
uart4_pins_a: uart4-0 {
pins1 {
pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
bias-disable;
};
};
uart4_idle_pins_a: uart4-idle-0 {
pins1 {
pinmux = <STM32_PINMUX('G', 11, ANALOG)>; /* UART4_TX */
};
pins2 {
pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
bias-disable;
};
};
uart4_sleep_pins_a: uart4-sleep-0 {
pins {
pinmux = <STM32_PINMUX('G', 11, ANALOG)>, /* UART4_TX */
<STM32_PINMUX('B', 2, ANALOG)>; /* UART4_RX */
};
};
uart4_pins_b: uart4-1 {
pins1 {
pinmux = <STM32_PINMUX('D', 1, AF8)>; /* UART4_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
bias-disable;
};
};
uart4_pins_c: uart4-2 {
pins1 {
pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
bias-disable;
};
};
uart7_pins_a: uart7-0 {
pins1 {
pinmux = <STM32_PINMUX('E', 8, AF7)>; /* UART7_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('E', 7, AF7)>, /* UART7_RX */
<STM32_PINMUX('E', 10, AF7)>, /* UART7_CTS */
<STM32_PINMUX('E', 9, AF7)>; /* UART7_RTS */
bias-disable;
};
};
uart7_pins_b: uart7-1 {
pins1 {
pinmux = <STM32_PINMUX('F', 7, AF7)>; /* UART7_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('F', 6, AF7)>; /* UART7_RX */
bias-disable;
};
};
uart7_pins_c: uart7-2 {
pins1 {
pinmux = <STM32_PINMUX('E', 8, AF7)>; /* UART7_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('E', 7, AF7)>; /* UART7_RX */
bias-disable;
};
};
uart7_idle_pins_c: uart7-idle-2 {
pins1 {
pinmux = <STM32_PINMUX('E', 8, ANALOG)>; /* UART7_TX */
};
pins2 {
pinmux = <STM32_PINMUX('E', 7, AF7)>; /* UART7_RX */
bias-disable;
};
};
uart7_sleep_pins_c: uart7-sleep-2 {
pins {
pinmux = <STM32_PINMUX('E', 8, ANALOG)>, /* UART7_TX */
<STM32_PINMUX('E', 7, ANALOG)>; /* UART7_RX */
};
};
uart8_pins_a: uart8-0 {
pins1 {
pinmux = <STM32_PINMUX('E', 1, AF8)>; /* UART8_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('E', 0, AF8)>; /* UART8_RX */
bias-disable;
};
};
spi4_pins_a: spi4-0 {
pins {
pinmux = <STM32_PINMUX('E', 12, AF5)>, /* SPI4_SCK */
<STM32_PINMUX('E', 6, AF5)>; /* SPI4_MOSI */
bias-disable;
drive-push-pull;
slew-rate = <1>;
};
pins2 {
pinmux = <STM32_PINMUX('E', 13, AF5)>; /* SPI4_MISO */
bias-disable;
};
};
usart2_pins_a: usart2-0 {
pins1 {
pinmux = <STM32_PINMUX('F', 5, AF7)>, /* USART2_TX */
......@@ -1622,99 +1762,127 @@ pins {
};
};
usart3_pins_a: usart3-0 {
usart2_pins_c: usart2-2 {
pins1 {
pinmux = <STM32_PINMUX('B', 10, AF7)>; /* USART3_TX */
pinmux = <STM32_PINMUX('D', 5, AF7)>, /* USART2_TX */
<STM32_PINMUX('D', 4, AF7)>; /* USART2_RTS */
bias-disable;
drive-push-pull;
slew-rate = <0>;
slew-rate = <3>;
};
pins2 {
pinmux = <STM32_PINMUX('B', 12, AF8)>; /* USART3_RX */
pinmux = <STM32_PINMUX('D', 6, AF7)>, /* USART2_RX */
<STM32_PINMUX('D', 3, AF7)>; /* USART2_CTS_NSS */
bias-disable;
};
};
uart4_pins_a: uart4-0 {
usart2_idle_pins_c: usart2-idle-2 {
pins1 {
pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
pinmux = <STM32_PINMUX('D', 5, ANALOG)>, /* USART2_TX */
<STM32_PINMUX('D', 4, ANALOG)>, /* USART2_RTS */
<STM32_PINMUX('D', 3, ANALOG)>; /* USART2_CTS_NSS */
};
pins2 {
pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
pinmux = <STM32_PINMUX('D', 6, AF7)>; /* USART2_RX */
bias-disable;
};
};
uart4_pins_b: uart4-1 {
usart2_sleep_pins_c: usart2-sleep-2 {
pins {
pinmux = <STM32_PINMUX('D', 5, ANALOG)>, /* USART2_TX */
<STM32_PINMUX('D', 4, ANALOG)>, /* USART2_RTS */
<STM32_PINMUX('D', 6, ANALOG)>, /* USART2_RX */
<STM32_PINMUX('D', 3, ANALOG)>; /* USART2_CTS_NSS */
};
};
usart3_pins_a: usart3-0 {
pins1 {
pinmux = <STM32_PINMUX('D', 1, AF8)>; /* UART4_TX */
pinmux = <STM32_PINMUX('B', 10, AF7)>; /* USART3_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
pinmux = <STM32_PINMUX('B', 12, AF8)>; /* USART3_RX */
bias-disable;
};
};
uart4_pins_c: uart4-2 {
usart3_pins_b: usart3-1 {
pins1 {
pinmux = <STM32_PINMUX('G', 11, AF6)>; /* UART4_TX */
pinmux = <STM32_PINMUX('B', 10, AF7)>, /* USART3_TX */
<STM32_PINMUX('G', 8, AF8)>; /* USART3_RTS */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
pinmux = <STM32_PINMUX('B', 12, AF8)>, /* USART3_RX */
<STM32_PINMUX('I', 10, AF8)>; /* USART3_CTS_NSS */
bias-disable;
};
};
uart7_pins_a: uart7-0 {
usart3_idle_pins_b: usart3-idle-1 {
pins1 {
pinmux = <STM32_PINMUX('E', 8, AF7)>; /* UART4_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
pinmux = <STM32_PINMUX('B', 10, ANALOG)>, /* USART3_TX */
<STM32_PINMUX('G', 8, ANALOG)>, /* USART3_RTS */
<STM32_PINMUX('I', 10, ANALOG)>; /* USART3_CTS_NSS */
};
pins2 {
pinmux = <STM32_PINMUX('E', 7, AF7)>, /* UART4_RX */
<STM32_PINMUX('E', 10, AF7)>, /* UART4_CTS */
<STM32_PINMUX('E', 9, AF7)>; /* UART4_RTS */
pinmux = <STM32_PINMUX('B', 12, AF8)>; /* USART3_RX */
bias-disable;
};
};
uart7_pins_b: uart7-1 {
usart3_sleep_pins_b: usart3-sleep-1 {
pins {
pinmux = <STM32_PINMUX('B', 10, ANALOG)>, /* USART3_TX */
<STM32_PINMUX('G', 8, ANALOG)>, /* USART3_RTS */
<STM32_PINMUX('I', 10, ANALOG)>, /* USART3_CTS_NSS */
<STM32_PINMUX('B', 12, ANALOG)>; /* USART3_RX */
};
};
usart3_pins_c: usart3-2 {
pins1 {
pinmux = <STM32_PINMUX('F', 7, AF7)>; /* UART7_TX */
pinmux = <STM32_PINMUX('B', 10, AF7)>, /* USART3_TX */
<STM32_PINMUX('G', 8, AF8)>; /* USART3_RTS */
bias-disable;
drive-push-pull;
slew-rate = <0>;
};
pins2 {
pinmux = <STM32_PINMUX('F', 6, AF7)>; /* UART7_RX */
pinmux = <STM32_PINMUX('B', 12, AF8)>, /* USART3_RX */
<STM32_PINMUX('B', 13, AF7)>; /* USART3_CTS_NSS */
bias-disable;
};
};
uart8_pins_a: uart8-0 {
usart3_idle_pins_c: usart3-idle-2 {
pins1 {
pinmux = <STM32_PINMUX('E', 1, AF8)>; /* UART8_TX */
bias-disable;
drive-push-pull;
slew-rate = <0>;
pinmux = <STM32_PINMUX('B', 10, ANALOG)>, /* USART3_TX */
<STM32_PINMUX('G', 8, ANALOG)>, /* USART3_RTS */
<STM32_PINMUX('B', 13, ANALOG)>; /* USART3_CTS_NSS */
};
pins2 {
pinmux = <STM32_PINMUX('E', 0, AF8)>; /* UART8_RX */
pinmux = <STM32_PINMUX('B', 12, AF8)>; /* USART3_RX */
bias-disable;
};
};
usart3_sleep_pins_c: usart3-sleep-2 {
pins {
pinmux = <STM32_PINMUX('B', 10, ANALOG)>, /* USART3_TX */
<STM32_PINMUX('G', 8, ANALOG)>, /* USART3_RTS */
<STM32_PINMUX('B', 13, ANALOG)>, /* USART3_CTS_NSS */
<STM32_PINMUX('B', 12, ANALOG)>; /* USART3_RX */
};
};
usbotg_hs_pins_a: usbotg-hs-0 {
pins {
pinmux = <STM32_PINMUX('A', 10, ANALOG)>; /* OTG_ID */
......@@ -1776,18 +1944,4 @@ pins2 {
bias-disable;
};
};
spi4_pins_a: spi4-0 {
pins {
pinmux = <STM32_PINMUX('E', 12, AF5)>, /* SPI4_SCK */
<STM32_PINMUX('E', 6, AF5)>; /* SPI4_MOSI */
bias-disable;
drive-push-pull;
slew-rate = <1>;
};
pins2 {
pinmux = <STM32_PINMUX('E', 13, AF5)>; /* SPI4_MISO */
bias-disable;
};
};
};
......@@ -1127,7 +1127,7 @@ usb33: usb33 {
};
pwr_mcu: pwr_mcu@50001014 {
compatible = "syscon";
compatible = "st,stm32mp151-pwr-mcu", "syscon";
reg = <0x50001014 0x4>;
};
......@@ -1331,6 +1331,8 @@ qspi: spi@58003000 {
dma-names = "tx", "rx";
clocks = <&rcc QSPI_K>;
resets = <&rcc QSPI_R>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
......
......@@ -18,6 +18,8 @@ / {
aliases {
ethernet0 = &ethernet0;
serial0 = &uart4;
serial1 = &usart3;
serial2 = &uart7;
};
chosen {
......
......@@ -19,6 +19,9 @@ / {
aliases {
ethernet0 = &ethernet0;
serial0 = &uart4;
serial1 = &usart3;
serial2 = &uart7;
serial3 = &usart2;
};
chosen {
......@@ -84,3 +87,11 @@ ltdc_ep1_out: endpoint@1 {
};
};
};
&usart2 {
pinctrl-names = "default", "sleep", "idle";
pinctrl-0 = <&usart2_pins_c>;
pinctrl-1 = <&usart2_sleep_pins_c>;
pinctrl-2 = <&usart2_idle_pins_c>;
status = "disabled";
};
......@@ -353,8 +353,10 @@ timer@5 {
};
&uart4 {
pinctrl-names = "default";
pinctrl-names = "default", "sleep", "idle";
pinctrl-0 = <&uart4_pins_a>;
pinctrl-1 = <&uart4_sleep_pins_a>;
pinctrl-2 = <&uart4_idle_pins_a>;
status = "okay";
};
......
......@@ -19,6 +19,7 @@ chosen {
aliases {
serial0 = &uart4;
serial1 = &usart3;
ethernet0 = &ethernet0;
};
......@@ -341,6 +342,20 @@ timer@11 {
};
};
&usart3 {
pinctrl-names = "default", "sleep", "idle";
pinctrl-0 = <&usart3_pins_b>;
pinctrl-1 = <&usart3_sleep_pins_b>;
pinctrl-2 = <&usart3_idle_pins_b>;
/*
* HW flow control USART3_RTS is optional, and isn't default wired to
* the connector. SB23 needs to be soldered in order to use it, and R77
* (ETH_CLK) should be removed.
*/
uart-has-rtscts;
status = "disabled";
};
&usbh_ehci {
phys = <&usbphyc_port0>;
status = "okay";
......
......@@ -62,7 +62,7 @@ gpu_reserved: gpu@d4000000 {
led {
compatible = "gpio-leds";
blue {
led-blue {
label = "heartbeat";
gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
......@@ -365,6 +365,19 @@ watchdog {
};
};
&i2c5 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&i2c5_pins_a>;
pinctrl-1 = <&i2c5_sleep_pins_a>;
i2c-scl-rising-time-ns = <185>;
i2c-scl-falling-time-ns = <20>;
clock-frequency = <400000>;
/* spare dmas for other usage */
/delete-property/dmas;
/delete-property/dma-names;
status = "disabled";
};
&i2s2 {
clocks = <&rcc SPI2>, <&rcc SPI2_K>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
clock-names = "pclk", "i2sclk", "x8k", "x11k";
......@@ -584,20 +597,39 @@ timer@11 {
};
&uart4 {
pinctrl-names = "default";
pinctrl-names = "default", "sleep", "idle";
pinctrl-0 = <&uart4_pins_a>;
pinctrl-1 = <&uart4_sleep_pins_a>;
pinctrl-2 = <&uart4_idle_pins_a>;
status = "okay";
};
&uart7 {
pinctrl-names = "default", "sleep", "idle";
pinctrl-0 = <&uart7_pins_c>;
pinctrl-1 = <&uart7_sleep_pins_c>;
pinctrl-2 = <&uart7_idle_pins_c>;
status = "disabled";
};
&usart3 {
pinctrl-names = "default", "sleep", "idle";
pinctrl-0 = <&usart3_pins_c>;
pinctrl-1 = <&usart3_sleep_pins_c>;
pinctrl-2 = <&usart3_idle_pins_c>;
uart-has-rtscts;
status = "disabled";
};
&usbh_ehci {
phys = <&usbphyc_port0>;
status = "okay";
};
&usbotg_hs {
dr_mode = "peripheral";
phys = <&usbphyc_port1 0>;
phy-names = "usb2-phy";
usb-role-switch;
status = "okay";
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment