arm64: dts: qcom: sc7280: Clean up sdc1 / sdc2 pinctrl
authorDouglas Anderson <dianders@chromium.org>
Wed, 2 Feb 2022 21:23:38 +0000 (13:23 -0800)
committerBjorn Andersson <bjorn.andersson@linaro.org>
Fri, 4 Feb 2022 21:52:59 +0000 (15:52 -0600)
This patch makes a few improvements to the way that sdc1 / sdc2
pinctrl is specified on sc7280:

1. There's no reason to "group" the sdc pins into one overarching node
and there's a downside: we have to replicate the hierarchy in the
board device tree files. Let's clean this up.

2. There's really not a lot of reason not to list the "pinctrl" for
sdc1 (eMMC) in the SoC dtsi file. These aren't GPIO pins and
everyone's going to specify the same pins.

3. Even though it's likely that boards will need to override pinctrl
for sdc2 (SD card) to add the card detect GPIO, we can be symmetric
and add it to the SoC dsti file.

4. Let's get rid of the word "on" from the normal config and add a
"sleep" suffix to the sleep config. This looks cleaner to me.

This is intended to be a no-op change but it could plausibly change
behavior depending on how the pinctrl code parses things. One thing to
note is that "SD card detect" is explicitly listed now as keeping its
pull enabled in sleep since we still want to detect card insertions
even if the controller is suspended (because no card is inserted). The
pinctrl framework likely did this anyway, but it's nice to see it
explicit.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Link: https://lore.kernel.org/r/20220202132301.v3.4.I79baad7f52351aafb470f8b21a9fa79d7031ad6a@changeid
arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r0.dts
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi
arch/arm64/boot/dts/qcom/sc7280.dtsi

index f159b5a6d7ef58aba058360b7ea847dc3926df7e..918352c097bc8de743fd382f7baaa6d8ec666911 100644 (file)
@@ -676,9 +676,6 @@ ap_ts_pen: &i2c13 {
 &sdhc_1 {
        status = "okay";
 
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&sdc1_on>;
-       pinctrl-1 = <&sdc1_off>;
        vmmc-supply = <&pp2950_l7b>;
        vqmmc-supply = <&pp1800_l19b>;
 };
@@ -686,9 +683,8 @@ ap_ts_pen: &i2c13 {
 &sdhc_2 {
        status = "okay";
 
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&sdc2_on>;
-       pinctrl-1 = <&sdc2_off>;
+       pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd>;
+       pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd>;
        vmmc-supply = <&pp2950_l9c>;
        vqmmc-supply = <&ppvar_l6c>;
 
@@ -883,47 +879,38 @@ ap_ec_spi: &spi8 {
        bias-pull-up;
 };
 
-&sdc1_on {
-       clk {
-               bias-disable;
-               drive-strength = <16>;
-       };
-
-       cmd {
-               bias-pull-up;
-               drive-strength = <10>;
-       };
+&sdc1_clk {
+       bias-disable;
+       drive-strength = <16>;
+};
 
-       data {
-               bias-pull-up;
-               drive-strength = <10>;
-       };
+&sdc1_cmd {
+       bias-pull-up;
+       drive-strength = <10>;
+};
 
-       rclk {
-               bias-pull-down;
-       };
+&sdc1_data {
+       bias-pull-up;
+       drive-strength = <10>;
 };
 
-&sdc2_on {
-       clk {
-               bias-disable;
-               drive-strength = <16>;
-       };
+&sdc1_rclk {
+       bias-pull-down;
+};
 
-       cmd {
-               bias-pull-up;
-               drive-strength = <10>;
-       };
+&sdc2_clk {
+       bias-disable;
+       drive-strength = <16>;
+};
 
-       data {
-               bias-pull-up;
-               drive-strength = <10>;
-       };
+&sdc2_cmd {
+       bias-pull-up;
+       drive-strength = <10>;
+};
 
-       sd-cd {
-               pins = "gpio91";
-               bias-pull-up;
-       };
+&sdc2_data {
+       bias-pull-up;
+       drive-strength = <10>;
 };
 
 /* PINCTRL - board-specific pinctrl */
@@ -1311,6 +1298,12 @@ ap_ec_spi: &spi8 {
                bias-pull-up;
        };
 
+       sd_cd: sd-cd {
+               pins = "gpio91";
+               function = "gpio";
+               bias-pull-up;
+       };
+
        tp_int_odl: tp-int-odl {
                pins = "gpio102";
                function = "gpio";
index 78da9ac983db8d02989c1066973518eee54480c6..7a987bc9b75844ae72e0135d7a7974e8fe2076c1 100644 (file)
 &sdhc_1 {
        status = "okay";
 
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&sdc1_on>;
-       pinctrl-1 = <&sdc1_off>;
-
        non-removable;
        no-sd;
        no-sdio;
 &sdhc_2 {
        status = "okay";
 
-       pinctrl-names = "default", "sleep";
-       pinctrl-0 = <&sdc2_on>;
-       pinctrl-1 = <&sdc2_off>;
+       pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd>;
+       pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd>;
 
        vmmc-supply = <&vreg_l9c_2p9>;
        vqmmc-supply = <&vreg_l6c_2p9>;
        bias-pull-up;
 };
 
+&sdc1_clk {
+       bias-disable;
+       drive-strength = <16>;
+};
+
+&sdc1_cmd {
+       bias-pull-up;
+       drive-strength = <10>;
+};
+
+&sdc1_data {
+       bias-pull-up;
+       drive-strength = <10>;
+};
+
+&sdc1_rclk {
+       bias-pull-down;
+};
+
+&sdc2_clk {
+       bias-disable;
+       drive-strength = <16>;
+};
+
+&sdc2_cmd {
+       bias-pull-up;
+       drive-strength = <10>;
+};
+
+&sdc2_data {
+       bias-pull-up;
+       drive-strength = <10>;
+};
+
 &tlmm {
        bt_en: bt-en {
                pins = "gpio85";
                bias-pull-up;
        };
 
-       sw_ctrl: sw-ctrl {
-               pins = "gpio86";
+       sd_cd: sd-cd {
+               pins = "gpio91";
                function = "gpio";
-               input-enable;
-               bias-pull-down;
-       };
-};
-
-&sdc1_on {
-       clk {
-               bias-disable;
-               drive-strength = <16>;
-       };
-
-       cmd {
                bias-pull-up;
-               drive-strength = <10>;
        };
 
-       data {
-               bias-pull-up;
-               drive-strength = <10>;
-       };
-
-       rclk {
+       sw_ctrl: sw-ctrl {
+               pins = "gpio86";
+               function = "gpio";
+               input-enable;
                bias-pull-down;
        };
 };
 
-&sdc2_on {
-       clk {
-               bias-disable;
-               drive-strength = <16>;
-       };
-
-       cmd {
-               bias-pull-up;
-               drive-strength = <10>;
-       };
-
-       data {
-               bias-pull-up;
-               drive-strength = <10>;
-       };
-
-       sd-cd {
-               pins = "gpio91";
-               bias-pull-up;
-       };
-};
index 4a0e574802a7fbd451c641f9d9ace2fee46a25a4..3f07ebc49b62c5fed455fab23a980f677a96f6bf 100644 (file)
 
                sdhc_1: sdhci@7c4000 {
                        compatible = "qcom,sc7280-sdhci", "qcom,sdhci-msm-v5";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&sdc1_clk>, <&sdc1_cmd>, <&sdc1_data>, <&sdc1_rclk>;
+                       pinctrl-1 = <&sdc1_clk_sleep>, <&sdc1_cmd_sleep>, <&sdc1_data_sleep>, <&sdc1_rclk_sleep>;
                        status = "disabled";
 
                        reg = <0 0x007c4000 0 0x1000>,
 
                sdhc_2: sdhci@8804000 {
                        compatible = "qcom,sc7280-sdhci", "qcom,sdhci-msm-v5";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>;
+                       pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>;
                        status = "disabled";
 
                        reg = <0 0x08804000 0 0x1000>;
                                function = "qup17";
                        };
 
-                       sdc1_on: sdc1-on {
-                               clk {
-                                       pins = "sdc1_clk";
-                               };
+                       sdc1_clk: sdc1-clk {
+                               pins = "sdc1_clk";
+                       };
 
-                               cmd {
-                                       pins = "sdc1_cmd";
-                               };
+                       sdc1_cmd: sdc1-cmd {
+                               pins = "sdc1_cmd";
+                       };
 
-                               data {
-                                       pins = "sdc1_data";
-                               };
+                       sdc1_data: sdc1-data {
+                               pins = "sdc1_data";
+                       };
 
-                               rclk {
-                                       pins = "sdc1_rclk";
-                               };
+                       sdc1_rclk: sdc1-rclk {
+                               pins = "sdc1_rclk";
                        };
 
-                       sdc1_off: sdc1-off {
-                               clk {
-                                       pins = "sdc1_clk";
-                                       drive-strength = <2>;
-                                       bias-bus-hold;
-                               };
+                       sdc1_clk_sleep: sdc1-clk-sleep {
+                               pins = "sdc1_clk";
+                               drive-strength = <2>;
+                               bias-bus-hold;
+                       };
 
-                               cmd {
-                                       pins = "sdc1_cmd";
-                                       drive-strength = <2>;
-                                       bias-bus-hold;
-                               };
+                       sdc1_cmd_sleep: sdc1-cmd-sleep {
+                               pins = "sdc1_cmd";
+                               drive-strength = <2>;
+                               bias-bus-hold;
+                       };
 
-                               data {
-                                       pins = "sdc1_data";
-                                       drive-strength = <2>;
-                                       bias-bus-hold;
-                               };
+                       sdc1_data_sleep: sdc1-data-sleep {
+                               pins = "sdc1_data";
+                               drive-strength = <2>;
+                               bias-bus-hold;
+                       };
 
-                               rclk {
-                                       pins = "sdc1_rclk";
-                                       bias-bus-hold;
-                               };
+                       sdc1_rclk_sleep: sdc1-rclk-sleep {
+                               pins = "sdc1_rclk";
+                               drive-strength = <2>;
+                               bias-bus-hold;
                        };
 
-                       sdc2_on: sdc2-on {
-                               clk {
-                                       pins = "sdc2_clk";
-                               };
+                       sdc2_clk: sdc2-clk {
+                               pins = "sdc2_clk";
+                       };
 
-                               cmd {
-                                       pins = "sdc2_cmd";
-                               };
+                       sdc2_cmd: sdc2-cmd {
+                               pins = "sdc2_cmd";
+                       };
 
-                               data {
-                                       pins = "sdc2_data";
-                               };
+                       sdc2_data: sdc2-data {
+                               pins = "sdc2_data";
                        };
 
-                       sdc2_off: sdc2-off {
-                               clk {
-                                       pins = "sdc2_clk";
-                                       drive-strength = <2>;
-                                       bias-bus-hold;
-                               };
+                       sdc2_clk_sleep: sdc2-clk-sleep {
+                               pins = "sdc2_clk";
+                               drive-strength = <2>;
+                               bias-bus-hold;
+                       };
 
-                               cmd {
-                                       pins ="sdc2_cmd";
-                                       drive-strength = <2>;
-                                       bias-bus-hold;
-                               };
+                       sdc2_cmd_sleep: sdc2-cmd-sleep {
+                               pins = "sdc2_cmd";
+                               drive-strength = <2>;
+                               bias-bus-hold;
+                       };
 
-                               data {
-                                       pins ="sdc2_data";
-                                       drive-strength = <2>;
-                                       bias-bus-hold;
-                               };
+                       sdc2_data_sleep: sdc2-data-sleep {
+                               pins = "sdc2_data";
+                               drive-strength = <2>;
+                               bias-bus-hold;
                        };
                };