Commit 67e7607f authored by Jerome Brunet's avatar Jerome Brunet Committed by Kevin Hilman

ARM64: dts: meson: add mmc clk gate pins

Add the pinctrl to switch mmc clk pins in gpio (pulled down) mode. This
is necessary to be able to gate the clk outside of the SoC while
keeping it running in the controller
Signed-off-by: default avatarJerome Brunet <jbrunet@baylibre.com>
Signed-off-by: default avatarKevin Hilman <khilman@baylibre.com>
parent 673ccaac
...@@ -168,7 +168,8 @@ &pwm_ef { ...@@ -168,7 +168,8 @@ &pwm_ef {
&sd_emmc_a { &sd_emmc_a {
status = "okay"; status = "okay";
pinctrl-0 = <&sdio_pins>; pinctrl-0 = <&sdio_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -194,7 +195,8 @@ brcmf: wifi@1 { ...@@ -194,7 +195,8 @@ brcmf: wifi@1 {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -212,7 +214,8 @@ &sd_emmc_b { ...@@ -212,7 +214,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "okay"; status = "okay";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
cap-mmc-highspeed; cap-mmc-highspeed;
......
...@@ -250,7 +250,8 @@ &saradc { ...@@ -250,7 +250,8 @@ &saradc {
&sd_emmc_a { &sd_emmc_a {
status = "okay"; status = "okay";
pinctrl-0 = <&sdio_pins>, <&sdio_irq_pins>; pinctrl-0 = <&sdio_pins>, <&sdio_irq_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -276,7 +277,8 @@ brcmf: wifi@1 { ...@@ -276,7 +277,8 @@ brcmf: wifi@1 {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -294,7 +296,8 @@ &sd_emmc_b { ...@@ -294,7 +296,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "disabled"; status = "disabled";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
max-frequency = <200000000>; max-frequency = <200000000>;
......
...@@ -232,7 +232,8 @@ &pwm_ef { ...@@ -232,7 +232,8 @@ &pwm_ef {
&sd_emmc_a { &sd_emmc_a {
status = "okay"; status = "okay";
pinctrl-0 = <&sdio_pins>; pinctrl-0 = <&sdio_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -253,7 +254,8 @@ &sd_emmc_a { ...@@ -253,7 +254,8 @@ &sd_emmc_a {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -271,7 +273,8 @@ &sd_emmc_b { ...@@ -271,7 +273,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "okay"; status = "okay";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
cap-mmc-highspeed; cap-mmc-highspeed;
......
...@@ -253,7 +253,8 @@ &scpi_clocks { ...@@ -253,7 +253,8 @@ &scpi_clocks {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -271,7 +272,8 @@ &sd_emmc_b { ...@@ -271,7 +272,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "okay"; status = "okay";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
max-frequency = <200000000>; max-frequency = <200000000>;
......
...@@ -194,7 +194,8 @@ &pwm_ef { ...@@ -194,7 +194,8 @@ &pwm_ef {
&sd_emmc_a { &sd_emmc_a {
status = "okay"; status = "okay";
pinctrl-0 = <&sdio_pins>; pinctrl-0 = <&sdio_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -220,7 +221,8 @@ brcmf: wifi@1 { ...@@ -220,7 +221,8 @@ brcmf: wifi@1 {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -238,7 +240,8 @@ &sd_emmc_b { ...@@ -238,7 +240,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "okay"; status = "okay";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
cap-mmc-highspeed; cap-mmc-highspeed;
......
...@@ -155,7 +155,8 @@ &pwm_ef { ...@@ -155,7 +155,8 @@ &pwm_ef {
&sd_emmc_a { &sd_emmc_a {
status = "okay"; status = "okay";
pinctrl-0 = <&sdio_pins &sdio_irq_pins>; pinctrl-0 = <&sdio_pins &sdio_irq_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -181,7 +182,8 @@ brcmf: wifi@1 { ...@@ -181,7 +182,8 @@ brcmf: wifi@1 {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -198,7 +200,8 @@ &sd_emmc_b { ...@@ -198,7 +200,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "okay"; status = "okay";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
cap-mmc-highspeed; cap-mmc-highspeed;
......
...@@ -392,6 +392,17 @@ mux { ...@@ -392,6 +392,17 @@ mux {
}; };
}; };
emmc_clk_gate_pins: emmc_clk_gate {
mux {
groups = "BOOT_8";
function = "gpio_periphs";
};
cfg-pull-down {
pins = "BOOT_8";
bias-pull-down;
};
};
nor_pins: nor { nor_pins: nor {
mux { mux {
groups = "nor_d", groups = "nor_d",
...@@ -430,6 +441,17 @@ mux { ...@@ -430,6 +441,17 @@ mux {
}; };
}; };
sdcard_clk_gate_pins: sdcard_clk_gate {
mux {
groups = "CARD_2";
function = "gpio_periphs";
};
cfg-pull-down {
pins = "CARD_2";
bias-pull-down;
};
};
sdio_pins: sdio { sdio_pins: sdio {
mux { mux {
groups = "sdio_d0", groups = "sdio_d0",
...@@ -442,6 +464,17 @@ mux { ...@@ -442,6 +464,17 @@ mux {
}; };
}; };
sdio_clk_gate_pins: sdio_clk_gate {
mux {
groups = "GPIOX_4";
function = "gpio_periphs";
};
cfg-pull-down {
pins = "GPIOX_4";
bias-pull-down;
};
};
sdio_irq_pins: sdio_irq { sdio_irq_pins: sdio_irq {
mux { mux {
groups = "sdio_irq"; groups = "sdio_irq";
......
...@@ -123,7 +123,8 @@ &pwm_ef { ...@@ -123,7 +123,8 @@ &pwm_ef {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -141,7 +142,8 @@ &sd_emmc_b { ...@@ -141,7 +142,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "okay"; status = "okay";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
cap-mmc-highspeed; cap-mmc-highspeed;
......
...@@ -197,7 +197,8 @@ &pinctrl_periphs { ...@@ -197,7 +197,8 @@ &pinctrl_periphs {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -215,7 +216,8 @@ &sd_emmc_b { ...@@ -215,7 +216,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "okay"; status = "okay";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
cap-mmc-highspeed; cap-mmc-highspeed;
......
...@@ -189,7 +189,8 @@ &pwm_ef { ...@@ -189,7 +189,8 @@ &pwm_ef {
&sd_emmc_a { &sd_emmc_a {
status = "okay"; status = "okay";
pinctrl-0 = <&sdio_pins>; pinctrl-0 = <&sdio_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -210,7 +211,8 @@ &sd_emmc_a { ...@@ -210,7 +211,8 @@ &sd_emmc_a {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -228,7 +230,8 @@ &sd_emmc_b { ...@@ -228,7 +230,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "okay"; status = "okay";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
cap-mmc-highspeed; cap-mmc-highspeed;
......
...@@ -95,7 +95,8 @@ &saradc { ...@@ -95,7 +95,8 @@ &saradc {
&sd_emmc_a { &sd_emmc_a {
status = "okay"; status = "okay";
pinctrl-0 = <&sdio_pins>; pinctrl-0 = <&sdio_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
...@@ -116,7 +117,8 @@ &sd_emmc_a { ...@@ -116,7 +117,8 @@ &sd_emmc_a {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -134,7 +136,8 @@ &sd_emmc_b { ...@@ -134,7 +136,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "okay"; status = "okay";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
cap-mmc-highspeed; cap-mmc-highspeed;
......
...@@ -281,6 +281,17 @@ mux { ...@@ -281,6 +281,17 @@ mux {
}; };
}; };
emmc_clk_gate_pins: emmc_clk_gate {
mux {
groups = "BOOT_8";
function = "gpio_periphs";
};
cfg-pull-down {
pins = "BOOT_8";
bias-pull-down;
};
};
nor_pins: nor { nor_pins: nor {
mux { mux {
groups = "nor_d", groups = "nor_d",
...@@ -319,6 +330,17 @@ mux { ...@@ -319,6 +330,17 @@ mux {
}; };
}; };
sdcard_clk_gate_pins: sdcard_clk_gate {
mux {
groups = "CARD_2";
function = "gpio_periphs";
};
cfg-pull-down {
pins = "CARD_2";
bias-pull-down;
};
};
sdio_pins: sdio { sdio_pins: sdio {
mux { mux {
groups = "sdio_d0", groups = "sdio_d0",
...@@ -331,6 +353,17 @@ mux { ...@@ -331,6 +353,17 @@ mux {
}; };
}; };
sdio_clk_gate_pins: sdio_clk_gate {
mux {
groups = "GPIOX_4";
function = "gpio_periphs";
};
cfg-pull-down {
pins = "GPIOX_4";
bias-pull-down;
};
};
sdio_irq_pins: sdio_irq { sdio_irq_pins: sdio_irq {
mux { mux {
groups = "sdio_irq"; groups = "sdio_irq";
......
...@@ -175,7 +175,8 @@ &ir { ...@@ -175,7 +175,8 @@ &ir {
&sd_emmc_b { &sd_emmc_b {
status = "okay"; status = "okay";
pinctrl-0 = <&sdcard_pins>; pinctrl-0 = <&sdcard_pins>;
pinctrl-names = "default"; pinctrl-1 = <&sdcard_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <4>; bus-width = <4>;
cap-sd-highspeed; cap-sd-highspeed;
...@@ -193,7 +194,8 @@ &sd_emmc_b { ...@@ -193,7 +194,8 @@ &sd_emmc_b {
&sd_emmc_c { &sd_emmc_c {
status = "okay"; status = "okay";
pinctrl-0 = <&emmc_pins>; pinctrl-0 = <&emmc_pins>;
pinctrl-names = "default"; pinctrl-1 = <&emmc_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
bus-width = <8>; bus-width = <8>;
cap-mmc-highspeed; cap-mmc-highspeed;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment