mbox series

[v5,00/12] Improve the MT8365 SoC and EVK board support

Message ID 20230203-evk-board-support-v5-0-1883c1b405ad@baylibre.com
Headers show
Series Improve the MT8365 SoC and EVK board support | expand

Message

Alexandre Mergnat April 7, 2023, 12:59 p.m. UTC
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.

This series depends to anothers which add support for MT8365 EVK board
[1], add the MT8365 I2C support [2] (both are currently applied) and
finally the pinctrl binding cleanup [3].

=== Build:

To test this serie, cherry-pick patches from the dependent series ([1],[2],[3])
and the applied patches from this serie (documented in the "Changes" below).
Be carefull, the pinctrl serie [3] is rebased to linusw/linux-pinctrl,
cherry-pick will not be straightforward.
Finally, cherry-pick this serie.

You can also take my branch [4] which have all the needed patches
retrieved from the instructions above.

Use the arm64 defconfig to make the build.

Regards,
Alex

[1]: https://lore.kernel.org/all/20230309213501.794764-1-bero@baylibre.com/
[2]: https://lore.kernel.org/all/20221122-mt8365-i2c-support-v6-0-e1009c8afd53@baylibre.com/
[3]: https://lore.kernel.org/all/20230327-cleanup-pinctrl-binding-v3-0-6f56d5c7a8de@baylibre.com/
[4]: https://gitlab.baylibre.com/baylibre/mediatek/bsp/linux/-/commits/amergnat/i350-evk-board-support

Signed-off-by: Alexandre Mergnat <amergnat@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 (10):
      arm64: defconfig: enable MT6357 regulator
      arm64: defconfig: enable Mediatek PMIC key
      dt-bindings: watchdog: mediatek,mtk-wdt: add mt8365
      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

 .../bindings/watchdog/mediatek,mtk-wdt.yaml        |   1 +
 arch/arm64/boot/dts/mediatek/mt8365-evk.dts        | 249 +++++++++++++++++++++
 arch/arm64/boot/dts/mediatek/mt8365.dtsi           | 142 ++++++++++++
 arch/arm64/configs/defconfig                       |   3 +
 4 files changed, 395 insertions(+)
---
base-commit: 4f2a499a344b36ebb325e610265452ea88541116
change-id: 20230203-evk-board-support-d5b7a839ed7b

Best regards,

Comments

Alexandre Mergnat April 7, 2023, 1:08 p.m. UTC | #1
+ To: Catalin Marinas <catalin.marinas@arm.com>
+ To: Will Deacon <will@kernel.org>

Sorry for the noise.

Regards,
Alexandre

Le ven. 7 avr. 2023 à 14:59, Alexandre Mergnat <amergnat@baylibre.com> a écrit :
>
> 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.
>
> This series depends to anothers which add support for MT8365 EVK board
> [1], add the MT8365 I2C support [2] (both are currently applied) and
> finally the pinctrl binding cleanup [3].
>
> === Build:
>
> To test this serie, cherry-pick patches from the dependent series ([1],[2],[3])
> and the applied patches from this serie (documented in the "Changes" below).
> Be carefull, the pinctrl serie [3] is rebased to linusw/linux-pinctrl,
> cherry-pick will not be straightforward.
> Finally, cherry-pick this serie.
>
> You can also take my branch [4] which have all the needed patches
> retrieved from the instructions above.
>
> Use the arm64 defconfig to make the build.
>
> Regards,
> Alex
>
> [1]: https://lore.kernel.org/all/20230309213501.794764-1-bero@baylibre.com/
> [2]: https://lore.kernel.org/all/20221122-mt8365-i2c-support-v6-0-e1009c8afd53@baylibre.com/
> [3]: https://lore.kernel.org/all/20230327-cleanup-pinctrl-binding-v3-0-6f56d5c7a8de@baylibre.com/
> [4]: https://gitlab.baylibre.com/baylibre/mediatek/bsp/linux/-/commits/amergnat/i350-evk-board-support
>
> Signed-off-by: Alexandre Mergnat <amergnat@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 (10):
>       arm64: defconfig: enable MT6357 regulator
>       arm64: defconfig: enable Mediatek PMIC key
>       dt-bindings: watchdog: mediatek,mtk-wdt: add mt8365
>       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
>
>  .../bindings/watchdog/mediatek,mtk-wdt.yaml        |   1 +
>  arch/arm64/boot/dts/mediatek/mt8365-evk.dts        | 249 +++++++++++++++++++++
>  arch/arm64/boot/dts/mediatek/mt8365.dtsi           | 142 ++++++++++++
>  arch/arm64/configs/defconfig                       |   3 +
>  4 files changed, 395 insertions(+)
> ---
> base-commit: 4f2a499a344b36ebb325e610265452ea88541116
> change-id: 20230203-evk-board-support-d5b7a839ed7b
>
> Best regards,
> --
> Alexandre Mergnat <amergnat@baylibre.com>
>
Alexandre Mergnat April 7, 2023, 1:10 p.m. UTC | #2
+ To: Catalin Marinas <catalin.marinas@arm.com>
+ To: Will Deacon <will@kernel.org>

Sorry for the noise.

Regards,
Alexandre

Le ven. 7 avr. 2023 à 14:59, Alexandre Mergnat <amergnat@baylibre.com> a écrit :
>
> Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
> ---
>  arch/arm64/configs/defconfig | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
> index e4cb65889ae6..91fad635e565 100644
> --- a/arch/arm64/configs/defconfig
> +++ b/arch/arm64/configs/defconfig
> @@ -406,9 +406,11 @@ CONFIG_MHI_WWAN_MBIM=m
>  CONFIG_INPUT_EVDEV=y
>  CONFIG_KEYBOARD_ADC=m
>  CONFIG_KEYBOARD_GPIO=y
> +CONFIG_KEYBOARD_GPIO_POLLED=m
>  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
>
Alexandre Mergnat April 7, 2023, 1:12 p.m. UTC | #3
+ To: Catalin Marinas <catalin.marinas@arm.com>
+ To: Will Deacon <will@kernel.org>

Sorry for the noise.

Regards,
Alexandre

Le ven. 7 avr. 2023 à 14:59, Alexandre Mergnat <amergnat@baylibre.com> a écrit :
>
> - Add EMMC support on mmc0 (internal memory)
> - Add SD-UHS support on mmc1 (external memory)
>
> 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 a238bd0092d2..cd920d09c3fe 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
>
Alexandre Mergnat April 7, 2023, 1:14 p.m. UTC | #4
+ To: Catalin Marinas <catalin.marinas@arm.com>
+ To: Will Deacon <will@kernel.org>

Sorry for the noise.

Regards,
Alexandre

Le ven. 7 avr. 2023 à 14:59, Alexandre Mergnat <amergnat@baylibre.com> a écrit :
>
> In order to have cpufreq support, this patch adds generic Operating
> Performance Points support.
>
> 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
>
Kevin Hilman April 7, 2023, 5:50 p.m. UTC | #5
Alexandre Mergnat <amergnat@baylibre.com> writes:

> 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.

Tested-by: Kevin Hilman <khilman@baylibre.com>

Thanks for providing the branch with the dependencies.  With that, I
tested basic build & boot on mt8365-evk, and things are working as
expected.

I also enabled `CONFIG_USB_ETH=y` to test with USB ethernet gadget, and
was able use NFSroot, so that's working well also.

Kevin
AngeloGioacchino Del Regno April 11, 2023, 8:21 a.m. UTC | #6
Il 07/04/23 14:59, Alexandre Mergnat ha scritto:
> Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>

There's no commit description. Please add one, saying why this is needed.

I know why, but there's people who don't.

Regards,
Angelo
AngeloGioacchino Del Regno April 11, 2023, 8:22 a.m. UTC | #7
Il 07/04/23 14:59, Alexandre Mergnat ha scritto:
> This power management system chip integration helps to manage regulators
> and keys.
> 
> Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
AngeloGioacchino Del Regno April 11, 2023, 8:23 a.m. UTC | #8
Il 07/04/23 14:59, amergnat@baylibre.com ha scritto:
> From: Fabien Parent <fparent@baylibre.com>
> 
> MSDC1 IP block is powered by VMC. Make sure it is always on.
> 

Can't we set vmc as parent of vemc?

> Signed-off-by: Fabien Parent <fparent@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 cd920d09c3fe..1c36d8f19525 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 MSDC1 */
> +&mt6357_vmc_reg {
> +	regulator-always-on;
> +};
> +
>   &pio {
>   	gpio_keys: gpio-keys-pins {
>   		pins {
>
AngeloGioacchino Del Regno April 11, 2023, 8:24 a.m. UTC | #9
Il 07/04/23 14:59, Alexandre Mergnat ha scritto:
> In order to have cpufreq support, this patch adds generic Operating
> Performance Points support.
> 
> Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Alexandre Mergnat April 11, 2023, 11:17 a.m. UTC | #10
On 11/04/2023 10:23, AngeloGioacchino Del Regno wrote:
> Il 07/04/23 14:59, amergnat@baylibre.com ha scritto:
>> From: Fabien Parent <fparent@baylibre.com>
>>
>> MSDC1 IP block is powered by VMC. Make sure it is always on.
>>
>
> Can't we set vmc as parent of vemc? 

I don't find parent property for regulators. AFAIK, vin-supply is used in other DTS to do that but is it supported by fixed-regulator and gpio-regulator, which is not the case here.
Based on this, I don't think so, but I'm probably missing something.

Regards,
Alexandre
Guenter Roeck April 16, 2023, 3:47 p.m. UTC | #11
On Fri, Apr 07, 2023 at 02:59:22PM +0200, Alexandre Mergnat wrote:
> Add binding description for mediatek,mt8365-wdt
> 
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> Reviewed-by: Matthias Brugger <matthias.bgg@gmail.com>
> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
>  Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml b/Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml
> index 55b34461df1b..66cacea8e47f 100644
> --- a/Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml
> +++ b/Documentation/devicetree/bindings/watchdog/mediatek,mtk-wdt.yaml
> @@ -38,6 +38,7 @@ properties:
>                - mediatek,mt7623-wdt
>                - mediatek,mt7629-wdt
>                - mediatek,mt8173-wdt
> +              - mediatek,mt8365-wdt
>                - mediatek,mt8516-wdt
>            - const: mediatek,mt6589-wdt
>