Linux Watchdog driver development
 help / color / mirror / Atom feed
* [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support
@ 2023-05-11 16:29 Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 01/11] arm64: defconfig: enable MT6357 regulator Alexandre Mergnat
                   ` (10 more replies)
  0 siblings, 11 replies; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Kevin Hilman, Fabien Parent,
	Amjad Ouled-Ameur

This commits are based on the Fabien Parent <fparent@baylibre.com> work.

The purpose of this series is to add the following HWs / IPs support for
the mt8365-evk board:
- Watchdog
- Power Management Integrated Circuit "PMIC" wrapper
- MT6357 PMIC
- MultiMediaCard "MMC" & Secure Digital "SD" controller
- USB controller
- Ethernet MAC controller

Add CPU Freq & IDLE support for this board.

All previous dependancies are merged and released into the v6.4-rc1.

=== Build:

To test this serie, cherry-pick this serie, and build it using the arm64
defconfig.

Regards,
Alex

Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
Changes in v7:
- Rebase to the kernel v6.4-rc1.
- Remove "dt-bindings: watchdog: mediatek,mtk-wdt: add mt8365" because
  it was applied.
- Link to v6: https://lore.kernel.org/r/20230203-evk-board-support-v6-0-8d6b1cfe7f29@baylibre.com

Changes in v6:
- Add commit message for the arm64 defconfig changes
- Fix the mail list
- Link to v5: https://lore.kernel.org/r/20230203-evk-board-support-v5-0-1883c1b405ad@baylibre.com

Changes in v5:
- Add patches to build the MT6357 regulator driver and MTK PMIC keys by default
- Remove "dt-bindings: pinctrl: mediatek,mt8365-pinctrl: add drive strength property"
  patch from this serie and add it to the pinctrl serie [3]
- Link to v4: https://lore.kernel.org/r/20230203-evk-board-support-v4-0-5cffe66a38c0@baylibre.com

Changes in v4:
- Remove v3 applied patch from the serie:
  - arm64: dts: mediatek: add ethernet support for mt8365 SoC
  - arm64: dts: mediatek: add mmc support for mt8365 SoC
  - arm64: dts: mediatek: add mt6357 device-tree
  - arm64: dts: mediatek: add pwrap support to mt8365 SoC
  - arm64: dts: mediatek: Increase the size BL31 reserved memory
- Drop "arm64: dts: mediatek: fix systimer properties" which is done [1]
- Fix style, typo and re-order properties.
- Use interrupts-extended for the PMIC node.
- Link to v3: https://lore.kernel.org/r/20230203-evk-board-support-v3-0-0003e80e0095@baylibre.com

Changes in v3:
- Remove v2 applied patch from the serie:
  - dt-bindings: mmc: mediatek,mtk-sd: add mt8365
- Add trailers and simply resend.
- Link to v2: https://lore.kernel.org/r/20230203-evk-board-support-v2-0-6ec7cdb10ccf@baylibre.com

---
Alexandre Mergnat (9):
      arm64: defconfig: enable MT6357 regulator
      arm64: defconfig: enable Mediatek PMIC key
      arm64: dts: mediatek: add watchdog support for mt8365 SoC
      arm64: dts: mediatek: add mt6357 PMIC support for mt8365-evk
      arm64: dts: mediatek: add mmc support for mt8365-evk
      arm64: dts: mediatek: add usb controller support for mt8365-evk
      arm64: dts: mediatek: add ethernet support for mt8365-evk
      arm64: dts: mediatek: add OPP support for mt8365 SoC
      arm64: dts: mediatek: add cpufreq support for mt8365-evk

Amjad Ouled-Ameur (1):
      arm64: dts: mediatek: Add CPU Idle support

Fabien Parent (1):
      arm64: dts: mediatek: set vmc regulator as always on

 arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 249 ++++++++++++++++++++++++++++
 arch/arm64/boot/dts/mediatek/mt8365.dtsi    | 142 ++++++++++++++++
 arch/arm64/configs/defconfig                |   2 +
 3 files changed, 393 insertions(+)
---
base-commit: d2b7e0f7ff8e0b21e4c8d0ae6dfa38786fe44b35
change-id: 20230203-evk-board-support-d5b7a839ed7b

Best regards,
-- 
Alexandre Mergnat <amergnat@baylibre.com>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v7 01/11] arm64: defconfig: enable MT6357 regulator
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
@ 2023-05-11 16:29 ` Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 02/11] arm64: defconfig: enable Mediatek PMIC key Alexandre Mergnat
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Kevin Hilman

Enable the power regulator support of MediaTek MT6357 PMIC. This driver
supports the control of different power rails of device through
regulator interface.

Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/configs/defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index a24609e14d50..ed3fca298314 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -708,6 +708,7 @@ CONFIG_REGULATOR_MAX77620=y
 CONFIG_REGULATOR_MAX8973=y
 CONFIG_REGULATOR_MP8859=y
 CONFIG_REGULATOR_MT6315=m
+CONFIG_REGULATOR_MT6357=y
 CONFIG_REGULATOR_MT6358=y
 CONFIG_REGULATOR_MT6359=y
 CONFIG_REGULATOR_MT6360=y

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v7 02/11] arm64: defconfig: enable Mediatek PMIC key
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 01/11] arm64: defconfig: enable MT6357 regulator Alexandre Mergnat
@ 2023-05-11 16:29 ` Alexandre Mergnat
  2023-05-15 11:35   ` AngeloGioacchino Del Regno
  2023-05-11 16:29 ` [PATCH v7 03/11] arm64: dts: mediatek: add watchdog support for mt8365 SoC Alexandre Mergnat
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Kevin Hilman

Some Mediatek PMIC devices can manage Power and Home keys (buttons).
This patch enable the driver which handle the 2 keys managed by the
Mediatek PMIC.

Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/configs/defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index ed3fca298314..0db8293f477d 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -413,6 +413,7 @@ CONFIG_KEYBOARD_GPIO=y
 CONFIG_KEYBOARD_SNVS_PWRKEY=m
 CONFIG_KEYBOARD_IMX_SC_KEY=m
 CONFIG_KEYBOARD_CROS_EC=y
+CONFIG_KEYBOARD_MTK_PMIC=m
 CONFIG_MOUSE_ELAN_I2C=m
 CONFIG_INPUT_TOUCHSCREEN=y
 CONFIG_TOUCHSCREEN_ATMEL_MXT=m

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v7 03/11] arm64: dts: mediatek: add watchdog support for mt8365 SoC
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 01/11] arm64: defconfig: enable MT6357 regulator Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 02/11] arm64: defconfig: enable Mediatek PMIC key Alexandre Mergnat
@ 2023-05-11 16:29 ` Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 04/11] arm64: dts: mediatek: add mt6357 PMIC support for mt8365-evk Alexandre Mergnat
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Kevin Hilman

Add watchdog support.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/boot/dts/mediatek/mt8365.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8365.dtsi b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
index 1f6b48359115..bb45aab2e6a9 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
@@ -162,6 +162,12 @@ syscfg_pctl: syscfg-pctl@10005000 {
 			reg = <0 0x10005000 0 0x1000>;
 		};
 
+		watchdog: watchdog@10007000 {
+			compatible = "mediatek,mt8365-wdt", "mediatek,mt6589-wdt";
+			reg = <0 0x10007000 0 0x100>;
+			#reset-cells = <1>;
+		};
+
 		pio: pinctrl@1000b000 {
 			compatible = "mediatek,mt8365-pinctrl";
 			reg = <0 0x1000b000 0 0x1000>;

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v7 04/11] arm64: dts: mediatek: add mt6357 PMIC support for mt8365-evk
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
                   ` (2 preceding siblings ...)
  2023-05-11 16:29 ` [PATCH v7 03/11] arm64: dts: mediatek: add watchdog support for mt8365 SoC Alexandre Mergnat
@ 2023-05-11 16:29 ` Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 05/11] arm64: dts: mediatek: add mmc " Alexandre Mergnat
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Kevin Hilman

This power management system chip integration helps to manage regulators
and keys.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
index ceb48eb1a6e6..6074aa9c1c3e 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
@@ -12,6 +12,7 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/mt8365-pinfunc.h>
 #include "mt8365.dtsi"
+#include "mt6357.dtsi"
 
 / {
 	model = "MediaTek MT8365 Open Platform EVK";
@@ -94,6 +95,12 @@ &i2c0 {
 	status = "okay";
 };
 
+&mt6357_pmic {
+	interrupts-extended = <&pio 145 IRQ_TYPE_LEVEL_HIGH>;
+	interrupt-controller;
+	#interrupt-cells = <2>;
+};
+
 &pio {
 	gpio_keys: gpio-keys-pins {
 		pins {

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v7 05/11] arm64: dts: mediatek: add mmc support for mt8365-evk
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
                   ` (3 preceding siblings ...)
  2023-05-11 16:29 ` [PATCH v7 04/11] arm64: dts: mediatek: add mt6357 PMIC support for mt8365-evk Alexandre Mergnat
@ 2023-05-11 16:29 ` Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 06/11] arm64: dts: mediatek: set vmc regulator as always on amergnat
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Kevin Hilman

- Add EMMC support on mmc0 (internal memory)
- Add SD-UHS support on mmc1 (external memory)

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 138 ++++++++++++++++++++++++++++
 1 file changed, 138 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
index 6074aa9c1c3e..752007d0598e 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
@@ -95,6 +95,42 @@ &i2c0 {
 	status = "okay";
 };
 
+&mmc0 {
+	assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL>;
+	assigned-clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>;
+	bus-width = <8>;
+	cap-mmc-highspeed;
+	cap-mmc-hw-reset;
+	hs400-ds-delay = <0x12012>;
+	max-frequency = <200000000>;
+	mmc-hs200-1_8v;
+	mmc-hs400-1_8v;
+	no-sd;
+	no-sdio;
+	non-removable;
+	pinctrl-0 = <&mmc0_default_pins>;
+	pinctrl-1 = <&mmc0_uhs_pins>;
+	pinctrl-names = "default", "state_uhs";
+	vmmc-supply = <&mt6357_vemc_reg>;
+	vqmmc-supply = <&mt6357_vio18_reg>;
+	status = "okay";
+};
+
+&mmc1 {
+	bus-width = <4>;
+	cap-sd-highspeed;
+	cd-gpios = <&pio 76 GPIO_ACTIVE_LOW>;
+	max-frequency = <200000000>;
+	pinctrl-0 = <&mmc1_default_pins>;
+	pinctrl-1 = <&mmc1_uhs_pins>;
+	pinctrl-names = "default", "state_uhs";
+	sd-uhs-sdr104;
+	sd-uhs-sdr50;
+	vmmc-supply = <&mt6357_vmch_reg>;
+	vqmmc-supply = <&mt6357_vio18_reg>;
+	status = "okay";
+};
+
 &mt6357_pmic {
 	interrupts-extended = <&pio 145 IRQ_TYPE_LEVEL_HIGH>;
 	interrupt-controller;
@@ -118,6 +154,108 @@ pins {
 		};
 	};
 
+	mmc0_default_pins: mmc0-default-pins {
+		clk-pins {
+			pinmux = <MT8365_PIN_99_MSDC0_CLK__FUNC_MSDC0_CLK>;
+			bias-pull-down;
+		};
+
+		cmd-dat-pins {
+			pinmux = <MT8365_PIN_103_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
+				 <MT8365_PIN_102_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
+				 <MT8365_PIN_101_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
+				 <MT8365_PIN_100_MSDC0_DAT3__FUNC_MSDC0_DAT3>,
+				 <MT8365_PIN_96_MSDC0_DAT4__FUNC_MSDC0_DAT4>,
+				 <MT8365_PIN_95_MSDC0_DAT5__FUNC_MSDC0_DAT5>,
+				 <MT8365_PIN_94_MSDC0_DAT6__FUNC_MSDC0_DAT6>,
+				 <MT8365_PIN_93_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
+				 <MT8365_PIN_98_MSDC0_CMD__FUNC_MSDC0_CMD>;
+			input-enable;
+			bias-pull-up;
+		};
+
+		rst-pins {
+			pinmux = <MT8365_PIN_97_MSDC0_RSTB__FUNC_MSDC0_RSTB>;
+			bias-pull-up;
+		};
+	};
+
+	mmc0_uhs_pins: mmc0-uhs-pins {
+		clk-pins {
+			pinmux = <MT8365_PIN_99_MSDC0_CLK__FUNC_MSDC0_CLK>;
+			drive-strength = <MTK_DRIVE_10mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+		};
+
+		cmd-dat-pins {
+			pinmux = <MT8365_PIN_103_MSDC0_DAT0__FUNC_MSDC0_DAT0>,
+				 <MT8365_PIN_102_MSDC0_DAT1__FUNC_MSDC0_DAT1>,
+				 <MT8365_PIN_101_MSDC0_DAT2__FUNC_MSDC0_DAT2>,
+				 <MT8365_PIN_100_MSDC0_DAT3__FUNC_MSDC0_DAT3>,
+				 <MT8365_PIN_96_MSDC0_DAT4__FUNC_MSDC0_DAT4>,
+				 <MT8365_PIN_95_MSDC0_DAT5__FUNC_MSDC0_DAT5>,
+				 <MT8365_PIN_94_MSDC0_DAT6__FUNC_MSDC0_DAT6>,
+				 <MT8365_PIN_93_MSDC0_DAT7__FUNC_MSDC0_DAT7>,
+				 <MT8365_PIN_98_MSDC0_CMD__FUNC_MSDC0_CMD>;
+			input-enable;
+			drive-strength = <MTK_DRIVE_10mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+		};
+
+		ds-pins {
+			pinmux = <MT8365_PIN_104_MSDC0_DSL__FUNC_MSDC0_DSL>;
+			drive-strength = <MTK_DRIVE_10mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+		};
+
+		rst-pins {
+			pinmux = <MT8365_PIN_97_MSDC0_RSTB__FUNC_MSDC0_RSTB>;
+			drive-strength = <MTK_DRIVE_10mA>;
+			bias-pull-up;
+		};
+	};
+
+	mmc1_default_pins: mmc1-default-pins {
+		cd-pins {
+			pinmux = <MT8365_PIN_76_CMDAT8__FUNC_GPIO76>;
+			bias-pull-up;
+		};
+
+		clk-pins {
+			pinmux = <MT8365_PIN_88_MSDC1_CLK__FUNC_MSDC1_CLK>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+		};
+
+		cmd-dat-pins {
+			pinmux = <MT8365_PIN_89_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
+				 <MT8365_PIN_90_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
+				 <MT8365_PIN_91_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
+				 <MT8365_PIN_92_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
+				 <MT8365_PIN_87_MSDC1_CMD__FUNC_MSDC1_CMD>;
+			input-enable;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+		};
+	};
+
+	mmc1_uhs_pins: mmc1-uhs-pins {
+		clk-pins {
+			pinmux = <MT8365_PIN_88_MSDC1_CLK__FUNC_MSDC1_CLK>;
+			drive-strength = <MTK_DRIVE_8mA>;
+			bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+		};
+
+		cmd-dat-pins {
+			pinmux = <MT8365_PIN_89_MSDC1_DAT0__FUNC_MSDC1_DAT0>,
+				 <MT8365_PIN_90_MSDC1_DAT1__FUNC_MSDC1_DAT1>,
+				 <MT8365_PIN_91_MSDC1_DAT2__FUNC_MSDC1_DAT2>,
+				 <MT8365_PIN_92_MSDC1_DAT3__FUNC_MSDC1_DAT3>,
+				 <MT8365_PIN_87_MSDC1_CMD__FUNC_MSDC1_CMD>;
+			input-enable;
+			drive-strength = <MTK_DRIVE_6mA>;
+			bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+		};
+	};
+
 	uart0_pins: uart0-pins {
 		pins {
 			pinmux = <MT8365_PIN_35_URXD0__FUNC_URXD0>,

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v7 06/11] arm64: dts: mediatek: set vmc regulator as always on
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
                   ` (4 preceding siblings ...)
  2023-05-11 16:29 ` [PATCH v7 05/11] arm64: dts: mediatek: add mmc " Alexandre Mergnat
@ 2023-05-11 16:29 ` amergnat
  2023-05-15 11:44   ` AngeloGioacchino Del Regno
  2023-05-11 16:29 ` [PATCH v7 07/11] arm64: dts: mediatek: add usb controller support for mt8365-evk Alexandre Mergnat
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 17+ messages in thread
From: amergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Fabien Parent, Kevin Hilman

From: Fabien Parent <fparent@baylibre.com>

On downstream, we observe that the MSDC IP (used by the emmc, the micro
SD card and the WiFi) isn't working properly if the VMC regulator is
shutdown.

Make sure it is always on.

Signed-off-by: Fabien Parent <fparent@baylibre.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
index 752007d0598e..5d69b39c8746 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
@@ -137,6 +137,11 @@ &mt6357_pmic {
 	#interrupt-cells = <2>;
 };
 
+/* Needed by MSDC IP */
+&mt6357_vmc_reg {
+	regulator-always-on;
+};
+
 &pio {
 	gpio_keys: gpio-keys-pins {
 		pins {

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v7 07/11] arm64: dts: mediatek: add usb controller support for mt8365-evk
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
                   ` (5 preceding siblings ...)
  2023-05-11 16:29 ` [PATCH v7 06/11] arm64: dts: mediatek: set vmc regulator as always on amergnat
@ 2023-05-11 16:29 ` Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 08/11] arm64: dts: mediatek: add ethernet " Alexandre Mergnat
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Kevin Hilman

This patch add support for SuperSpeed USB, in OTG mode, on micro connector.
It also add support for the Extensible Host Controller Interface USB.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
index 5d69b39c8746..3a472f620ac0 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
@@ -314,6 +314,28 @@ &pwm {
 	status = "okay";
 };
 
+&ssusb {
+	dr_mode = "otg";
+	maximum-speed = "high-speed";
+	pinctrl-0 = <&usb_pins>;
+	pinctrl-names = "default";
+	usb-role-switch;
+	vusb33-supply = <&mt6357_vusb33_reg>;
+	status = "okay";
+
+	connector {
+		compatible = "gpio-usb-b-connector", "usb-b-connector";
+		id-gpios = <&pio 17 GPIO_ACTIVE_HIGH>;
+		type = "micro";
+		vbus-supply = <&usb_otg_vbus>;
+	};
+};
+
+&usb_host {
+	vusb33-supply = <&mt6357_vusb33_reg>;
+	status = "okay";
+};
+
 &uart0 {
 	pinctrl-0 = <&uart0_pins>;
 	pinctrl-names = "default";

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v7 08/11] arm64: dts: mediatek: add ethernet support for mt8365-evk
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
                   ` (6 preceding siblings ...)
  2023-05-11 16:29 ` [PATCH v7 07/11] arm64: dts: mediatek: add usb controller support for mt8365-evk Alexandre Mergnat
@ 2023-05-11 16:29 ` Alexandre Mergnat
  2023-05-15 11:47   ` AngeloGioacchino Del Regno
  2023-05-11 16:29 ` [PATCH v7 09/11] arm64: dts: mediatek: add OPP support for mt8365 SoC Alexandre Mergnat
                   ` (2 subsequent siblings)
  10 siblings, 1 reply; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Kevin Hilman

- Enable "vibr" and "vsim2" regulators to power the ethernet chip.

Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 57 +++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
index 3a472f620ac0..cf81dace466a 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
@@ -88,6 +88,28 @@ optee_reserved: optee@43200000 {
 	};
 };
 
+&ethernet {
+	pinctrl-0 = <&ethernet_pins>;
+	pinctrl-names = "default";
+	phy-handle = <&eth_phy>;
+	phy-mode = "rmii";
+	/*
+	 * Ethernet and HDMI (DSI0) are sharing pins.
+	 * Only one can be enabled at a time and require the physical switch
+	 * SW2101 to be set on LAN position
+	 */
+	status = "disabled";
+
+	mdio {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		eth_phy: ethernet-phy@0 {
+			reg = <0>;
+		};
+	};
+};
+
 &i2c0 {
 	clock-frequency = <100000>;
 	pinctrl-0 = <&i2c0_pins>;
@@ -137,12 +159,47 @@ &mt6357_pmic {
 	#interrupt-cells = <2>;
 };
 
+/* Needed by analog switch (multiplexer), HDMI and ethernet */
+&mt6357_vibr_reg {
+	regulator-always-on;
+};
+
 /* Needed by MSDC IP */
 &mt6357_vmc_reg {
 	regulator-always-on;
 };
 
+/* Needed by ethernet */
+&mt6357_vsim2_reg {
+	regulator-always-on;
+};
+
 &pio {
+	ethernet_pins: ethernet-pins {
+		phy_reset_pins {
+			pinmux = <MT8365_PIN_133_TDM_TX_DATA1__FUNC_GPIO133>;
+		};
+
+		rmii_pins {
+			pinmux = <MT8365_PIN_0_GPIO0__FUNC_EXT_TXD0>,
+				 <MT8365_PIN_1_GPIO1__FUNC_EXT_TXD1>,
+				 <MT8365_PIN_2_GPIO2__FUNC_EXT_TXD2>,
+				 <MT8365_PIN_3_GPIO3__FUNC_EXT_TXD3>,
+				 <MT8365_PIN_4_GPIO4__FUNC_EXT_TXC>,
+				 <MT8365_PIN_5_GPIO5__FUNC_EXT_RXER>,
+				 <MT8365_PIN_6_GPIO6__FUNC_EXT_RXC>,
+				 <MT8365_PIN_7_GPIO7__FUNC_EXT_RXDV>,
+				 <MT8365_PIN_8_GPIO8__FUNC_EXT_RXD0>,
+				 <MT8365_PIN_9_GPIO9__FUNC_EXT_RXD1>,
+				 <MT8365_PIN_10_GPIO10__FUNC_EXT_RXD2>,
+				 <MT8365_PIN_11_GPIO11__FUNC_EXT_RXD3>,
+				 <MT8365_PIN_12_GPIO12__FUNC_EXT_TXEN>,
+				 <MT8365_PIN_13_GPIO13__FUNC_EXT_COL>,
+				 <MT8365_PIN_14_GPIO14__FUNC_EXT_MDIO>,
+				 <MT8365_PIN_15_GPIO15__FUNC_EXT_MDC>;
+		};
+	};
+
 	gpio_keys: gpio-keys-pins {
 		pins {
 			pinmux = <MT8365_PIN_24_KPCOL0__FUNC_KPCOL0>;

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v7 09/11] arm64: dts: mediatek: add OPP support for mt8365 SoC
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
                   ` (7 preceding siblings ...)
  2023-05-11 16:29 ` [PATCH v7 08/11] arm64: dts: mediatek: add ethernet " Alexandre Mergnat
@ 2023-05-11 16:29 ` Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 10/11] arm64: dts: mediatek: add cpufreq support for mt8365-evk Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 11/11] arm64: dts: mediatek: Add CPU Idle support amergnat
  10 siblings, 0 replies; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Kevin Hilman

In order to have cpufreq support, this patch adds generic Operating
Performance Points support.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/boot/dts/mediatek/mt8365.dtsi | 101 +++++++++++++++++++++++++++++++
 1 file changed, 101 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8365.dtsi b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
index bb45aab2e6a9..cfe0c67ad61f 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
@@ -20,6 +20,91 @@ cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
 
+	cluster0_opp: opp-table-0 {
+		compatible = "operating-points-v2";
+		opp-shared;
+
+		opp-850000000 {
+			opp-hz = /bits/ 64 <850000000>;
+			opp-microvolt = <650000>;
+		};
+
+		opp-918000000 {
+			opp-hz = /bits/ 64 <918000000>;
+			opp-microvolt = <668750>;
+		};
+
+		opp-987000000 {
+			opp-hz = /bits/ 64 <987000000>;
+			opp-microvolt = <687500>;
+		};
+
+		opp-1056000000 {
+			opp-hz = /bits/ 64 <1056000000>;
+			opp-microvolt = <706250>;
+		};
+
+		opp-1125000000 {
+			opp-hz = /bits/ 64 <1125000000>;
+			opp-microvolt = <725000>;
+		};
+
+		opp-1216000000 {
+			opp-hz = /bits/ 64 <1216000000>;
+			opp-microvolt = <750000>;
+		};
+
+		opp-1308000000 {
+			opp-hz = /bits/ 64 <1308000000>;
+			opp-microvolt = <775000>;
+		};
+
+		opp-1400000000 {
+			opp-hz = /bits/ 64 <1400000000>;
+			opp-microvolt = <800000>;
+		};
+
+		opp-1466000000 {
+			opp-hz = /bits/ 64 <1466000000>;
+			opp-microvolt = <825000>;
+		};
+
+		opp-1533000000 {
+			opp-hz = /bits/ 64 <1533000000>;
+			opp-microvolt = <850000>;
+		};
+
+		opp-1633000000 {
+			opp-hz = /bits/ 64 <1633000000>;
+			opp-microvolt = <887500>;
+		};
+
+		opp-1700000000 {
+			opp-hz = /bits/ 64 <1700000000>;
+			opp-microvolt = <912500>;
+		};
+
+		opp-1767000000 {
+			opp-hz = /bits/ 64 <1767000000>;
+			opp-microvolt = <937500>;
+		};
+
+		opp-1834000000 {
+			opp-hz = /bits/ 64 <1834000000>;
+			opp-microvolt = <962500>;
+		};
+
+		opp-1917000000 {
+			opp-hz = /bits/ 64 <1917000000>;
+			opp-microvolt = <993750>;
+		};
+
+		opp-2001000000 {
+			opp-hz = /bits/ 64 <2001000000>;
+			opp-microvolt = <1025000>;
+		};
+	};
+
 		cpu-map {
 			cluster0 {
 				core0 {
@@ -50,6 +135,10 @@ cpu0: cpu@0 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&l2>;
+			clocks = <&mcucfg CLK_MCU_BUS_SEL>,
+				 <&apmixedsys CLK_APMIXED_MAINPLL>;
+			clock-names = "cpu", "intermediate";
+			operating-points-v2 = <&cluster0_opp>;
 		};
 
 		cpu1: cpu@1 {
@@ -65,6 +154,10 @@ cpu1: cpu@1 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&l2>;
+			clocks = <&mcucfg CLK_MCU_BUS_SEL>,
+				 <&apmixedsys CLK_APMIXED_MAINPLL>;
+			clock-names = "cpu", "intermediate", "armpll";
+			operating-points-v2 = <&cluster0_opp>;
 		};
 
 		cpu2: cpu@2 {
@@ -80,6 +173,10 @@ cpu2: cpu@2 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&l2>;
+			clocks = <&mcucfg CLK_MCU_BUS_SEL>,
+				 <&apmixedsys CLK_APMIXED_MAINPLL>;
+			clock-names = "cpu", "intermediate", "armpll";
+			operating-points-v2 = <&cluster0_opp>;
 		};
 
 		cpu3: cpu@3 {
@@ -95,6 +192,10 @@ cpu3: cpu@3 {
 			d-cache-line-size = <64>;
 			d-cache-sets = <256>;
 			next-level-cache = <&l2>;
+			clocks = <&mcucfg CLK_MCU_BUS_SEL>,
+				 <&apmixedsys CLK_APMIXED_MAINPLL>;
+			clock-names = "cpu", "intermediate", "armpll";
+			operating-points-v2 = <&cluster0_opp>;
 		};
 
 		l2: l2-cache {

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v7 10/11] arm64: dts: mediatek: add cpufreq support for mt8365-evk
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
                   ` (8 preceding siblings ...)
  2023-05-11 16:29 ` [PATCH v7 09/11] arm64: dts: mediatek: add OPP support for mt8365 SoC Alexandre Mergnat
@ 2023-05-11 16:29 ` Alexandre Mergnat
  2023-05-11 16:29 ` [PATCH v7 11/11] arm64: dts: mediatek: Add CPU Idle support amergnat
  10 siblings, 0 replies; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Kevin Hilman

In order to have cpufreq support, this patch adds proc-supply and
sram-supply for each CPU.

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
index cf81dace466a..b39b2bdfb82f 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
@@ -88,6 +88,26 @@ optee_reserved: optee@43200000 {
 	};
 };
 
+&cpu0 {
+	proc-supply = <&mt6357_vproc_reg>;
+	sram-supply = <&mt6357_vsram_proc_reg>;
+};
+
+&cpu1 {
+	proc-supply = <&mt6357_vproc_reg>;
+	sram-supply = <&mt6357_vsram_proc_reg>;
+};
+
+&cpu2 {
+	proc-supply = <&mt6357_vproc_reg>;
+	sram-supply = <&mt6357_vsram_proc_reg>;
+};
+
+&cpu3 {
+	proc-supply = <&mt6357_vproc_reg>;
+	sram-supply = <&mt6357_vsram_proc_reg>;
+};
+
 &ethernet {
 	pinctrl-0 = <&ethernet_pins>;
 	pinctrl-names = "default";

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v7 11/11] arm64: dts: mediatek: Add CPU Idle support
  2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
                   ` (9 preceding siblings ...)
  2023-05-11 16:29 ` [PATCH v7 10/11] arm64: dts: mediatek: add cpufreq support for mt8365-evk Alexandre Mergnat
@ 2023-05-11 16:29 ` amergnat
  10 siblings, 0 replies; 17+ messages in thread
From: amergnat @ 2023-05-11 16:29 UTC (permalink / raw)
  To: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	AngeloGioacchino Del Regno, Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Alexandre Mergnat, Amjad Ouled-Ameur,
	Kevin Hilman

From: Amjad Ouled-Ameur <aouledameur@baylibre.com>

MT8365 has 3 CPU Idle states:
- MCDI_CPU. (Multi-Core-Deep-Idle)
- MCDI_CLUSTER.
- DPIDLE. (Deep-Idle)

Signed-off-by: Amjad Ouled-Ameur <aouledameur@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
 arch/arm64/boot/dts/mediatek/mt8365.dtsi | 35 ++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/arch/arm64/boot/dts/mediatek/mt8365.dtsi b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
index cfe0c67ad61f..413496c92069 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
@@ -128,6 +128,7 @@ cpu0: cpu@0 {
 			reg = <0x0>;
 			#cooling-cells = <2>;
 			enable-method = "psci";
+			cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
 			i-cache-size = <0x8000>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -147,6 +148,7 @@ cpu1: cpu@1 {
 			reg = <0x1>;
 			#cooling-cells = <2>;
 			enable-method = "psci";
+			cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
 			i-cache-size = <0x8000>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -166,6 +168,7 @@ cpu2: cpu@2 {
 			reg = <0x2>;
 			#cooling-cells = <2>;
 			enable-method = "psci";
+			cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
 			i-cache-size = <0x8000>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -185,6 +188,7 @@ cpu3: cpu@3 {
 			reg = <0x3>;
 			#cooling-cells = <2>;
 			enable-method = "psci";
+			cpu-idle-states = <&CPU_MCDI &CLUSTER_MCDI &CLUSTER_DPIDLE>;
 			i-cache-size = <0x8000>;
 			i-cache-line-size = <64>;
 			i-cache-sets = <256>;
@@ -198,6 +202,37 @@ cpu3: cpu@3 {
 			operating-points-v2 = <&cluster0_opp>;
 		};
 
+		idle-states {
+			entry-method = "psci";
+
+			CPU_MCDI: cpu-mcdi {
+				compatible = "arm,idle-state";
+				local-timer-stop;
+				arm,psci-suspend-param = <0x00010001>;
+				entry-latency-us = <300>;
+				exit-latency-us = <200>;
+				min-residency-us = <1000>;
+			};
+
+			CLUSTER_MCDI: cluster-mcdi {
+				compatible = "arm,idle-state";
+				local-timer-stop;
+				arm,psci-suspend-param = <0x01010001>;
+				entry-latency-us = <350>;
+				exit-latency-us = <250>;
+				min-residency-us = <1200>;
+			};
+
+			CLUSTER_DPIDLE: cluster-dpidle {
+				compatible = "arm,idle-state";
+				local-timer-stop;
+				arm,psci-suspend-param = <0x01010004>;
+				entry-latency-us = <300>;
+				exit-latency-us = <800>;
+				min-residency-us = <3300>;
+			};
+		};
+
 		l2: l2-cache {
 			compatible = "cache";
 			cache-level = <2>;

-- 
2.25.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v7 02/11] arm64: defconfig: enable Mediatek PMIC key
  2023-05-11 16:29 ` [PATCH v7 02/11] arm64: defconfig: enable Mediatek PMIC key Alexandre Mergnat
@ 2023-05-15 11:35   ` AngeloGioacchino Del Regno
  0 siblings, 0 replies; 17+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-05-15 11:35 UTC (permalink / raw)
  To: Alexandre Mergnat, Catalin Marinas, Will Deacon, Wim Van Sebroeck,
	Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Kevin Hilman

Il 11/05/23 18:29, Alexandre Mergnat ha scritto:
> Some Mediatek PMIC devices can manage Power and Home keys (buttons).
> This patch enable the driver which handle the 2 keys managed by the
> Mediatek PMIC.
> 
> Tested-by: Kevin Hilman <khilman@baylibre.com>
> Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>

Having this at least as a module helps CIs, so:

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v7 06/11] arm64: dts: mediatek: set vmc regulator as always on
  2023-05-11 16:29 ` [PATCH v7 06/11] arm64: dts: mediatek: set vmc regulator as always on amergnat
@ 2023-05-15 11:44   ` AngeloGioacchino Del Regno
  2023-05-22 14:24     ` Alexandre Mergnat
  0 siblings, 1 reply; 17+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-05-15 11:44 UTC (permalink / raw)
  To: amergnat, Catalin Marinas, Will Deacon, Wim Van Sebroeck,
	Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Fabien Parent, Kevin Hilman

Il 11/05/23 18:29, amergnat@baylibre.com ha scritto:
> From: Fabien Parent <fparent@baylibre.com>
> 
> On downstream, we observe that the MSDC IP (used by the emmc, the micro
> SD card and the WiFi) isn't working properly if the VMC regulator is
> shutdown.
> 
> Make sure it is always on.

I don't understand the power tree of this board: if your VQMMC is VIO18 and
*not* VMC, why is that required?

The real question is if we're facing one more supply as requirement for newer
MediaTek SoCs and whether it would be a better idea to add that to the actual
driver (and/or as a power domain supply!!!) to both better represent the power
tree and to eventually allow deep power saving states.

Regards,
Angelo

> 
> Signed-off-by: Fabien Parent <fparent@baylibre.com>
> Tested-by: Kevin Hilman <khilman@baylibre.com>
> Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
> ---
>   arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> index 752007d0598e..5d69b39c8746 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> +++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> @@ -137,6 +137,11 @@ &mt6357_pmic {
>   	#interrupt-cells = <2>;
>   };
>   
> +/* Needed by MSDC IP */
> +&mt6357_vmc_reg {
> +	regulator-always-on;
> +};
> +
>   &pio {
>   	gpio_keys: gpio-keys-pins {
>   		pins {
> 



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v7 08/11] arm64: dts: mediatek: add ethernet support for mt8365-evk
  2023-05-11 16:29 ` [PATCH v7 08/11] arm64: dts: mediatek: add ethernet " Alexandre Mergnat
@ 2023-05-15 11:47   ` AngeloGioacchino Del Regno
  2023-05-22 14:23     ` Alexandre Mergnat
  0 siblings, 1 reply; 17+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-05-15 11:47 UTC (permalink / raw)
  To: Alexandre Mergnat, Catalin Marinas, Will Deacon, Wim Van Sebroeck,
	Guenter Roeck, Rob Herring, Krzysztof Kozlowski, Matthias Brugger,
	Conor Dooley
  Cc: linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Kevin Hilman

Il 11/05/23 18:29, Alexandre Mergnat ha scritto:
> - Enable "vibr" and "vsim2" regulators to power the ethernet chip.
> 
> Tested-by: Kevin Hilman <khilman@baylibre.com>
> Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
> ---
>   arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 57 +++++++++++++++++++++++++++++
>   1 file changed, 57 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> index 3a472f620ac0..cf81dace466a 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> +++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> @@ -88,6 +88,28 @@ optee_reserved: optee@43200000 {
>   	};
>   };
>   
> +&ethernet {
> +	pinctrl-0 = <&ethernet_pins>;
> +	pinctrl-names = "default";
> +	phy-handle = <&eth_phy>;
> +	phy-mode = "rmii";
> +	/*
> +	 * Ethernet and HDMI (DSI0) are sharing pins.
> +	 * Only one can be enabled at a time and require the physical switch
> +	 * SW2101 to be set on LAN position
> +	 */
> +	status = "disabled";
> +
> +	mdio {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		eth_phy: ethernet-phy@0 {
> +			reg = <0>;
> +		};
> +	};
> +};
> +
>   &i2c0 {
>   	clock-frequency = <100000>;
>   	pinctrl-0 = <&i2c0_pins>;
> @@ -137,12 +159,47 @@ &mt6357_pmic {
>   	#interrupt-cells = <2>;
>   };
>   
> +/* Needed by analog switch (multiplexer), HDMI and ethernet */

What part of the ethernet HW needs this regulator?

> +&mt6357_vibr_reg {
> +	regulator-always-on;
> +};
> +
>   /* Needed by MSDC IP */
>   &mt6357_vmc_reg {
>   	regulator-always-on;
>   };
>   
> +/* Needed by ethernet */

Same question for this one. If a device needs us to turn on a regulator in
order for it to be powered (read: if the supply is not fixed-on), setting
that supply as always-on is not beneficial for anyone, as eventually in a
power-off sleep/idle/whatever-pm state, this device (whole chip or IP) *will*
leak some amount of power.

If hardware engineers decided to connect a device to a supply that *can be*
shut down entirely there must be a reason, right? :-)

Regards,
Angelo


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v7 08/11] arm64: dts: mediatek: add ethernet support for mt8365-evk
  2023-05-15 11:47   ` AngeloGioacchino Del Regno
@ 2023-05-22 14:23     ` Alexandre Mergnat
  0 siblings, 0 replies; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-22 14:23 UTC (permalink / raw)
  To: AngeloGioacchino Del Regno
  Cc: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger, Conor Dooley,
	linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Kevin Hilman

Hi Angelo,

Le lun. 15 mai 2023 à 13:47, AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com> a écrit :
>
> Il 11/05/23 18:29, Alexandre Mergnat ha scritto:
> > - Enable "vibr" and "vsim2" regulators to power the ethernet chip.
> >
> > Tested-by: Kevin Hilman <khilman@baylibre.com>
> > Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
> > ---
> >   arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 57 +++++++++++++++++++++++++++++
> >   1 file changed, 57 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> > index 3a472f620ac0..cf81dace466a 100644
> > --- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> > +++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> > @@ -88,6 +88,28 @@ optee_reserved: optee@43200000 {
> >       };
> >   };
> >
> > +&ethernet {
> > +     pinctrl-0 = <&ethernet_pins>;
> > +     pinctrl-names = "default";
> > +     phy-handle = <&eth_phy>;
> > +     phy-mode = "rmii";
> > +     /*
> > +      * Ethernet and HDMI (DSI0) are sharing pins.
> > +      * Only one can be enabled at a time and require the physical switch
> > +      * SW2101 to be set on LAN position
> > +      */
> > +     status = "disabled";
> > +
> > +     mdio {
> > +             #address-cells = <1>;
> > +             #size-cells = <0>;
> > +
> > +             eth_phy: ethernet-phy@0 {
> > +                     reg = <0>;
> > +             };
> > +     };
> > +};
> > +
> >   &i2c0 {
> >       clock-frequency = <100000>;
> >       pinctrl-0 = <&i2c0_pins>;
> > @@ -137,12 +159,47 @@ &mt6357_pmic {
> >       #interrupt-cells = <2>;
> >   };
> >
> > +/* Needed by analog switch (multiplexer), HDMI and ethernet */
>
> What part of the ethernet HW needs this regulator?
>
> > +&mt6357_vibr_reg {
> > +     regulator-always-on;
> > +};
> > +
> >   /* Needed by MSDC IP */
> >   &mt6357_vmc_reg {
> >       regulator-always-on;
> >   };
> >
> > +/* Needed by ethernet */
>
> Same question for this one. If a device needs us to turn on a regulator in
> order for it to be powered (read: if the supply is not fixed-on), setting
> that supply as always-on is not beneficial for anyone, as eventually in a
> power-off sleep/idle/whatever-pm state, this device (whole chip or IP) *will*
> leak some amount of power.
>
> If hardware engineers decided to connect a device to a supply that *can be*
> shut down entirely there must be a reason, right? :-)

In theory yes, but mistakes happen. For MT8195, ethernet is supplied by VSYS.
Curiously, all other SoC except one haven't the regulator drived by
the mdio driver.
Why is it powered by a regulator which can be turned off here, whereas
the ethernet
chip is able to Wake-on-Lan ? Maybe the vibrator regulator has been chosen
to supply enough current for all analog switches (to share pins between ethernet
and HDMI), I don't know.

Should I create a new mdio binding/driver/node related to the ethernet chip to
enable/disable power ? Currently I found only one who does that: "mdio-sun4i",
so I'm not really confident.
OR
Should I introduce the regulator management directly into mtk_star_emac
binding/drive, even if it's more related to mdio ?
OR
Should I put a comment in the DTS which warns that vibr & vmc must be on
to have ethernet working ?

Do you have a better suggestion?

Finally, we are speaking about power optimization where the feature isn't
already supported for this SoC. Can we do this step by step ? Because setting
the regulators always-on doesn't look bad when ethernet is enabled (for WoL).

Do you have a better suggestion?

Regards,
Alex

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v7 06/11] arm64: dts: mediatek: set vmc regulator as always on
  2023-05-15 11:44   ` AngeloGioacchino Del Regno
@ 2023-05-22 14:24     ` Alexandre Mergnat
  0 siblings, 0 replies; 17+ messages in thread
From: Alexandre Mergnat @ 2023-05-22 14:24 UTC (permalink / raw)
  To: AngeloGioacchino Del Regno
  Cc: Catalin Marinas, Will Deacon, Wim Van Sebroeck, Guenter Roeck,
	Rob Herring, Krzysztof Kozlowski, Matthias Brugger, Conor Dooley,
	linux-arm-kernel, linux-kernel, linux-watchdog, devicetree,
	linux-mediatek, Fabien Parent, Kevin Hilman

Hi Angelo

Le lun. 15 mai 2023 à 13:44, AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com> a écrit :
>
> Il 11/05/23 18:29, amergnat@baylibre.com ha scritto:
> > From: Fabien Parent <fparent@baylibre.com>
> >
> > On downstream, we observe that the MSDC IP (used by the emmc, the micro
> > SD card and the WiFi) isn't working properly if the VMC regulator is
> > shutdown.
> >
> > Make sure it is always on.
>
> I don't understand the power tree of this board: if your VQMMC is VIO18 and
> *not* VMC, why is that required?

I don't have the full history of the downstream, but I think there is
a schematic
issue or HW conception issue because I see an extra pin "MSDC1_INSI" (which
isn't part of MSDC IP) with VIO18 pull-up. That's why, I guess, VQMMC = VIO18
for MMC1. But since DVDD28_MSDC1 = VMC, VQMMC should be equal
to VMC.

The always-on will be removed.

Regards,
Alexandre

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2023-05-22 14:25 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-11 16:29 [PATCH v7 00/11] Improve the MT8365 SoC and EVK board support Alexandre Mergnat
2023-05-11 16:29 ` [PATCH v7 01/11] arm64: defconfig: enable MT6357 regulator Alexandre Mergnat
2023-05-11 16:29 ` [PATCH v7 02/11] arm64: defconfig: enable Mediatek PMIC key Alexandre Mergnat
2023-05-15 11:35   ` AngeloGioacchino Del Regno
2023-05-11 16:29 ` [PATCH v7 03/11] arm64: dts: mediatek: add watchdog support for mt8365 SoC Alexandre Mergnat
2023-05-11 16:29 ` [PATCH v7 04/11] arm64: dts: mediatek: add mt6357 PMIC support for mt8365-evk Alexandre Mergnat
2023-05-11 16:29 ` [PATCH v7 05/11] arm64: dts: mediatek: add mmc " Alexandre Mergnat
2023-05-11 16:29 ` [PATCH v7 06/11] arm64: dts: mediatek: set vmc regulator as always on amergnat
2023-05-15 11:44   ` AngeloGioacchino Del Regno
2023-05-22 14:24     ` Alexandre Mergnat
2023-05-11 16:29 ` [PATCH v7 07/11] arm64: dts: mediatek: add usb controller support for mt8365-evk Alexandre Mergnat
2023-05-11 16:29 ` [PATCH v7 08/11] arm64: dts: mediatek: add ethernet " Alexandre Mergnat
2023-05-15 11:47   ` AngeloGioacchino Del Regno
2023-05-22 14:23     ` Alexandre Mergnat
2023-05-11 16:29 ` [PATCH v7 09/11] arm64: dts: mediatek: add OPP support for mt8365 SoC Alexandre Mergnat
2023-05-11 16:29 ` [PATCH v7 10/11] arm64: dts: mediatek: add cpufreq support for mt8365-evk Alexandre Mergnat
2023-05-11 16:29 ` [PATCH v7 11/11] arm64: dts: mediatek: Add CPU Idle support amergnat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox