Re: [PATCH v3 1/3] clk: imx8mm: Add support for PCIe clocks

2024-04-21 Thread Sumit Garg
Hi Tim,

On Fri, 19 Apr 2024 at 08:29, Tim Harvey  wrote:
>
> Add support for PCIe clocks required to enable PCIe support on
> iMX8MM SoC.
>
> Signed-off-by: Tim Harvey 
> ---
> v3: wrap pcie clk config around IS_ENABLED to avoid SPL growth as
> suggested by Marek
> ---
>  drivers/clk/imx/clk-imx8mm.c | 27 +++
>  1 file changed, 27 insertions(+)
>

Although I was at EOSS last week, it is really nice to see more iMX
SoCs adopting the modern PCIe DW iMX driver.

-Sumit

> diff --git a/drivers/clk/imx/clk-imx8mm.c b/drivers/clk/imx/clk-imx8mm.c
> index b5c253e49663..1a00dd1d287b 100644
> --- a/drivers/clk/imx/clk-imx8mm.c
> +++ b/drivers/clk/imx/clk-imx8mm.c
> @@ -66,6 +66,17 @@ static const char *imx8mm_i2c3_sels[] = {"clock-osc-24m", 
> "sys_pll1_160m", "sys_
>  static const char *imx8mm_i2c4_sels[] = {"clock-osc-24m", "sys_pll1_160m", 
> "sys_pll2_50m", "sys_pll3_out", "audio_pll1_out",
>  "video_pll1_out", "audio_pll2_out", 
> "sys_pll1_133m", };
>
> +#if CONFIG_IS_ENABLED(PCIE_DW_IMX)
> +static const char *imx8mm_pcie1_ctrl_sels[] = {"clock-osc-24m", 
> "sys_pll2_250m", "sys_pll2_200m", "sys_pll1_266m",
> +  "sys_pll1_800m", 
> "sys_pll2_500m", "sys_pll2_333m", "sys_pll3_out", };
> +
> +static const char *imx8mm_pcie1_phy_sels[] = {"clock-osc-24m", 
> "sys_pll2_100m", "sys_pll2_500m", "clk_ext1", "clk_ext2",
> + "clk_ext3", "clk_ext4", 
> "sys_pll1_400m", };
> +
> +static const char *imx8mm_pcie1_aux_sels[] = {"clock-osc-24m", 
> "sys_pll2_200m", "sys_pll2_50m", "sys_pll3_out",
> + "sys_pll2_100m", 
> "sys_pll1_80m", "sys_pll1_160m", "sys_pll1_200m", };
> +#endif
> +
>  #ifndef CONFIG_SPL_BUILD
>  static const char *imx8mm_pwm1_sels[] = {"clock-osc-24m", "sys_pll2_100m", 
> "sys_pll1_160m", "sys_pll1_40m",
>  "sys_pll3_out", "clk_ext1", 
> "sys_pll1_80m", "video_pll1_out", };
> @@ -256,6 +267,17 @@ static int imx8mm_clk_probe(struct udevice *dev)
> imx8m_clk_composite("usb_bus", imx8mm_usb_bus_sels, base + 
> 0x8b80));
>
> /* IP */
> +#if CONFIG_IS_ENABLED(PCIE_DW_IMX)
> +   clk_dm(IMX8MM_CLK_PCIE1_CTRL,
> +  imx8m_clk_composite("pcie1_ctrl", imx8mm_pcie1_ctrl_sels,
> +  base + 0xa300));
> +   clk_dm(IMX8MM_CLK_PCIE1_PHY,
> +  imx8m_clk_composite("pcie1_phy", imx8mm_pcie1_phy_sels,
> +  base + 0xa380));
> +   clk_dm(IMX8MM_CLK_PCIE1_AUX,
> +  imx8m_clk_composite("pcie1_aux", imx8mm_pcie1_aux_sels,
> +  base + 0xa400));
> +#endif
> clk_dm(IMX8MM_CLK_USDHC1,
>imx8m_clk_composite("usdhc1", imx8mm_usdhc1_sels,
>base + 0xac00));
> @@ -339,6 +361,11 @@ static int imx8mm_clk_probe(struct udevice *dev)
>imx_clk_gate4("pwm4_root_clk", "pwm4", base + 0x42b0, 0));
>  #endif
>
> +#if CONFIG_IS_ENABLED(PCIE_DW_IMX)
> +   clk_dm(IMX8MM_CLK_PCIE1_ROOT,
> +  imx_clk_gate4("pcie1_root_clk", "pcie1_ctrl", base + 0x4250, 
> 0));
> +#endif
> +
>  #if CONFIG_IS_ENABLED(DM_SPI)
> clk_dm(IMX8MM_CLK_ECSPI1,
>imx8m_clk_composite("ecspi1", imx8mm_ecspi1_sels, base + 
> 0xb280));
> --
> 2.25.1
>


[PATCH 19/19] ARM: dts: stm32: Add support for STM32MP13xx DHCOR SoM and DHSBC board

2024-04-21 Thread Marek Vasut
This stm32mp135f-dhcor-dhsbc board is a stack of DHCOR SoM based on
STM32MP135F SoC (900MHz / crypto capabilities) populated on DHSBC
carrier board.

The SoM contains the following peripherals:
- STPMIC (power delivery)
- 512MB DDR3L memory
- eMMC and SDIO WiFi module

The DHSBC carrier board contains the following peripherals:
- Two RGMII Ethernet ports
- USB-A Host port, USB-C peripheral port, USB-C power supply plug
- Expansion connector

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/Makefile |   1 +
 .../dts/stm32mp135f-dhcor-dhsbc-u-boot.dtsi   |  25 ++
 arch/arm/dts/stm32mp135f-dhcor-dhsbc.dts  | 383 ++
 arch/arm/dts/stm32mp13xx-dhcor-som.dtsi   | 308 ++
 arch/arm/dts/stm32mp13xx-dhcor-u-boot.dtsi|  55 +++
 configs/stm32mp13_dhcor_defconfig | 148 +++
 6 files changed, 920 insertions(+)
 create mode 100644 arch/arm/dts/stm32mp135f-dhcor-dhsbc-u-boot.dtsi
 create mode 100644 arch/arm/dts/stm32mp135f-dhcor-dhsbc.dts
 create mode 100644 arch/arm/dts/stm32mp13xx-dhcor-som.dtsi
 create mode 100644 arch/arm/dts/stm32mp13xx-dhcor-u-boot.dtsi
 create mode 100644 configs/stm32mp13_dhcor_defconfig

diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index b1c9c6222e5..ca1e3bf3fc8 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -1290,6 +1290,7 @@ dtb-$(CONFIG_ASPEED_AST2600) += \
 dtb-$(CONFIG_ARCH_STI) += stih410-b2260.dtb
 
 dtb-$(CONFIG_STM32MP13X) += \
+   stm32mp135f-dhcor-dhsbc.dtb \
stm32mp135f-dk.dtb
 
 dtb-$(CONFIG_STM32MP15X) += \
diff --git a/arch/arm/dts/stm32mp135f-dhcor-dhsbc-u-boot.dtsi 
b/arch/arm/dts/stm32mp135f-dhcor-dhsbc-u-boot.dtsi
new file mode 100644
index 000..d718aae16ca
--- /dev/null
+++ b/arch/arm/dts/stm32mp135f-dhcor-dhsbc-u-boot.dtsi
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2024 Marek Vasut 
+ */
+
+#include "stm32mp13xx-dhcor-u-boot.dtsi"
+
+ {
+   bootph-all;
+};
+
+_pins_b {
+   bootph-all;
+
+   pins1 {
+   bootph-all;
+   };
+   pins2 {
+   bootph-all;
+   };
+};
+
+ {
+   bootph-all;
+};
diff --git a/arch/arm/dts/stm32mp135f-dhcor-dhsbc.dts 
b/arch/arm/dts/stm32mp135f-dhcor-dhsbc.dts
new file mode 100644
index 000..fc1c48ad56d
--- /dev/null
+++ b/arch/arm/dts/stm32mp135f-dhcor-dhsbc.dts
@@ -0,0 +1,383 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2024 Marek Vasut 
+ *
+ * DHCOR STM32MP13 variant:
+ * DHCR-STM32MP135F-C100-R051-EE-F0409-SPI4-RTC-WBT-I-01LG
+ * DHCOR PCB number: 718-100 or newer
+ * DHSBC PCB number: 719-100 or newer
+ */
+
+/dts-v1/;
+
+#include 
+#include "stm32mp135.dtsi"
+#include "stm32mp13xf.dtsi"
+#include "stm32mp13xx-dhcor-som.dtsi"
+
+/ {
+   model = "DH electronics STM32MP135F DHCOR DHSBC";
+   compatible = "dh,stm32mp135f-dhcor-dhsbc",
+"dh,stm32mp135f-dhcor-som",
+"st,stm32mp135";
+
+   aliases {
+   ethernet0 = 
+   ethernet1 = 
+   serial2 = 
+   serial3 = 
+   };
+
+   chosen {
+   stdout-path = "serial0:115200n8";
+   };
+};
+
+_1 {
+   pinctrl-names = "default";
+   pinctrl-0 = <_pins_a _usb_cc_pins_b>;
+   vdda-supply = <_adc>;
+   vref-supply = <_adc>;
+   status = "okay";
+
+   adc1: adc@0 {
+   status = "okay";
+
+   /*
+* Type-C USB_PWR_CC1 & USB_PWR_CC2 on in2 & in11.
+* Use at least 5 * RC time, e.g. 5 * (Rp + Rd) * C:
+* 5 * (5.1 + 47kOhms) * 5pF => 1.3us.
+* Use arbitrary margin here (e.g. 5us).
+*
+* The pinmux pins must be set as ANALOG, use datasheet
+* DS13483 Table 7. STM32MP135C/F ball definitions to
+* find out which 'pin name' maps to which 'additional
+* functions', which lists the mapping between pin and
+* ADC channel. In this case, PA5 maps to ADC1_INP2 and
+* PF13 maps to ADC1_INP11 .
+*/
+   channel@2 {
+   reg = <2>;
+   st,min-sample-time-ns = <5000>;
+   };
+
+   channel@11 {
+   reg = <11>;
+   st,min-sample-time-ns = <5000>;
+   };
+
+   /* Expansion connector: INP12:pin29 */
+   channel@12 {
+   reg = <12>;
+   st,min-sample-time-ns = <5000>;
+   };
+   };
+};
+
+ {
+   status = "okay";
+   pinctrl-0 = <_rgmii_pins_a>;
+   pinctrl-1 = <_rgmii_sleep_pins_a>;
+   pinctrl-names = "default", "sleep";
+   phy-mode = "rgmii-id";
+   phy-handle = 

[PATCH 18/19] ARM: dts: stm32: Add alternate pinmux for MP13 UART7 pins

2024-04-21 Thread Marek Vasut
Add another mux option for UART7 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 41 +
 1 file changed, 41 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index 7014c7a6d23..c01d39f03ea 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -647,6 +647,47 @@
};
};
 
+   uart7_pins_a: uart7-0 {
+   pins1 {
+   pinmux = , /* UART7_TX */
+; /* UART7_RTS */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <0>;
+   };
+   pins2 {
+   pinmux = , /* UART7_RX */
+; /* UART7_CTS_NSS 
*/
+   bias-disable;
+   };
+   };
+
+   uart7_idle_pins_a: uart7-idle-0 {
+   pins1 {
+   pinmux = , /* UART7_TX */
+; /* 
UART7_CTS_NSS */
+   };
+   pins2 {
+   pinmux = ; /* UART7_RTS */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <0>;
+   };
+   pins3 {
+   pinmux = ; /* UART7_RX */
+   bias-disable;
+   };
+   };
+
+   uart7_sleep_pins_a: uart7-sleep-0 {
+   pins {
+   pinmux = , /* UART7_TX */
+, /* UART7_RTS 
*/
+, /* UART7_RX */
+; /* 
UART7_CTS_NSS */
+   };
+   };
+
uart8_pins_a: uart8-0 {
pins1 {
pinmux = ; /* UART8_TX */
-- 
2.43.0



[PATCH 17/19] ARM: dts: stm32: Add alternate pinmux for MP13 UART4 pins

2024-04-21 Thread Marek Vasut
Add another mux option for UART4 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 30 +
 1 file changed, 30 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index 65f91265a4d..7014c7a6d23 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -617,6 +617,36 @@
};
};
 
+   uart4_pins_b: uart4-1 {
+   pins1 {
+   pinmux = ; /* UART4_TX */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <0>;
+   };
+   pins2 {
+   pinmux = ; /* UART4_RX */
+   bias-pull-up;
+   };
+   };
+
+   uart4_idle_pins_b: uart4-idle-1 {
+   pins1 {
+   pinmux = ; /* UART4_TX */
+   };
+   pins2 {
+   pinmux = ; /* UART4_RX */
+   bias-pull-up;
+   };
+   };
+
+   uart4_sleep_pins_b: uart4-sleep-1 {
+   pins {
+   pinmux = , /* UART4_TX */
+; /* UART4_RX */
+   };
+   };
+
uart8_pins_a: uart8-0 {
pins1 {
pinmux = ; /* UART8_TX */
-- 
2.43.0



[PATCH 16/19] ARM: dts: stm32: Add alternate pinmux for MP13 USART2 pins

2024-04-21 Thread Marek Vasut
Add another mux option for USART2 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 41 +
 1 file changed, 41 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index dae015a0ddf..65f91265a4d 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -758,4 +758,45 @@
 ; /* 
USART2_CTS_NSS */
};
};
+
+   usart2_pins_b: usart2-0 {
+   pins1 {
+   pinmux = , /* USART2_TX */
+; /* USART2_RTS */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <0>;
+   };
+   pins2 {
+   pinmux = , /* USART2_RX */
+; /* 
USART2_CTS_NSS */
+   bias-disable;
+   };
+   };
+
+   usart2_idle_pins_b: usart2-idle-0 {
+   pins1 {
+   pinmux = , /* USART2_TX 
*/
+; /* 
USART2_CTS_NSS */
+   };
+   pins2 {
+   pinmux = ; /* USART2_RTS */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <0>;
+   };
+   pins3 {
+   pinmux = ; /* USART2_RX */
+   bias-disable;
+   };
+   };
+
+   usart2_sleep_pins_b: usart2-sleep-0 {
+   pins {
+   pinmux = , /* USART2_TX 
*/
+, /* USART2_RTS 
*/
+, /* USART2_RX 
*/
+; /* 
USART2_CTS_NSS */
+   };
+   };
 };
-- 
2.43.0



[PATCH 15/19] ARM: dts: stm32: Add alternate pinmux for MP13 USART1 pins

2024-04-21 Thread Marek Vasut
Add another mux option for USART1 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 30 +
 1 file changed, 30 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index 7abd227e69f..dae015a0ddf 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -688,6 +688,36 @@
};
};
 
+   usart1_pins_b: usart1-1 {
+   pins1 {
+   pinmux = ; /* USART1_TX */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <0>;
+   };
+   pins2 {
+   pinmux = ; /* USART1_RX */
+   bias-pull-up;
+   };
+   };
+
+   usart1_idle_pins_b: usart1-idle-1 {
+   pins1 {
+   pinmux = ; /* USART1_TX */
+   };
+   pins2 {
+   pinmux = ; /* USART1_RX */
+   bias-pull-up;
+   };
+   };
+
+   usart1_sleep_pins_b: usart1-sleep-1 {
+   pins {
+   pinmux = , /* USART1_TX */
+; /* USART1_RX 
*/
+   };
+   };
+
usart2_pins_a: usart2-0 {
pins1 {
pinmux = , /* USART2_TX */
-- 
2.43.0



[PATCH 14/19] ARM: dts: stm32: Add alternate pinmux for MP13 SPI3 pins

2024-04-21 Thread Marek Vasut
Add another mux option for SPI3 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index 17acd2850d3..7abd227e69f 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -534,6 +534,29 @@
};
};
 
+   spi3_pins_a: spi3-0 {
+   pins1 {
+   pinmux = , /* SPI3_SCK */
+; /* SPI3_MOSI */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <1>;
+   };
+
+   pins2 {
+   pinmux = ; /* SPI3_MISO */
+   bias-disable;
+   };
+   };
+
+   spi3_sleep_pins_a: spi3-sleep-0 {
+   pins {
+   pinmux = , /* SPI3_SCK */
+, /* SPI3_MISO */
+; /* SPI3_MOSI */
+   };
+   };
+
spi5_pins_a: spi5-0 {
pins1 {
pinmux = , /* SPI5_SCK */
-- 
2.43.0



[PATCH 13/19] ARM: dts: stm32: Add alternate pinmux for MP13 SPI2 pins

2024-04-21 Thread Marek Vasut
Add another mux option for SPI2 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index c6967e82b5d..17acd2850d3 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -511,6 +511,29 @@
};
};
 
+   spi2_pins_a: spi2-0 {
+   pins1 {
+   pinmux = , /* SPI2_SCK */
+; /* SPI2_MOSI */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <1>;
+   };
+
+   pins2 {
+   pinmux = ; /* SPI2_MISO */
+   bias-disable;
+   };
+   };
+
+   spi2_sleep_pins_a: spi2-sleep-0 {
+   pins {
+   pinmux = , /* SPI2_SCK */
+, /* SPI2_MISO */
+; /* SPI2_MOSI 
*/
+   };
+   };
+
spi5_pins_a: spi5-0 {
pins1 {
pinmux = , /* SPI5_SCK */
-- 
2.43.0



[PATCH 12/19] ARM: dts: stm32: Add alternate pinmux for MP13 SDMMC2 D4..D7 pins

2024-04-21 Thread Marek Vasut
Add another mux option for SDMMC2 D4..D7 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 21 +
 1 file changed, 21 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index f2b41104a58..c6967e82b5d 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -490,6 +490,27 @@
};
};
 
+   sdmmc2_d47_pins_a: sdmmc2-d47-0 {
+   pins {
+   pinmux = , /* SDMMC2_D4 */
+, /* SDMMC2_D5 */
+, /* SDMMC2_D6 */
+; /* SDMMC2_D7 */
+   slew-rate = <1>;
+   drive-push-pull;
+   bias-pull-up;
+   };
+   };
+
+   sdmmc2_d47_sleep_pins_a: sdmmc2-d47-sleep-0 {
+   pins {
+   pinmux = , /* SDMMC2_D4 */
+, /* SDMMC2_D5 */
+, /* SDMMC2_D6 */
+; /* SDMMC2_D7 */
+   };
+   };
+
spi5_pins_a: spi5-0 {
pins1 {
pinmux = , /* SPI5_SCK */
-- 
2.43.0



[PATCH 11/19] ARM: dts: stm32: Add alternate pinmux for MP13 SAI1 pins

2024-04-21 Thread Marek Vasut
Add another mux option for SAI1 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 32 +
 1 file changed, 32 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index 77a222903de..f2b41104a58 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -356,6 +356,38 @@
};
};
 
+   sai1a_pins_a: sai1a-0 {
+   pins {
+   pinmux = , /* SAI1_SCK_A */
+, /* SAI1_SD_A */
+; /* SAI1_FS_A */
+   slew-rate = <0>;
+   drive-push-pull;
+   bias-disable;
+   };
+   };
+
+   sai1a_sleep_pins_a: sai1a-sleep-0 {
+   pins {
+   pinmux = , /* SAI1_SCK_A 
*/
+, /* SAI1_SD_A */
+; /* SAI1_FS_A 
*/
+   };
+   };
+
+   sai1b_pins_a: sai1b-0 {
+   pins {
+   pinmux = ; /* SAI1_SD_B */
+   bias-disable;
+   };
+   };
+
+   sai1b_sleep_pins_a: sai1b-sleep-0 {
+   pins {
+   pinmux = ; /* SAI1_SD_B */
+   };
+   };
+
sdmmc1_b4_pins_a: sdmmc1-b4-0 {
pins {
pinmux = , /* SDMMC1_D0 */
-- 
2.43.0



[PATCH 10/19] ARM: dts: stm32: Add alternate pinmux for MP13 QSPI pins

2024-04-21 Thread Marek Vasut
Add another mux option for QSPI pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 51 +
 1 file changed, 51 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index cf070fbd7f7..77a222903de 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -305,6 +305,57 @@
};
};
 
+   qspi_clk_pins_a: qspi-clk-0 {
+   pins {
+   pinmux = ; /* QSPI_CLK */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <3>;
+   };
+   };
+
+   qspi_clk_sleep_pins_a: qspi-clk-sleep-0 {
+   pins {
+   pinmux = ; /* QSPI_CLK */
+   };
+   };
+
+   qspi_bk1_pins_a: qspi-bk1-0 {
+   pins {
+   pinmux = , /* QSPI_BK1_IO0 
*/
+, /* QSPI_BK1_IO1 
*/
+, /* QSPI_BK1_IO2 
*/
+; /* QSPI_BK1_IO3 
*/
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <1>;
+   };
+   };
+
+   qspi_bk1_sleep_pins_a: qspi-bk1-sleep-0 {
+   pins {
+   pinmux = , /* 
QSPI_BK1_IO0 */
+, /* 
QSPI_BK1_IO1 */
+, /* 
QSPI_BK1_IO2 */
+; /* 
QSPI_BK1_IO3 */
+   };
+   };
+
+   qspi_cs1_pins_a: qspi-cs1-0 {
+   pins {
+   pinmux = ; /* QSPI_BK1_NCS */
+   bias-pull-up;
+   drive-push-pull;
+   slew-rate = <1>;
+   };
+   };
+
+   qspi_cs1_sleep_pins_a: qspi-cs1-sleep-0 {
+   pins {
+   pinmux = ; /* 
QSPI_BK1_NCS */
+   };
+   };
+
sdmmc1_b4_pins_a: sdmmc1-b4-0 {
pins {
pinmux = , /* SDMMC1_D0 */
-- 
2.43.0



[PATCH 09/19] ARM: dts: stm32: Add alternate pinmux for MP13 PWM13 pins

2024-04-21 Thread Marek Vasut
Add another mux option for PWM13 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index d19408f19f9..cf070fbd7f7 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -275,6 +275,21 @@
};
};
 
+   pwm13_pins_a: pwm13-0 {
+   pins {
+   pinmux = ; /* TIM13_CH1 */
+   bias-pull-down;
+   drive-push-pull;
+   slew-rate = <0>;
+   };
+   };
+
+   pwm13_sleep_pins_a: pwm13-sleep-0 {
+   pins {
+   pinmux = ; /* TIM13_CH1 */
+   };
+   };
+
pwm14_pins_a: pwm14-0 {
pins {
pinmux = ; /* TIM14_CH1 */
-- 
2.43.0



[PATCH 08/19] ARM: dts: stm32: Add alternate pinmux for MP13 PWM5 pins

2024-04-21 Thread Marek Vasut
Add another mux option for PWM5 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index b58bf6c0024..d19408f19f9 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -245,6 +245,21 @@
};
};
 
+   pwm5_pins_a: pwm5-0 {
+   pins {
+   pinmux = ; /* TIM5_CH3 */
+   bias-pull-down;
+   drive-push-pull;
+   slew-rate = <0>;
+   };
+   };
+
+   pwm5_sleep_pins_a: pwm5-sleep-0 {
+   pins {
+   pinmux = ; /* TIM5_CH3 */
+   };
+   };
+
pwm8_pins_a: pwm8-0 {
pins {
pinmux = ; /* TIM8_CH3 */
-- 
2.43.0



[PATCH 07/19] ARM: dts: stm32: Add alternate pinmux for MP13 MCAN2 pins

2024-04-21 Thread Marek Vasut
Add another mux option for MCAN2 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 20 
 1 file changed, 20 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index b38174504ff..b58bf6c0024 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -188,6 +188,26 @@
};
};
 
+   m_can2_pins_a: m-can2-0 {
+   pins1 {
+   pinmux = ; /* CAN2_TX */
+   slew-rate = <1>;
+   drive-push-pull;
+   bias-disable;
+   };
+   pins2 {
+   pinmux = ; /* CAN2_RX */
+   bias-disable;
+   };
+   };
+
+   m_can2_sleep_pins_a: m_can2-sleep-0 {
+   pins {
+   pinmux = , /* CAN2_TX */
+; /* CAN2_RX */
+   };
+   };
+
mcp23017_pins_a: mcp23017-0 {
pins {
pinmux = ;
-- 
2.43.0



[PATCH 06/19] ARM: dts: stm32: Add alternate pinmux for MP13 MCAN1 pins

2024-04-21 Thread Marek Vasut
Add another mux option for MCAN1 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 20 
 1 file changed, 20 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index cfbae71efc7..b38174504ff 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -168,6 +168,26 @@
};
};
 
+   m_can1_pins_a: m-can1-0 {
+   pins1 {
+   pinmux = ; /* CAN1_TX */
+   slew-rate = <1>;
+   drive-push-pull;
+   bias-disable;
+   };
+   pins2 {
+   pinmux = ; /* CAN1_RX */
+   bias-disable;
+   };
+   };
+
+   m_can1_sleep_pins_a: m_can1-sleep-0 {
+   pins {
+   pinmux = , /* CAN1_TX */
+; /* CAN1_RX */
+   };
+   };
+
mcp23017_pins_a: mcp23017-0 {
pins {
pinmux = ;
-- 
2.43.0



[PATCH 05/19] ARM: dts: stm32: Add alternate pinmux for MP13 I2C5 pins

2024-04-21 Thread Marek Vasut
Add another mux option for I2C5 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 17 +
 1 file changed, 17 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index 899f0f98e1a..cfbae71efc7 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -151,6 +151,23 @@
};
};
 
+   i2c5_pins_b: i2c5-1 {
+   pins {
+   pinmux = , /* I2C5_SCL */
+; /* I2C5_SDA */
+   bias-disable;
+   drive-open-drain;
+   slew-rate = <0>;
+   };
+   };
+
+   i2c5_sleep_pins_b: i2c5-sleep-1 {
+   pins {
+   pinmux = , /* I2C5_SCL */
+; /* I2C5_SDA */
+   };
+   };
+
mcp23017_pins_a: mcp23017-0 {
pins {
pinmux = ;
-- 
2.43.0



[PATCH 04/19] ARM: dts: stm32: Add alternate pinmux for MP13 ETH2 pins

2024-04-21 Thread Marek Vasut
Add another mux option for ETH2 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 45 +
 1 file changed, 45 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index c709d64edcc..899f0f98e1a 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -72,6 +72,51 @@
};
};
 
+   eth2_rgmii_pins_a: eth2-rgmii-0 {
+   pins1 {
+   pinmux = , /* 
ETH_RGMII_TXD0 */
+, /* 
ETH_RGMII_TXD1 */
+, /* 
ETH_RGMII_TXD2 */
+, /* 
ETH_RGMII_TXD3 */
+, /* 
ETH_RGMII_TX_CTL */
+, /* 
ETH_RGMII_GTX_CLK */
+, /* ETH_MDIO */
+; /* ETH_MDC */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <2>;
+   };
+
+   pins2 {
+   pinmux = , /* 
ETH_RGMII_RXD0 */
+, /* 
ETH_RGMII_RXD1 */
+, /* 
ETH_RGMII_RXD2 */
+, /* 
ETH_RGMII_RXD3 */
+, /* 
ETH_RGMII_RX_CTL */
+; /* 
ETH_RGMII_RX_CLK */
+   bias-disable;
+   };
+   };
+
+   eth2_rgmii_sleep_pins_a: eth2-rgmii-sleep-0 {
+   pins1 {
+   pinmux = , /* 
ETH_RGMII_TXD0 */
+, /* 
ETH_RGMII_TXD1 */
+, /* 
ETH_RGMII_TXD2 */
+, /* 
ETH_RGMII_TXD3 */
+, /* 
ETH_RGMII_TX_CTL */
+, /* 
ETH_RGMII_GTX_CLK */
+, /* ETH_MDIO */
+, /* ETH_MDC */
+, /* 
ETH_RGMII_RXD0 */
+, /* 
ETH_RGMII_RXD1 */
+, /* 
ETH_RGMII_RXD2 */
+, /* 
ETH_RGMII_RXD3 */
+, /* 
ETH_RGMII_RX_CTL */
+; /* 
ETH_RGMII_RX_CLK */
+   };
+   };
+
i2c1_pins_a: i2c1-0 {
pins {
pinmux = , /* I2C1_SCL */
-- 
2.43.0



[PATCH 03/19] ARM: dts: stm32: Add alternate pinmux for MP13 ETH1 pins

2024-04-21 Thread Marek Vasut
Add another mux option for ETH1 pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 46 +
 1 file changed, 46 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index 396fb6eee84..c709d64edcc 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -26,6 +26,52 @@
};
};
 
+   eth1_rgmii_pins_a: eth1-rgmii-0 {
+   pins1 {
+   pinmux = , /* 
ETH_RGMII_TXD0 */
+, /* 
ETH_RGMII_TXD1 */
+, /* 
ETH_RGMII_TXD2 */
+, /* 
ETH_RGMII_TXD3 */
+, /* 
ETH_RGMII_TX_CTL */
+, /* 
ETH_RGMII_GTX_CLK */
+, /* ETH_MDIO */
+; /* ETH_MDC */
+   bias-disable;
+   drive-push-pull;
+   slew-rate = <2>;
+   };
+
+   pins2 {
+   pinmux = , /* 
ETH_RGMII_RXD0 */
+, /* 
ETH_RGMII_RXD1 */
+, /* 
ETH_RGMII_RXD2 */
+, /* 
ETH_RGMII_RXD3 */
+, /* 
ETH_RGMII_RX_CTL */
+; /* 
ETH_RGMII_RX_CLK */
+   bias-disable;
+   };
+
+   };
+
+   eth1_rgmii_sleep_pins_a: eth1-rgmii-sleep-0 {
+   pins1 {
+   pinmux = , /* 
ETH_RGMII_TXD0 */
+, /* 
ETH_RGMII_TXD1 */
+, /* 
ETH_RGMII_TXD2 */
+, /* 
ETH_RGMII_TXD3 */
+, /* 
ETH_RGMII_TX_CTL */
+, /* 
ETH_RGMII_GTX_CLK */
+, /* ETH_MDIO */
+, /* ETH_MDC */
+, /* 
ETH_RGMII_RXD0 */
+, /* 
ETH_RGMII_RXD1 */
+, /* 
ETH_RGMII_RXD1 */
+, /* 
ETH_RGMII_RXD1 */
+, /* 
ETH_RGMII_RX_CTL */
+; /* 
ETH_RGMII_RX_CLK */
+   };
+   };
+
i2c1_pins_a: i2c1-0 {
pins {
pinmux = , /* I2C1_SCL */
-- 
2.43.0



[PATCH 02/19] ARM: dts: stm32: Add alternate pinmux for MP13 ADC CC pins

2024-04-21 Thread Marek Vasut
Add another mux option for ADC CC pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index 03ded415390..396fb6eee84 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -19,6 +19,13 @@
};
};
 
+   adc1_usb_cc_pins_b: adc1-usb-cc-pins-1 {
+   pins {
+   pinmux = , /* ADC1_INP2 */
+; /* ADC1_INP11 
*/
+   };
+   };
+
i2c1_pins_a: i2c1-0 {
pins {
pinmux = , /* I2C1_SCL */
-- 
2.43.0



[PATCH 01/19] ARM: dts: stm32: Add alternate pinmux for MP13 ADC pins

2024-04-21 Thread Marek Vasut
Add another mux option for ADC pins, this is used on
DH electronics STM32MP13xx DHCOR DHSBC board.

Signed-off-by: Marek Vasut 
---
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp13-pinctrl.dtsi | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm/dts/stm32mp13-pinctrl.dtsi 
b/arch/arm/dts/stm32mp13-pinctrl.dtsi
index 27e0c382678..03ded415390 100644
--- a/arch/arm/dts/stm32mp13-pinctrl.dtsi
+++ b/arch/arm/dts/stm32mp13-pinctrl.dtsi
@@ -6,6 +6,12 @@
 #include 
 
  {
+   adc1_pins_a: adc1-pins-0 {
+   pins {
+   pinmux = ; /* ADC1 in12 */
+   };
+   };
+
adc1_usb_cc_pins_a: adc1-usb-cc-pins-0 {
pins {
pinmux = , /* ADC1 in6 */
-- 
2.43.0



[PATCH] ARM: dts: stm32: add eth1 and eth2 support on stm32mp13

2024-04-21 Thread Marek Vasut
From: Christophe Roullier 

Add both ethernet MACs based on GMAC SNPS IP on stm32mp13.

Signed-off-by: Christophe Roullier 
---
Cc: Christophe Roullier 
Cc: Joe Hershberger 
Cc: Patrice Chotard 
Cc: Patrick Delaunay 
Cc: Ramon Fried 
Cc: u-b...@dh-electronics.com
Cc: uboot-st...@st-md-mailman.stormreply.com
---
 arch/arm/dts/stm32mp131.dtsi | 37 
 arch/arm/dts/stm32mp133.dtsi | 30 +
 2 files changed, 67 insertions(+)

diff --git a/arch/arm/dts/stm32mp131.dtsi b/arch/arm/dts/stm32mp131.dtsi
index 159ba8f8c9c..ad331b73d18 100644
--- a/arch/arm/dts/stm32mp131.dtsi
+++ b/arch/arm/dts/stm32mp131.dtsi
@@ -1328,6 +1328,37 @@
status = "disabled";
};
 
+   eth1: eth1@5800a000 {
+   compatible = "snps,dwmac-4.20a", "st,stm32mp13-dwmac";
+   reg = <0x5800a000 0x2000>;
+   reg-names = "stmmaceth";
+   interrupts-extended = < GIC_SPI 62 
IRQ_TYPE_LEVEL_HIGH>,
+ < 68 1>;
+   interrupt-names = "macirq", "eth_wake_irq";
+   clock-names = "stmmaceth",
+ "mac-clk-tx",
+ "mac-clk-rx",
+ "ethstp",
+ "eth-ck";
+   clocks = < ETH1MAC>,
+< ETH1TX>,
+< ETH1RX>,
+< ETH1STP>,
+< ETH1CK_K>;
+   st,syscon = < 0x4 0xff>;
+   snps,mixed-burst;
+   snps,pbl = <2>;
+   snps,axi-config = <_axi_config_1>;
+   snps,tso;
+   status = "disabled";
+
+   stmmac_axi_config_1: stmmac-axi-config {
+   snps,wr_osr_lmt = <0x7>;
+   snps,rd_osr_lmt = <0x7>;
+   snps,blen = <0 0 0 0 16 8 4>;
+   };
+   };
+
usbh_ohci: usb@5800c000 {
compatible = "generic-ohci";
reg = <0x5800c000 0x1000>;
@@ -1404,6 +1435,12 @@
ts_cal2: calib@5e {
reg = <0x5e 0x2>;
};
+   ethernet_mac1_address: mac1@e4 {
+   reg = <0xe4 0x6>;
+   };
+   ethernet_mac2_address: mac2@ea {
+   reg = <0xea 0x6>;
+   };
};
 
/*
diff --git a/arch/arm/dts/stm32mp133.dtsi b/arch/arm/dts/stm32mp133.dtsi
index df451c3c2a2..5cd5bde9535 100644
--- a/arch/arm/dts/stm32mp133.dtsi
+++ b/arch/arm/dts/stm32mp133.dtsi
@@ -64,5 +64,35 @@
};
};
};
+
+   eth2: eth2@5800e000 {
+   compatible = "snps,dwmac-4.20a", "st,stm32mp13-dwmac";
+   reg = <0x5800e000 0x2000>;
+   reg-names = "stmmaceth";
+   interrupts-extended = < GIC_SPI 97 
IRQ_TYPE_LEVEL_HIGH>;
+   interrupt-names = "macirq";
+   clock-names = "stmmaceth",
+ "mac-clk-tx",
+ "mac-clk-rx",
+ "ethstp",
+ "eth-ck";
+   clocks = < ETH2MAC>,
+< ETH2TX>,
+< ETH2RX>,
+< ETH2STP>,
+< ETH2CK_K>;
+   st,syscon = < 0x4 0xff00>;
+   snps,mixed-burst;
+   snps,pbl = <2>;
+   snps,axi-config = <_axi_config_2>;
+   snps,tso;
+   status = "disabled";
+
+   stmmac_axi_config_2: stmmac-axi-config {
+   snps,wr_osr_lmt = <0x7>;
+   snps,rd_osr_lmt = <0x7>;
+   snps,blen = <0 0 0 0 16 8 4>;
+   };
+   };
};
 };
-- 
2.43.0



Re: [PATCH] clk: imx8mn: add video clocks support

2024-04-21 Thread Michael Nazzareno Trimarchi
Hi Fabio

On Sun, Apr 21, 2024 at 10:24 PM Fabio Estevam  wrote:
>
> Hi Michael,
>
> On Sun, Apr 21, 2024 at 11:07 AM Michael Trimarchi
>  wrote:
> >
> > Add clocks support for the video subsystem.
> >
> > Signed-off-by: Michael Trimarchi 
>
> Which target will make use of these clocks?
>
> As-is this patch adds only dead code.
>
> Adding a defconfig that uses these newly introduced clocks would be nice.
>

You are right, I will wrap it and enable only on CONFIG_VIDEO

> Also, to avoid size increase, please protect this code against
> CONFIG_VIDEO or something, like done here:
> https://source.denx.de/u-boot/custodians/u-boot-imx/-/commit/2b3310ef13998dfd03196a0806e03035212b102c

Working on display panel integration on imx8m, trying to progress
merging things up.

Michael



-- 
Michael Nazzareno Trimarchi
Co-Founder & Chief Executive Officer
M. +39 347 913 2170
mich...@amarulasolutions.com
__

Amarula Solutions BV
Joop Geesinkweg 125, 1114 AB, Amsterdam, NL
T. +31 (0)85 111 9172
i...@amarulasolutions.com
www.amarulasolutions.com


[PATCH v1] tee: sandbox: check for buffer size

2024-04-21 Thread Igor Opaniuk
Add additional check for buffer size when reading out persistent
storage value and provide back actual value size.

Signed-off-by: Igor Opaniuk 
---

 drivers/tee/sandbox.c | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/tee/sandbox.c b/drivers/tee/sandbox.c
index 8ad7c09efdd..86b16a3bb8d 100644
--- a/drivers/tee/sandbox.c
+++ b/drivers/tee/sandbox.c
@@ -174,7 +174,7 @@ static u32 ta_avb_invoke_func(struct udevice *dev, u32 
func, uint num_params,
uint slot;
u64 val;
char *value;
-   u32 value_sz;
+   u32 value_sz, tmp_sz;
 
switch (func) {
case TA_AVB_CMD_READ_ROLLBACK_INDEX:
@@ -267,8 +267,12 @@ static u32 ta_avb_invoke_func(struct udevice *dev, u32 
func, uint num_params,
if (!ep)
return TEE_ERROR_ITEM_NOT_FOUND;
 
-   value_sz = strlen(ep->data) + 1;
-   memcpy(value, ep->data, value_sz);
+   tmp_sz = strlen(ep->data) + 1;
+   if (value_sz < tmp_sz)
+   return TEE_ERROR_SHORT_BUFFER;
+
+   memcpy(value, ep->data, tmp_sz);
+   params[1].u.memref.size = tmp_sz;
 
return TEE_SUCCESS;
case TA_AVB_CMD_WRITE_PERSIST_VALUE:
-- 
2.34.1



Re: [PATCH] usb: dwc2: update reset method for host and device mode

2024-04-21 Thread Marek Vasut

On 3/28/24 2:14 PM, Kongyang Liu wrote:

[...]


@@ -464,12 +464,26 @@ static void reconfig_usbd(struct dwc2_udc *dev)
  {
/* 2. Soft-reset OTG Core and then unreset again. */
int i;
-   unsigned int uTemp = writel(CORE_SOFT_RESET, >grstctl);
+   unsigned int uTemp;
uint32_t dflt_gusbcfg;
uint32_t rx_fifo_sz, tx_fifo_sz, np_tx_fifo_sz;
u32 max_hw_ep;
int pdata_hw_ep;
  


Drop this newline


+   u32 snpsid, greset;
+
+   snpsid = readl(>gsnpsid);
+   writel(CORE_SOFT_RESET, >grstctl);
+   if ((snpsid & SNPSID_VER_MASK) < (SNPSID_VER_420a & SNPSID_VER_MASK)) {


Can you use FIELD_GET()/FIELD_PREP() for this ?


+   wait_for_bit_le32(>grstctl, CORE_SOFT_RESET, false, 1000, 
false);
+   } else {
+   wait_for_bit_le32(>grstctl, CORE_SOFT_RESET_DONE, true, 
1000, false);
+   greset = readl(>grstctl);
+   greset &= ~CORE_SOFT_RESET;
+   greset |= CORE_SOFT_RESET_DONE;
+   writel(greset, >grstctl);


clrsetbits_le32()

[...]


diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c
index 637eb2dd06..1baeff96ee 100644
--- a/drivers/usb/host/dwc2.c
+++ b/drivers/usb/host/dwc2.c
@@ -159,6 +159,7 @@ static void dwc_otg_core_reset(struct udevice *dev,
   struct dwc2_core_regs *regs)
  {
int ret;
+   u32 snpsid, greset;
  
  	/* Wait for AHB master IDLE state. */

ret = wait_for_bit_le32(>grstctl, DWC2_GRSTCTL_AHBIDLE,
@@ -167,9 +168,20 @@ static void dwc_otg_core_reset(struct udevice *dev,
dev_info(dev, "%s: Timeout!\n", __func__);
  
  	/* Core Soft Reset */

+   snpsid = readl(>gsnpsid);
writel(DWC2_GRSTCTL_CSFTRST, >grstctl);
-   ret = wait_for_bit_le32(>grstctl, DWC2_GRSTCTL_CSFTRST,
-   false, 1000, false);
+   if ((snpsid & DWC2_SNPSID_VER_MASK) < (DWC2_SNPSID_DEVID_VER_420a & 
DWC2_SNPSID_VER_MASK)) {
+   ret = wait_for_bit_le32(>grstctl, DWC2_GRSTCTL_CSFTRST,
+   false, 1000, false);
+   } else {
+   ret = wait_for_bit_le32(>grstctl, 
DWC2_GRSTCTL_GSFTRST_DONE,
+   true, 1000, false);
+   greset = readl(>grstctl);
+   greset &= ~DWC2_GRSTCTL_CSFTRST;
+   greset |= DWC2_GRSTCTL_GSFTRST_DONE;
+   writel(greset, >grstctl);


Same comments as above.

Maybe this should be pulled into dedicated function to avoid duplication?


+   }
+
if (ret)
dev_info(dev, "%s: Timeout!\n", __func__);
  
@@ -1180,7 +1192,8 @@ static int dwc2_init_common(struct udevice *dev, struct dwc2_priv *priv)

 snpsid >> 12 & 0xf, snpsid & 0xfff);
  
  	if ((snpsid & DWC2_SNPSID_DEVID_MASK) != DWC2_SNPSID_DEVID_VER_2xx &&

-   (snpsid & DWC2_SNPSID_DEVID_MASK) != DWC2_SNPSID_DEVID_VER_3xx) {
+   (snpsid & DWC2_SNPSID_DEVID_MASK) != DWC2_SNPSID_DEVID_VER_3xx 
&&
+   (snpsid & DWC2_SNPSID_DEVID_MASK) != DWC2_SNPSID_DEVID_VER_4xx) {


Try FIELD_GET/FIELD_PREP


Re: [PATCH] usb: dwc3: support USB 3.1 controllers

2024-04-21 Thread Marek Vasut

On 4/11/24 6:05 PM, Caleb Connolly wrote:

The revision is different for these, add the additional check as in
xhci-dwc3 core_init code.

Signed-off-by: Caleb Connolly 


Is there a matching Linux kernel patch , or does Linux do some other check ?


Re: [PATCH 1/2] ARM: dts: stm32: add PWR regulators support on stm32mp131

2024-04-21 Thread Marek Vasut

On 3/19/24 3:45 AM, Marek Vasut wrote:

This patch adds STM32 PWR regulators DT support on stm32mp131.
This requires TFA to clear RCC_SECCFGR, is disabled by default
and can only be enabled on board DT level.

Signed-off-by: Marek Vasut 


It seems these patches have been missed from the recent PR ?

Is there any feedback on those patches ?


Re: [PATCH] clk: imx8mn: add video clocks support

2024-04-21 Thread Fabio Estevam
Hi Michael,

On Sun, Apr 21, 2024 at 11:07 AM Michael Trimarchi
 wrote:
>
> Add clocks support for the video subsystem.
>
> Signed-off-by: Michael Trimarchi 

Which target will make use of these clocks?

As-is this patch adds only dead code.

Adding a defconfig that uses these newly introduced clocks would be nice.

Also, to avoid size increase, please protect this code against
CONFIG_VIDEO or something, like done here:
https://source.denx.de/u-boot/custodians/u-boot-imx/-/commit/2b3310ef13998dfd03196a0806e03035212b102c


[PATCH] rockchip: rk3328: Fix bootph prop for vop node

2024-04-21 Thread Jonas Karlman
The vop node should not be included in TPL/SPL control FDT, it should
only be included at U-Boot proper pre-reloc phase.

Change to use bootph-some-ram prop to fix this.

Fixes: 6794063d5065 ("ARM: dts: rk3328: Enable VOP for bootph-all")
Signed-off-by: Jonas Karlman 
---
 arch/arm/dts/rk3328-u-boot.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/dts/rk3328-u-boot.dtsi b/arch/arm/dts/rk3328-u-boot.dtsi
index 7c5067cf002e..d3608bd0e2b2 100644
--- a/arch/arm/dts/rk3328-u-boot.dtsi
+++ b/arch/arm/dts/rk3328-u-boot.dtsi
@@ -131,7 +131,7 @@
 };
 
  {
-   bootph-all;
+   bootph-some-ram;
 };
 
 #ifdef CONFIG_ROCKCHIP_SPI_IMAGE
-- 
2.43.2



[PATCH v2 2/3] rockchip: rk3328: Enable ARMv8 crypto extensions

2024-04-21 Thread Jonas Karlman
The RK3328 SoC support ARMv8 Cryptography Extensions and use of the
ARMv8 crypto extensions help speed up FIT checksum validation in SPL.

Imply ARMV8_SET_SMPEN and ARMV8_CRYPTO to take advantage of the crypto
extensions for SHA256 when validating checksum of FIT images.

Also imply OF_LIVE to help speed up init of U-Boot proper.

Signed-off-by: Jonas Karlman 
---
v2: No change, rebase on latest master bransh
---
 arch/arm/mach-rockchip/Kconfig | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index ee0f338995b9..651ecfe9b8fd 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -180,8 +180,11 @@ config ROCKCHIP_RK3328
select SUPPORT_TPL
select TPL
select TPL_NEEDS_SEPARATE_STACK if TPL
+   imply ARMV8_CRYPTO
+   imply ARMV8_SET_SMPEN
imply MISC
imply MISC_INIT_R
+   imply OF_LIVE
imply PRE_CONSOLE_BUFFER
imply ROCKCHIP_COMMON_BOARD
imply ROCKCHIP_EFUSE
-- 
2.43.2



[PATCH v2 3/3] rockchip: io-domain: Add support for RK3328

2024-04-21 Thread Jonas Karlman
Port the RK3328 part of the Rockchip IO-domain driver from linux.

This differs from linux version in that pmu io iodomain bit is enabled
in the write ops instead of in an init ops as in linux, this way we can
avoid keeping a full state of all supply that have been configured.

Enable by default on all RK3328 boards, skip rk3328-evb because this
target is typically also used on miscellaneous boards and boxes not
fully supported by U-Boot.

Signed-off-by: Jonas Karlman 
---
v2: No change
---
 arch/arm/mach-rockchip/rk3328/syscon_rk3328.c |  3 ++
 configs/evb-rk3328_defconfig  |  1 +
 drivers/misc/Kconfig  |  2 +-
 drivers/misc/rockchip-io-domain.c | 38 +++
 4 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-rockchip/rk3328/syscon_rk3328.c 
b/arch/arm/mach-rockchip/rk3328/syscon_rk3328.c
index daf74a0e2d37..d2f267e63534 100644
--- a/arch/arm/mach-rockchip/rk3328/syscon_rk3328.c
+++ b/arch/arm/mach-rockchip/rk3328/syscon_rk3328.c
@@ -17,4 +17,7 @@ U_BOOT_DRIVER(rockchip_rk3328_grf) = {
.name = "rockchip_rk3328_grf",
.id = UCLASS_SYSCON,
.of_match = rk3328_syscon_ids,
+#if CONFIG_IS_ENABLED(OF_REAL)
+   .bind = dm_scan_fdt_dev,
+#endif
 };
diff --git a/configs/evb-rk3328_defconfig b/configs/evb-rk3328_defconfig
index 75a0e0f286bd..53ad6777ec50 100644
--- a/configs/evb-rk3328_defconfig
+++ b/configs/evb-rk3328_defconfig
@@ -57,6 +57,7 @@ CONFIG_FASTBOOT_BUF_ADDR=0x800800
 CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
 CONFIG_ROCKCHIP_GPIO=y
 CONFIG_SYS_I2C_ROCKCHIP=y
+# CONFIG_ROCKCHIP_IODOMAIN is not set
 CONFIG_MMC_DW=y
 CONFIG_MMC_DW_ROCKCHIP=y
 CONFIG_PHY_MOTORCOMM=y
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 6b06888454f4..6009d55f400e 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -104,7 +104,7 @@ config ROCKCHIP_OTP
 config ROCKCHIP_IODOMAIN
bool "Rockchip IO-domain driver support"
depends on DM_REGULATOR && ARCH_ROCKCHIP
-   default y if ROCKCHIP_RK3568
+   default y if ROCKCHIP_RK3328 || ROCKCHIP_RK3568
help
  Enable support for IO-domains in Rockchip SoCs. It is necessary
  for the IO-domain setting of the SoC to match the voltage supplied
diff --git a/drivers/misc/rockchip-io-domain.c 
b/drivers/misc/rockchip-io-domain.c
index 0ffea32ef07f..04d4d07c4127 100644
--- a/drivers/misc/rockchip-io-domain.c
+++ b/drivers/misc/rockchip-io-domain.c
@@ -27,6 +27,10 @@
 #define MAX_VOLTAGE_1_8198
 #define MAX_VOLTAGE_3_3360
 
+#define RK3328_SOC_CON40x410
+#define RK3328_SOC_CON4_VCCIO2 BIT(7)
+#define RK3328_SOC_VCCIO2_SUPPLY_NUM   1
+
 #define RK3399_PMUGRF_CON0 0x180
 #define RK3399_PMUGRF_CON0_VSELBIT(8)
 #define RK3399_PMUGRF_VSEL_SUPPLY_NUM  9
@@ -95,6 +99,22 @@ static int rockchip_iodomain_write(struct regmap *grf, uint 
offset, int idx, int
return regmap_write(grf, offset, val);
 }
 
+static int rk3328_iodomain_write(struct regmap *grf, uint offset, int idx, int 
uV)
+{
+   int ret = rockchip_iodomain_write(grf, offset, idx, uV);
+
+   if (!ret && idx == RK3328_SOC_VCCIO2_SUPPLY_NUM) {
+   /*
+* set vccio2 iodomain to also use this framework
+* instead of a special gpio.
+*/
+   u32 val = RK3328_SOC_CON4_VCCIO2 | (RK3328_SOC_CON4_VCCIO2 << 
16);
+   ret = regmap_write(grf, RK3328_SOC_CON4, val);
+   }
+
+   return ret;
+}
+
 static int rk3399_pmu_iodomain_write(struct regmap *grf, uint offset, int idx, 
int uV)
 {
int ret = rockchip_iodomain_write(grf, offset, idx, uV);
@@ -111,6 +131,20 @@ static int rk3399_pmu_iodomain_write(struct regmap *grf, 
uint offset, int idx, i
return ret;
 }
 
+static const struct rockchip_iodomain_soc_data soc_data_rk3328 = {
+   .grf_offset = 0x410,
+   .supply_names = {
+   "vccio1-supply",
+   "vccio2-supply",
+   "vccio3-supply",
+   "vccio4-supply",
+   "vccio5-supply",
+   "vccio6-supply",
+   "pmuio-supply",
+   },
+   .write = rk3328_iodomain_write,
+};
+
 static const struct rockchip_iodomain_soc_data soc_data_rk3399 = {
.grf_offset = 0xe640,
.supply_names = {
@@ -156,6 +190,10 @@ static const struct rockchip_iodomain_soc_data 
soc_data_rk3568_pmu = {
 };
 
 static const struct udevice_id rockchip_iodomain_ids[] = {
+   {
+   .compatible = "rockchip,rk3328-io-voltage-domain",
+   .data = (ulong)_data_rk3328,
+   },
{
.compatible = "rockchip,rk3399-io-voltage-domain",
.data = (ulong)_data_rk3399,
-- 
2.43.2



[PATCH v2 1/3] rockchip: rk3328: Sort imply statements alphabetically

2024-04-21 Thread Jonas Karlman
Sort imply statements under ROCKCHIP_RK3328 alphabetically and remove
ENABLE_ARM_SOC_BOOT0_HOOK, DEBUG_UART_BOARD_INIT and SYS_NS16550, they
are already implyed or selected by ARCH_ROCKCHIP.

Signed-off-by: Jonas Karlman 
---
v2: No change, rebase on latest master bransh
---
 arch/arm/mach-rockchip/Kconfig | 11 ---
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
index 4f22d9bde9f9..ee0f338995b9 100644
--- a/arch/arm/mach-rockchip/Kconfig
+++ b/arch/arm/mach-rockchip/Kconfig
@@ -180,19 +180,16 @@ config ROCKCHIP_RK3328
select SUPPORT_TPL
select TPL
select TPL_NEEDS_SEPARATE_STACK if TPL
+   imply MISC
+   imply MISC_INIT_R
imply PRE_CONSOLE_BUFFER
imply ROCKCHIP_COMMON_BOARD
+   imply ROCKCHIP_EFUSE
imply ROCKCHIP_SDRAM_COMMON
imply SPL_ROCKCHIP_COMMON_BOARD
+   imply SPL_SEPARATE_BSS
imply SPL_SERIAL
imply TPL_SERIAL
-   imply SPL_SEPARATE_BSS
-   select ENABLE_ARM_SOC_BOOT0_HOOK
-   select DEBUG_UART_BOARD_INIT
-   select SYS_NS16550
-   imply MISC
-   imply ROCKCHIP_EFUSE
-   imply MISC_INIT_R
help
  The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53.
  including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
-- 
2.43.2



[PATCH v2 0/3] rockchip: rk3328: Add IO-domain driver and speed up boot

2024-04-21 Thread Jonas Karlman
This series adds support for RK3328 to the IO-domain driver, it also
enabled ARMv8 crypto extensions and OF_LIVE to speed up boot on rk3328
boards.

Before this series init time is around 4.1 seconds on a Rock64 v2.0:

  => bootstage report
  Timer summary in microseconds (11 records):
 MarkElapsed  Stage
  63,628  SPL
  284,173220,545  end phase
  342,709 58,536  board_init_f
  967,537624,828  board_init_r
2,980,332  2,012,795  eth_common_init
4,141,289  1,160,957  eth_initialize
4,141,545256  main_loop
4,146,525  4,980  cli_loop

  Accumulated time:
  71,396  dm_spl
 329,994  dm_f
  12,355  dm_r

After this series init time is around 1.3 seconds on same Rock64 v2.0:

  => bootstage report
  Timer summary in microseconds (12 records):
 MarkElapsed  Stage
  63,628  SPL
  284,173220,545  end phase
  303,282 19,109  board_init_f
  942,973639,691  board_init_r
1,194,831251,858  eth_common_init
1,363,405168,574  eth_initialize
1,363,609204  main_loop
1,363,738129  cli_loop

  Accumulated time:
 113,648  dm_spl
 344,913  dm_f
   6,788  of_live
  17,895  dm_r

Changes in v2:
- Rebase on latest master bransh

Jonas Karlman (3):
  rockchip: rk3328: Sort imply statements alphabetically
  rockchip: rk3328: Enable ARMv8 crypto extensions
  rockchip: io-domain: Add support for RK3328

 arch/arm/mach-rockchip/Kconfig| 14 +++
 arch/arm/mach-rockchip/rk3328/syscon_rk3328.c |  3 ++
 configs/evb-rk3328_defconfig  |  1 +
 drivers/misc/Kconfig  |  2 +-
 drivers/misc/rockchip-io-domain.c | 38 +++
 5 files changed, 50 insertions(+), 8 deletions(-)

-- 
2.43.2



Re: [GIT PULL] u-boot-video/video-20240421

2024-04-21 Thread Tom Rini
On Sun, Apr 21, 2024 at 03:52:13PM +0200, Anatolij Gustschin wrote:

> Hi Tom,
> 
> please pull video driver updates for v2024.07-rc1.
> 
> CI: https://source.denx.de/u-boot/custodians/u-boot-video/-/pipelines/20466
> 
> Thanks,
> Anatolij
> 
> The following changes since commit af04f37a78c7e61597fb9ed6db2c8f8d7f8b0f92:
> 
>   Merge tag 'u-boot-stm32-20240419' of 
> https://source.denx.de/u-boot/custodians/u-boot-stm (2024-04-19 14:25:04 
> -0600)
> 
> are available in the Git repository at:
> 
>   https://source.denx.de/u-boot/custodians/u-boot-video.git 
> tags/video-20240421
> 
> for you to fetch changes up to efe1ceec7ef0c2ce2344dbe066fca0d389a0b4f3:
> 
>   boot: Move framebuffer reservation to separate helper (2024-04-21 09:07:02 
> +0200)
> 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature


[PATCH] clk: imx8mn: add video clocks support

2024-04-21 Thread Michael Trimarchi
Add clocks support for the video subsystem.

Signed-off-by: Michael Trimarchi 
---
 drivers/clk/imx/clk-imx8mn.c | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/drivers/clk/imx/clk-imx8mn.c b/drivers/clk/imx/clk-imx8mn.c
index 457acb8a40..baac79dd29 100644
--- a/drivers/clk/imx/clk-imx8mn.c
+++ b/drivers/clk/imx/clk-imx8mn.c
@@ -23,6 +23,7 @@ static const char *arm_pll_bypass_sels[] = {"arm_pll", 
"arm_pll_ref_sel", };
 static const char *sys_pll1_bypass_sels[] = {"sys_pll1", "sys_pll1_ref_sel", };
 static const char *sys_pll2_bypass_sels[] = {"sys_pll2", "sys_pll2_ref_sel", };
 static const char *sys_pll3_bypass_sels[] = {"sys_pll3", "sys_pll3_ref_sel", };
+static const char *video_pll_bypass_sels[] = {"video_pll", 
"video_pll_ref_sel", };
 
 static const char *imx8mn_a53_sels[] = {"clock-osc-24m", "arm_pll_out", 
"sys_pll2_500m", "sys_pll2_1000m",
"sys_pll1_800m", "sys_pll1_400m", 
"audio_pll1_out", "sys_pll3_out", };
@@ -30,6 +31,10 @@ static const char *imx8mn_a53_sels[] = {"clock-osc-24m", 
"arm_pll_out", "sys_pll
 static const char *imx8mn_ahb_sels[] = {"clock-osc-24m", "sys_pll1_133m", 
"sys_pll1_800m", "sys_pll1_400m",
"sys_pll2_125m", "sys_pll3_out", 
"audio_pll1_out", "video_pll_out", };
 
+static const char *imx8mn_disp_pixel_sels[] = {"osc_24m", "video_pll_out", 
"audio_pll2_out",
+  "audio_pll1_out", 
"sys_pll1_800m", "sys_pll2_1000m",
+  "sys_pll3_out", "clk_ext4", };
+
 static const char *imx8mn_enet_axi_sels[] = {"clock-osc-24m", "sys_pll1_266m", 
"sys_pll1_800m", "sys_pll2_250m",
 "sys_pll2_200m", "audio_pll1_out", 
"video_pll_out", "sys_pll3_out", };
 
@@ -139,6 +144,9 @@ static int imx8mn_clk_probe(struct udevice *dev)
clk_dm(IMX8MN_SYS_PLL3_REF_SEL,
   imx_clk_mux("sys_pll3_ref_sel", base + 0x114, 0, 2,
   pll_ref_sels, ARRAY_SIZE(pll_ref_sels)));
+   clk_dm(IMX8MN_VIDEO_PLL1_REF_SEL,
+  imx_clk_mux("video_pll_ref_sel", base + 0x28, 0, 2,
+  pll_ref_sels, ARRAY_SIZE(pll_ref_sels)));
 
clk_dm(IMX8MN_DRAM_PLL,
   imx_clk_pll14xx("dram_pll", "dram_pll_ref_sel",
@@ -155,6 +163,9 @@ static int imx8mn_clk_probe(struct udevice *dev)
clk_dm(IMX8MN_SYS_PLL3,
   imx_clk_pll14xx("sys_pll3", "sys_pll3_ref_sel",
   base + 0x114, _1416x_pll));
+   clk_dm(IMX8MN_VIDEO_PLL1,
+  imx_clk_pll14xx("video_pll", "video_pll_ref_sel",
+  base + 0x28, _1443x_pll));
 
/* PLL bypass out */
clk_dm(IMX8MN_DRAM_PLL_BYPASS,
@@ -183,6 +194,12 @@ static int imx8mn_clk_probe(struct udevice *dev)
 ARRAY_SIZE(sys_pll3_bypass_sels),
 CLK_SET_RATE_PARENT));
 
+   clk_dm(IMX8MN_VIDEO_PLL1_BYPASS,
+  imx_clk_mux_flags("video_pll_bypass", base + 0x28, 16, 1,
+video_pll_bypass_sels,
+ARRAY_SIZE(video_pll_bypass_sels),
+CLK_SET_RATE_PARENT));
+
/* PLL out gate */
clk_dm(IMX8MN_DRAM_PLL_OUT,
   imx_clk_gate("dram_pll_out", "dram_pll_bypass",
@@ -199,6 +216,9 @@ static int imx8mn_clk_probe(struct udevice *dev)
clk_dm(IMX8MN_SYS_PLL3_OUT,
   imx_clk_gate("sys_pll3_out", "sys_pll3_bypass",
base + 0x114, 11));
+   clk_dm(IMX8MN_VIDEO_PLL1_OUT,
+  imx_clk_gate("video_pll_out", "video_pll_bypass",
+   base + 0x28, 13));
 
/* SYS PLL fixed output */
clk_dm(IMX8MN_SYS_PLL1_40M,
@@ -275,6 +295,9 @@ static int imx8mn_clk_probe(struct udevice *dev)
clk_dm(IMX8MN_CLK_USDHC2,
   imx8m_clk_composite("usdhc2", imx8mn_usdhc2_sels,
   base + 0xac80));
+
+   clk_dm(IMX8MN_CLK_DISP_PIXEL,
+  imx8m_clk_composite("disp_pixel", imx8mn_disp_pixel_sels, base + 
0xa500));
clk_dm(IMX8MN_CLK_I2C1,
   imx8m_clk_composite("i2c1", imx8mn_i2c1_sels, base + 0xad00));
clk_dm(IMX8MN_CLK_I2C2,
-- 
2.40.1



[GIT PULL] u-boot-video/video-20240421

2024-04-21 Thread Anatolij Gustschin
Hi Tom,

please pull video driver updates for v2024.07-rc1.

CI: https://source.denx.de/u-boot/custodians/u-boot-video/-/pipelines/20466

Thanks,
Anatolij

The following changes since commit af04f37a78c7e61597fb9ed6db2c8f8d7f8b0f92:

  Merge tag 'u-boot-stm32-20240419' of 
https://source.denx.de/u-boot/custodians/u-boot-stm (2024-04-19 14:25:04 -0600)

are available in the Git repository at:

  https://source.denx.de/u-boot/custodians/u-boot-video.git tags/video-20240421

for you to fetch changes up to efe1ceec7ef0c2ce2344dbe066fca0d389a0b4f3:

  boot: Move framebuffer reservation to separate helper (2024-04-21 09:07:02 
+0200)


 - simple_panel: support timing parsing from EDID
 - dw_hdmi: fix gcc-14 compiler warnings
 - dw_hdmi: support vendor PHY for HDMI
 - rockchip: add Rockchip INNO HDMI PHY driver
 - rockchip: RK3328 HDMI and VOP support
 - evb-rk3328: enable vidconsole support
 - Tegra DC and DSI improvements and Tegra 114 support
 - add LG LG070WX3 MIPI DSI panel driver
 - add Samsung LTL106HL02 MIPI DSI panel driver
 - add Toshiba TC358768 RGB to DSI bridge support
 - add basic support for the Parade DP501 transmitter
 - Tegra 3 panel and bridge driver improvements
 - simplefb: modernise DT parsing
 - fdt_simplefb: Enumerate framebuffer info from video handoff
 - preserve framebuffer if SPL is passing video hand-off
 - fdt_support: allow reserving FB region without simplefb


Anton Bambura (1):
  video: panel: add Samsung LTL106HL02 MIPI DSI panel driver

Caleb Connolly (1):
  video: simplefb: modernise DT parsing

Devarsh Thakkar (3):
  boot: fdt_simplefb: Enumerate framebuffer info from video handoff
  video: Assume video to be active if SPL is passing video hand-off
  boot: Move framebuffer reservation to separate helper

Jagan Teki (17):
  video: rockchip: hdmi: Detect hpd after controller init
  video: dw_hdmi: Add Vendor PHY handling
  video: dw_hdmi: Extend the HPD detection
  video: dw_hdmi: Add read_hpd hook
  video: dw_hdmi: Add setup_hpd hook
  video: rockchip: vop: Simplify rkvop_enable
  video: rockchip: vop: Add win offset support
  video: rockchip: vop: Add dsp offset support
  clk: rockchip: rk3328: Add VOP clk support
  clk: rk3328: Add get hdmiphy clock
  phy: rockchip: Add Rockchip INNO HDMI PHY driver
  video: rockchip: Add rk3328 hdmi support
  video: rockchip: Add rk3328 vop support
  ARM: dts: rk3328: Enable VOP for bootph-all
  rockchip: Enable preconsole for rk3328
  configs: evb-rk3328: Enable vidconsole for rk3328
  configs: Enable HDMI Out for ROC-RK3328-CC

Jonas Schwöbel (7):
  video: tegra20: dc: fix printing of framebuffer address
  video: tegra20: dc: enable backlight after DC is configured
  video: tegra20: dc: clean framebuffer memory block
  video: tegra20: dsi: remove pre-configuration
  video: tegra20: dsi: set correct fifo depth
  video: tegra20: dsi: use set_backlight for backlight only
  video: bridge: add basic support for the Parade DP501 transmitter

Khem Raj (1):
  video: dw_hdmi: Fix compiler warnings with gcc-14

Svyatoslav Ryhel (18):
  video: simple_panel: simplify platform data pass
  video: simple_panel: add EDID support
  video: tegra20: dc: diverge DC per-SOC
  video: tegra20: dc: fix image shift on rotated panels
  video: tegra20: consolidate DC header
  video: tegra20: dc: pass DC id to internal devices
  video: tegra20: dc: add PLLD2 parent support
  video: tegra20: dc: add powergate
  video: tegra20: dc: configure behavior if PLLD/D2 is used
  video: tegra20: dc: parameterize V- and H-sync polarities
  video: tegra20: add MIPI calibration driver
  video: tegra20: dsi: add T114 support
  video: tegra20: dsi: add reset support
  video: panel: add LG LG070WX3 MIPI DSI panel driver
  video: bridge: add Toshiba TC358768 RGB to DSI bridge support
  video: endeavoru-panel: shift the init sequence by one step earlier
  video: bridge: ssd2825: shift the init sequence by one step earlier
  video: renesas: shift the init sequence by one step earlier

 arch/arm/dts/rk3328-u-boot.dtsi|   4 +
 arch/arm/dts/tegra114-u-boot.dtsi  |  13 +
 arch/arm/dts/tegra114.dtsi |   4 +-
 arch/arm/dts/tegra30-u-boot.dtsi   |   4 +
 arch/arm/dts/tegra30.dtsi  |   2 +-
 arch/arm/include/asm/arch-rockchip/cru_rk3328.h|  34 +
 arch/arm/include/asm/arch-tegra/dc.h   |  13 +-
 arch/arm/include/asm/arch-tegra114/pwm.h   |  13 +
 arch/arm/include/asm/arch-tegra20/display.h|  28 -
 arch/arm/include/asm/arch-tegra30/display.h|  28 -
 arch/arm/mach-rockchip/Kconfig |   1 +
 boot/fdt_simplefb.c