]> www.infradead.org Git - linux.git/commitdiff
arm64: dts: amlogic: enable some device nodes for S4
authorXianwei Zhao <xianwei.zhao@amlogic.com>
Tue, 9 Jul 2024 09:32:03 +0000 (17:32 +0800)
committerNeil Armstrong <neil.armstrong@linaro.org>
Tue, 20 Aug 2024 15:25:39 +0000 (17:25 +0200)
Enable more device nodes for AQ222 base S4, including
SD, regulator and ethnernet node.

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Xianwei Zhao <xianwei.zhao@amlogic.com>
Link: https://lore.kernel.org/r/20240709-s4_node-v2-1-b9a218603c31@amlogic.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
arch/arm64/boot/dts/amlogic/meson-s4-s805x2-aq222.dts
arch/arm64/boot/dts/amlogic/meson-s4.dtsi

index 983caddc409c35b4b396650935a1cfb84ab10d21..6730c44642d2910d42ec0c4adf49fefc3514dbec 100644 (file)
                        no-map;
                };
        };
+
+       sdio_32k: sdio-32k {
+               compatible = "pwm-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
+               clocks = <&sdio_32k>;
+               clock-names = "ext_clock";
+       };
+
+       main_12v: regulator-main-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-always-on;
+       };
+
+       vddao_3v3: regulator-vddao-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDAO_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&main_12v>;
+               regulator-always-on;
+       };
+
+       vddio_ao1v8: regulator-vddio-ao1v8 {
+              compatible = "regulator-fixed";
+              regulator-name = "VDDIO_AO1V8";
+              regulator-min-microvolt = <1800000>;
+              regulator-max-microvolt = <1800000>;
+              vin-supply = <&vddao_3v3>;
+              regulator-always-on;
+       };
+
+       /* SY8120B1ABC DC/DC Regulator. */
+       vddcpu: regulator-vddcpu {
+               compatible = "pwm-regulator";
+
+               regulator-name = "VDDCPU";
+               regulator-min-microvolt = <689000>;
+               regulator-max-microvolt = <1049000>;
+
+               vin-supply = <&main_12v>;
+
+               pwms = <&pwm_ij 1 1500 0>;
+               pwm-dutycycle-range = <100 0>;
+
+               regulator-boot-on;
+               regulator-always-on;
+               /* Voltage Duty-Cycle */
+               voltage-table = <1049000 0>,
+                               <1039000 3>,
+                               <1029000 6>,
+                               <1019000 9>,
+                               <1009000 12>,
+                               <999000 14>,
+                               <989000 17>,
+                               <979000 20>,
+                               <969000 23>,
+                               <959000 26>,
+                               <949000 29>,
+                               <939000 31>,
+                               <929000 34>,
+                               <919000 37>,
+                               <909000 40>,
+                               <899000 43>,
+                               <889000 45>,
+                               <879000 48>,
+                               <869000 51>,
+                               <859000 54>,
+                               <849000 56>,
+                               <839000 59>,
+                               <829000 62>,
+                               <819000 65>,
+                               <809000 68>,
+                               <799000 70>,
+                               <789000 73>,
+                               <779000 76>,
+                               <769000 79>,
+                               <759000 81>,
+                               <749000 84>,
+                               <739000 87>,
+                               <729000 89>,
+                               <719000 92>,
+                               <709000 95>,
+                               <699000 98>,
+                               <689000 100>;
+       };
+};
+
+&pwm_ef {
+       status = "okay";
+       pinctrl-0 = <&pwm_e_pins1>;
+       pinctrl-names = "default";
+};
+
+&pwm_ij {
+       status = "okay";
 };
 
 &uart_b {
        pinctrl-names = "default";
 };
 
+&sdio {
+       pinctrl-0 = <&sdio_pins>;
+       pinctrl-1 = <&sdio_clk_gate_pins>;
+       pinctrl-names = "default", "clk-gate";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       max-frequency = <200000000>;
+       non-removable;
+       disable-wp;
+       no-sd;
+       no-mmc;
+       vmmc-supply = <&vddao_3v3>;
+       vqmmc-supply = <&vddio_ao1v8>;
+};
+
+&sd {
+       status = "okay";
+       pinctrl-0 = <&sdcard_pins>;
+       pinctrl-1 = <&sdcard_clk_gate_pins>;
+       pinctrl-names = "default", "clk-gate";
+       bus-width = <4>;
+       cap-sd-highspeed;
+       max-frequency = <200000000>;
+       disable-wp;
+
+       cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&vddao_3v3>;
+       vqmmc-supply = <&vddao_3v3>;
+};
+
 &nand {
        status = "okay";
        #address-cells = <1>;
        pinctrl-0 = <&spicc0_pins_x>;
        cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
 };
+
+&ethmac {
+       status = "okay";
+       phy-handle = <&internal_ephy>;
+       phy-mode = "rmii";
+};
index b686eacb966207e2d17b0c10e68daea25ee6babf..c11c947fa18c88bf225a72a17897e49bf510086d 100644 (file)
@@ -10,6 +10,7 @@
 #include <dt-bindings/clock/amlogic,s4-pll-clkc.h>
 #include <dt-bindings/clock/amlogic,s4-peripherals-clkc.h>
 #include <dt-bindings/power/meson-s4-power.h>
+#include <dt-bindings/reset/amlogic,meson-s4-reset.h>
 
 / {
        cpus {
                                        };
                                };
 
+                               sdcard_pins: sdcard-pins {
+                                       mux {
+                                               groups = "sdcard_d0_c",
+                                                        "sdcard_d1_c",
+                                                        "sdcard_d2_c",
+                                                        "sdcard_d3_c",
+                                                        "sdcard_clk_c",
+                                                        "sdcard_cmd_c";
+                                               function = "sdcard";
+                                               bias-pull-up;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               sdcard_clk_gate_pins: sdcard-clk-gate-pins {
+                                       mux {
+                                               groups = "GPIOC_4";
+                                               function = "gpio_periphs";
+                                               bias-pull-down;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               emmc_pins: emmc-pins {
+                                       mux-0 {
+                                               groups = "emmc_nand_d0",
+                                                        "emmc_nand_d1",
+                                                        "emmc_nand_d2",
+                                                        "emmc_nand_d3",
+                                                        "emmc_nand_d4",
+                                                        "emmc_nand_d5",
+                                                        "emmc_nand_d6",
+                                                        "emmc_nand_d7",
+                                                        "emmc_cmd";
+                                               function = "emmc";
+                                               bias-pull-up;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                                       mux-1 {
+                                               groups = "emmc_clk";
+                                               function = "emmc";
+                                               bias-pull-up;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               emmc_ds_pins: emmc-ds-pins {
+                                       mux {
+                                               groups = "emmc_nand_ds";
+                                               function = "emmc";
+                                               bias-pull-down;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               emmc_clk_gate_pins: emmc-clk-gate-pins {
+                                       mux {
+                                               groups = "GPIOB_8";
+                                               function = "gpio_periphs";
+                                               bias-pull-down;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               sdio_pins: sdio-pins {
+                                       mux {
+                                               groups = "sdio_d0",
+                                                        "sdio_d1",
+                                                        "sdio_d2",
+                                                        "sdio_d3",
+                                                        "sdio_clk",
+                                                        "sdio_cmd";
+                                               function = "sdio";
+                                               bias-pull-up;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
+                               sdio_clk_gate_pins: sdio-clk-gate-pins {
+                                       mux {
+                                               groups = "GPIOX_4";
+                                               function = "gpio_periphs";
+                                               bias-pull-down;
+                                               drive-strength-microamp = <4000>;
+                                       };
+                               };
+
                                spicc0_pins_x: spicc0-pins_x {
                                        mux {
                                                groups = "spi_a_mosi_x",
                                compatible = "snps,dwmac-mdio";
                        };
                };
+
+               sdio: mmc@fe088000 {
+                       compatible = "amlogic,meson-axg-mmc";
+                       reg = <0x0 0xfe088000 0x0 0x800>;
+                       interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clkc_periphs CLKID_SDEMMC_A>,
+                                <&xtal>,
+                                <&clkc_pll CLKID_FCLK_DIV2>;
+                       clock-names = "core", "clkin0", "clkin1";
+                       resets = <&reset RESET_SD_EMMC_A>;
+                       cap-sdio-irq;
+                       keep-power-in-suspend;
+                       status = "disabled";
+               };
+
+               sd: mmc@fe08a000 {
+                       compatible = "amlogic,meson-axg-mmc";
+                       reg = <0x0 0xfe08a000 0x0 0x800>;
+                       interrupts = <GIC_SPI 177 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&clkc_periphs CLKID_SDEMMC_B>,
+                                <&clkc_periphs CLKID_SD_EMMC_B>,
+                                <&clkc_pll CLKID_FCLK_DIV2>;
+                       clock-names = "core", "clkin0", "clkin1";
+                       resets = <&reset RESET_SD_EMMC_B>;
+                       status = "disabled";
+               };
+
+               emmc: mmc@fe08c000 {
+                       compatible = "amlogic,meson-axg-mmc";
+                       reg = <0x0 0xfe08c000 0x0 0x800>;
+                       interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&clkc_periphs CLKID_NAND>,
+                                <&xtal>,
+                                <&clkc_pll CLKID_FCLK_DIV2>;
+                       clock-names = "core", "clkin0", "clkin1";
+                       resets = <&reset RESET_NAND_EMMC>;
+                       no-sdio;
+                       no-sd;
+                       status = "disabled";
+               };
        };
 };