Skip to content

Commit

Permalink
Merge tag 'stm32-dt-for-v6.6-1' of git://git.kernel.org/pub/scm/linux…
Browse files Browse the repository at this point in the history
…/kernel/git/atorgue/stm32 into soc/dt

STM32 DT for v6.6, round 1

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

- MCU:
  - Add CAN support on stm32f746.
  - Add touchscreen support (edt-ft5306) on stm32f746-disco.
  - Add support to Rocktech RK043FN48H display on stm32f746-disco
    board.
  - Add gpio-ranges for stm32f7 to fix boot issue.

- MPU:
  - STM32MP13:
    - Remove shmem for scmi-optee to match with OP-TEE configuration.
    - Enable OP-TEE asynchronous notification by using PPI#15.
    - Expose and use SCMI regulators on stm32mp135f-dk.

  - STMP32MP15:
    - Remove shmem for scmi-optee to match with OPTEE configuration
    - Deduplicate DSI node to fix  #address-cells/#size-cells issue on
      boards using it.

  - ST:
    - Fix dts check warnings on stm32mp15-scmi boards.

  - DH:
    - Add missing detach mailbox for DHCOM and DHCOR SoM.

  - Odyssey:
    - Add missing detach mailbox for Odyssey SoM.

  - OCTAVO:
    - Add Linux Automation Test Automation Controller (LXA TAC) based
      on Octavo Systems OSD32MP15x SiP. It contains: eMMC,
      DSA-capable ETH switch (2 ports), dual CAN...
      It adds two boards support: lxa-tac-gen1 and lxa-tac-gen2 based
      on STM32MP157.

  - PROTONIC:
    - Add Power over Data Line (PoDL) Power Source Equipment (PSE)
      regulator nodes on PRTT1C board. It allows power delivery and
      data transmission over a single twisted pair.

* tag 'stm32-dt-for-v6.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32: (29 commits)
  ARM: dts: stm32: add SCMI PMIC regulators on stm32mp135f-dk board
  ARM: dts: stm32: STM32MP13x SoC exposes SCMI regulators
  dt-bindings: rcc: stm32: add STM32MP13 SCMI regulators IDs
  ARM: dts: stm32: support display on stm32f746-disco board
  ARM: dts: stm32: rename mmc_vcard to vcc-3v3 on stm32f746-disco
  ARM: dts: stm32: add pin map for LTDC on stm32f7
  ARM: dts: stm32: add ltdc support on stm32f746 MCU
  ARM: dts: st: Add gpio-ranges for stm32f769-pinctrl
  ARM: dts: st: Add gpio-ranges for stm32f746-pinctrl
  ARM: dts: st: stm32mp157c-emstamp: correct regulator-active-discharge
  ARM: dts: st: stm32mp157c-emstamp: drop incorrect vref_ddr property
  ARM: dts: stm32: fix dts check warnings on stm32mp15-scmi
  ARM: dts: stm32: Add missing detach mailbox for DHCOR SoM
  ARM: dts: stm32: Add missing detach mailbox for DHCOM SoM
  ARM: dts: stm32: Add missing detach mailbox for Odyssey SoM
  ARM: dts: stm32: Add missing detach mailbox for emtrion emSBC-Argon
  ARM: dts: stm32: prtt1c: Add PoDL PSE regulator nodes
  ARM: dts: stm32: add touchscreen on stm32f746-disco board
  ARM: dts: stm32: add pin map for i2c3 controller on stm32f7
  ARM: dts: stm32: re-add CAN support on stm32f746
  ...

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Arnd Bergmann <[email protected]>
  • Loading branch information
arndb committed Aug 22, 2023
2 parents 1298d0d + 4c757f6 commit aa2951a
Show file tree
Hide file tree
Showing 27 changed files with 1,459 additions and 191 deletions.
4 changes: 3 additions & 1 deletion Documentation/devicetree/bindings/arm/stm32/stm32.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,9 @@ properties:
- description: Octavo OSD32MP15x System-in-Package based boards
items:
- enum:
- lxa,stm32mp157c-mc1 # Linux Automation MC-1
- lxa,stm32mp157c-mc1 # Linux Automation MC-1
- lxa,stm32mp157c-tac-gen1 # Linux Automation TAC (Generation 1)
- lxa,stm32mp157c-tac-gen2 # Linux Automation TAC (Generation 2)
- const: oct,stm32mp15xx-osd32
- enum:
- st,stm32mp157
Expand Down
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/net/can/bosch,m_can.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ required:
- clock-names
- bosch,mram-cfg

additionalProperties: false
unevaluatedProperties: false

examples:
- |
Expand Down
3 changes: 3 additions & 0 deletions Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ properties:
Set if the output SYNCLKO clock should be disabled. Do not mix with
microchip,synclko-125.

interrupts:
maxItems: 1

required:
- compatible
- reg
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/boot/dts/st/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ dtb-$(CONFIG_ARCH_STM32) += \
stm32mp157c-ev1.dtb \
stm32mp157c-ev1-scmi.dtb \
stm32mp157c-lxa-mc1.dtb \
stm32mp157c-lxa-tac-gen1.dtb \
stm32mp157c-lxa-tac-gen2.dtb \
stm32mp157c-odyssey.dtb \
stm32mp157c-phycore-stm32mp1-3.dtb
dtb-$(CONFIG_ARCH_U8500) += \
Expand Down
45 changes: 45 additions & 0 deletions arch/arm/boot/dts/st/stm32f7-pinctrl.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,16 @@
};
};

i2c3_pins_a: i2c3-0 {
pins {
pinmux = <STM32_PINMUX('H', 8, AF4)>, /* I2C3_SDA */
<STM32_PINMUX('H', 7, AF4)>; /* I2C3_SCL */
bias-disable;
drive-open-drain;
slew-rate = <0>;
};
};

usbotg_hs_pins_a: usbotg-hs-0 {
pins {
pinmux = <STM32_PINMUX('H', 4, AF10)>, /* OTG_HS_ULPI_NXT */
Expand Down Expand Up @@ -365,6 +375,41 @@
bias-pull-up;
};
};


ltdc_pins_a: ltdc-0 {
pins {
pinmux = <STM32_PINMUX('E', 4, AF14)>, /* LCD_B0 */
<STM32_PINMUX('G',12, AF9)>, /* LCD_B4 */
<STM32_PINMUX('I', 9, AF14)>, /* LCD_VSYNC */
<STM32_PINMUX('I',10, AF14)>, /* LCD_HSYNC */
<STM32_PINMUX('I',14, AF14)>, /* LCD_CLK */
<STM32_PINMUX('I',15, AF14)>, /* LCD_R0 */
<STM32_PINMUX('J', 0, AF14)>, /* LCD_R1 */
<STM32_PINMUX('J', 1, AF14)>, /* LCD_R2 */
<STM32_PINMUX('J', 2, AF14)>, /* LCD_R3 */
<STM32_PINMUX('J', 3, AF14)>, /* LCD_R4 */
<STM32_PINMUX('J', 4, AF14)>, /* LCD_R5 */
<STM32_PINMUX('J', 5, AF14)>, /* LCD_R6 */
<STM32_PINMUX('J', 6, AF14)>, /* LCD_R7 */
<STM32_PINMUX('J', 7, AF14)>, /* LCD_G0 */
<STM32_PINMUX('J', 8, AF14)>, /* LCD_G1 */
<STM32_PINMUX('J', 9, AF14)>, /* LCD_G2 */
<STM32_PINMUX('J',10, AF14)>, /* LCD_G3 */
<STM32_PINMUX('J',11, AF14)>, /* LCD_G4 */
<STM32_PINMUX('J',13, AF14)>, /* LCD_B1 */
<STM32_PINMUX('J',14, AF14)>, /* LCD_B2 */
<STM32_PINMUX('J',15, AF14)>, /* LCD_B3 */
<STM32_PINMUX('K', 0, AF14)>, /* LCD_G5 */
<STM32_PINMUX('K', 1, AF14)>, /* LCD_G6 */
<STM32_PINMUX('K', 2, AF14)>, /* LCD_G7 */
<STM32_PINMUX('K', 4, AF14)>, /* LCD_B5 */
<STM32_PINMUX('K', 5, AF14)>, /* LCD_B6 */
<STM32_PINMUX('K', 6, AF14)>, /* LCD_B7 */
<STM32_PINMUX('K', 7, AF14)>; /* LCD_DE */
slew-rate = <2>;
};
};
};
};
};
69 changes: 65 additions & 4 deletions arch/arm/boot/dts/st/stm32f746-disco.dts
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,9 @@
/dts-v1/;
#include "stm32f746.dtsi"
#include "stm32f746-pinctrl.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
model = "STMicroelectronics STM32F746-DISCO board";
Expand All @@ -60,6 +61,19 @@
reg = <0xC0000000 0x800000>;
};

reserved-memory {
#address-cells = <1>;
#size-cells = <1>;
ranges;

linux,cma {
compatible = "shared-dma-pool";
no-map;
size = <0x80000>;
linux,dma-default;
};
};

aliases {
serial0 = &usart1;
};
Expand All @@ -79,12 +93,31 @@
regulator-always-on;
};

mmc_vcard: mmc_vcard {
vcc_3v3: vcc-3v3 {
compatible = "regulator-fixed";
regulator-name = "mmc_vcard";
regulator-name = "vcc_3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};

backlight: backlight {
compatible = "gpio-backlight";
gpios = <&gpiok 3 GPIO_ACTIVE_HIGH>;
status = "okay";
};

panel_rgb: panel-rgb {
compatible = "rocktech,rk043fn48h";
power-supply = <&vcc_3v3>;
backlight = <&backlight>;
enable-gpios = <&gpioi 12 GPIO_ACTIVE_HIGH>;
status = "okay";
port {
panel_in_rgb: endpoint {
remote-endpoint = <&ltdc_out_rgb>;
};
};
};
};

&clk_hse {
Expand All @@ -99,9 +132,37 @@
status = "okay";
};

&i2c3 {
pinctrl-0 = <&i2c3_pins_a>;
pinctrl-names = "default";
clock-frequency = <400000>;
status = "okay";

touchscreen@38 {
compatible = "edt,edt-ft5306";
reg = <0x38>;
interrupt-parent = <&gpioi>;
interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
touchscreen-size-x = <480>;
touchscreen-size-y = <272>;
};
};

&ltdc {
pinctrl-0 = <&ltdc_pins_a>;
pinctrl-names = "default";
status = "okay";

port {
ltdc_out_rgb: endpoint {
remote-endpoint = <&panel_in_rgb>;
};
};
};

&sdio1 {
status = "okay";
vmmc-supply = <&mmc_vcard>;
vmmc-supply = <&vcc_3v3>;
cd-gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
pinctrl-names = "default", "opendrain";
pinctrl-0 = <&sdio_pins_a>;
Expand Down
44 changes: 44 additions & 0 deletions arch/arm/boot/dts/st/stm32f746-pinctrl.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,48 @@

&pinctrl {
compatible = "st,stm32f746-pinctrl";

gpioa: gpio@40020000 {
gpio-ranges = <&pinctrl 0 0 16>;
};

gpiob: gpio@40020400 {
gpio-ranges = <&pinctrl 0 16 16>;
};

gpioc: gpio@40020800 {
gpio-ranges = <&pinctrl 0 32 16>;
};

gpiod: gpio@40020c00 {
gpio-ranges = <&pinctrl 0 48 16>;
};

gpioe: gpio@40021000 {
gpio-ranges = <&pinctrl 0 64 16>;
};

gpiof: gpio@40021400 {
gpio-ranges = <&pinctrl 0 80 16>;
};

gpiog: gpio@40021800 {
gpio-ranges = <&pinctrl 0 96 16>;
};

gpioh: gpio@40021c00 {
gpio-ranges = <&pinctrl 0 112 16>;
};

gpioi: gpio@40022000 {
gpio-ranges = <&pinctrl 0 128 16>;
};

gpioj: gpio@40022400 {
gpio-ranges = <&pinctrl 0 144 16>;
};

gpiok: gpio@40022800 {
gpio-ranges = <&pinctrl 0 160 8>;
};
};
57 changes: 57 additions & 0 deletions arch/arm/boot/dts/st/stm32f746.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,23 @@
status = "disabled";
};

can3: can@40003400 {
compatible = "st,stm32f4-bxcan";
reg = <0x40003400 0x200>;
interrupts = <104>, <105>, <106>, <107>;
interrupt-names = "tx", "rx0", "rx1", "sce";
resets = <&rcc STM32F7_APB1_RESET(CAN3)>;
clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
st,gcan = <&gcan3>;
status = "disabled";
};

gcan3: gcan@40003600 {
compatible = "st,stm32f4-gcan", "syscon";
reg = <0x40003600 0x200>;
clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
};

usart2: serial@40004400 {
compatible = "st,stm32f7-uart";
reg = <0x40004400 0x400>;
Expand Down Expand Up @@ -337,6 +354,36 @@
status = "disabled";
};

can1: can@40006400 {
compatible = "st,stm32f4-bxcan";
reg = <0x40006400 0x200>;
interrupts = <19>, <20>, <21>, <22>;
interrupt-names = "tx", "rx0", "rx1", "sce";
resets = <&rcc STM32F7_APB1_RESET(CAN1)>;
clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN1)>;
st,can-primary;
st,gcan = <&gcan1>;
status = "disabled";
};

gcan1: gcan@40006600 {
compatible = "st,stm32f4-gcan", "syscon";
reg = <0x40006600 0x200>;
clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN1)>;
};

can2: can@40006800 {
compatible = "st,stm32f4-bxcan";
reg = <0x40006800 0x200>;
interrupts = <63>, <64>, <65>, <66>;
interrupt-names = "tx", "rx0", "rx1", "sce";
resets = <&rcc STM32F7_APB1_RESET(CAN2)>;
clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN2)>;
st,can-secondary;
st,gcan = <&gcan1>;
status = "disabled";
};

cec: cec@40006c00 {
compatible = "st,stm32-cec";
reg = <0x40006C00 0x400>;
Expand Down Expand Up @@ -507,6 +554,16 @@
};
};

ltdc: display-controller@40016800 {
compatible = "st,stm32-ltdc";
reg = <0x40016800 0x200>;
interrupts = <88>, <89>;
resets = <&rcc STM32F7_APB2_RESET(LTDC)>;
clocks = <&rcc 1 CLK_LCD>;
clock-names = "lcd";
status = "disabled";
};

pwrcfg: power-config@40007000 {
compatible = "st,stm32-power-config", "syscon";
reg = <0x40007000 0x400>;
Expand Down
44 changes: 44 additions & 0 deletions arch/arm/boot/dts/st/stm32f769-pinctrl.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,48 @@

&pinctrl {
compatible = "st,stm32f769-pinctrl";

gpioa: gpio@40020000 {
gpio-ranges = <&pinctrl 0 0 16>;
};

gpiob: gpio@40020400 {
gpio-ranges = <&pinctrl 0 16 16>;
};

gpioc: gpio@40020800 {
gpio-ranges = <&pinctrl 0 32 16>;
};

gpiod: gpio@40020c00 {
gpio-ranges = <&pinctrl 0 48 16>;
};

gpioe: gpio@40021000 {
gpio-ranges = <&pinctrl 0 64 16>;
};

gpiof: gpio@40021400 {
gpio-ranges = <&pinctrl 0 80 16>;
};

gpiog: gpio@40021800 {
gpio-ranges = <&pinctrl 0 96 16>;
};

gpioh: gpio@40021c00 {
gpio-ranges = <&pinctrl 0 112 16>;
};

gpioi: gpio@40022000 {
gpio-ranges = <&pinctrl 0 128 16>;
};

gpioj: gpio@40022400 {
gpio-ranges = <&pinctrl 0 144 16>;
};

gpiok: gpio@40022800 {
gpio-ranges = <&pinctrl 0 160 8>;
};
};
Loading

0 comments on commit aa2951a

Please sign in to comment.