[PATCH v3 1/3] arm64: dts: qcom: sdm845-shift-axolotl: Enable sdcard

David Heidelberg via B4 Relay posted 3 patches 1 day, 20 hours ago
[PATCH v3 1/3] arm64: dts: qcom: sdm845-shift-axolotl: Enable sdcard
Posted by David Heidelberg via B4 Relay 1 day, 20 hours ago
From: Casey Connolly <casey.connolly@linaro.org>

The SHIFT6mq features an sdcard slot, add it.

Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Co-developed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: David Heidelberg <david@ixit.cz>
---
 arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 44 +++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
index 740eb22550724..b05f04a621e5b 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
@@ -600,6 +600,24 @@ &qupv3_id_1 {
 	status = "okay";
 };
 
+&sdhc_2 {
+	pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
+	pinctrl-names = "default";
+
+	vmmc-supply = <&vreg_l21a_2p95>;
+	vqmmc-supply = <&vreg_l13a_2p95>;
+
+	bus-width = <4>;
+	/*
+	 * Card detection is broken, but because the battery must be removed
+	 * to insert the card, we use this rather than the broken-cd property
+	 * which would just waste CPU cycles polling.
+	 */
+	non-removable;
+
+	status = "okay";
+};
+
 &slpi_pas {
 	firmware-name = "qcom/sdm845/SHIFT/axolotl/slpi.mbn";
 
@@ -609,6 +627,32 @@ &slpi_pas {
 &tlmm {
 	gpio-reserved-ranges = <0 4>, <81 4>;
 
+	sdc2_default_state: sdc2-default-state {
+		clk-pins {
+			pins = "sdc2_clk";
+			drive-strength = <16>;
+			bias-disable;
+		};
+
+		cmd-pins {
+			pins = "sdc2_cmd";
+			drive-strength = <10>;
+			bias-pull-up;
+		};
+
+		data-pins {
+			pins = "sdc2_data";
+			drive-strength = <10>;
+			bias-pull-up;
+		};
+	};
+
+	sdc2_card_det_n: sd-card-det-n-state {
+		pins = "gpio126";
+		function = "gpio";
+		bias-disable;
+	};
+
 	sde_dsi_active: sde-dsi-active-state {
 		pins = "gpio6", "gpio11";
 		function = "gpio";

-- 
2.53.0
Re: [PATCH v3 1/3] arm64: dts: qcom: sdm845-shift-axolotl: Enable sdcard
Posted by Vladimir Zapolskiy 1 day, 19 hours ago
On 4/2/26 12:54, David Heidelberg via B4 Relay wrote:
> From: Casey Connolly <casey.connolly@linaro.org>
> 
> The SHIFT6mq features an sdcard slot, add it.
> 
> Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Co-developed-by: David Heidelberg <david@ixit.cz>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
>   arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 44 +++++++++++++++++++++++
>   1 file changed, 44 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
> index 740eb22550724..b05f04a621e5b 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
> @@ -600,6 +600,24 @@ &qupv3_id_1 {
>   	status = "okay";
>   };
>   
> +&sdhc_2 {
> +	pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;

If card detection is broken and disabled, then likely card detection
GPIO can be omitted, no?

> +	pinctrl-names = "default";
> +
> +	vmmc-supply = <&vreg_l21a_2p95>;
> +	vqmmc-supply = <&vreg_l13a_2p95>;
> +
> +	bus-width = <4>;
> +	/*
> +	 * Card detection is broken, but because the battery must be removed
> +	 * to insert the card, we use this rather than the broken-cd property
> +	 * which would just waste CPU cycles polling.
> +	 */
> +	non-removable;
> +
> +	status = "okay";
> +};
> +
>   &slpi_pas {
>   	firmware-name = "qcom/sdm845/SHIFT/axolotl/slpi.mbn";
>   
> @@ -609,6 +627,32 @@ &slpi_pas {
>   &tlmm {
>   	gpio-reserved-ranges = <0 4>, <81 4>;
>   
> +	sdc2_default_state: sdc2-default-state {
> +		clk-pins {
> +			pins = "sdc2_clk";
> +			drive-strength = <16>;
> +			bias-disable;
> +		};
> +
> +		cmd-pins {
> +			pins = "sdc2_cmd";
> +			drive-strength = <10>;
> +			bias-pull-up;
> +		};
> +
> +		data-pins {
> +			pins = "sdc2_data";
> +			drive-strength = <10>;
> +			bias-pull-up;
> +		};
> +	};
> +
> +	sdc2_card_det_n: sd-card-det-n-state {
> +		pins = "gpio126";
> +		function = "gpio";
> +		bias-disable;
> +	};
> +
>   	sde_dsi_active: sde-dsi-active-state {
>   		pins = "gpio6", "gpio11";
>   		function = "gpio";
> 

-- 
Best wishes,
Vladimir
Re: [PATCH v3 1/3] arm64: dts: qcom: sdm845-shift-axolotl: Enable sdcard
Posted by David Heidelberg 1 day, 19 hours ago
On 02/04/2026 13:16, Vladimir Zapolskiy wrote:
> On 4/2/26 12:54, David Heidelberg via B4 Relay wrote:
>> From: Casey Connolly <casey.connolly@linaro.org>
>>
>> The SHIFT6mq features an sdcard slot, add it.
>>
>> Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
>> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>> Co-developed-by: David Heidelberg <david@ixit.cz>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
>> ---
>>   arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts | 44 +++++++++++++++++++++++
>>   1 file changed, 44 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts b/arch/arm64/ 
>> boot/dts/qcom/sdm845-shift-axolotl.dts
>> index 740eb22550724..b05f04a621e5b 100644
>> --- a/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
>> +++ b/arch/arm64/boot/dts/qcom/sdm845-shift-axolotl.dts
>> @@ -600,6 +600,24 @@ &qupv3_id_1 {
>>       status = "okay";
>>   };
>> +&sdhc_2 {
>> +    pinctrl-0 = <&sdc2_default_state &sdc2_card_det_n>;
> 
> If card detection is broken and disabled, then likely card detection
> GPIO can be omitted, no?

Could be, but current use, since it's broken, is to minimize power consumption 
which we do by setting this GPIO with bias-disable and still documenting it's 
presence.

David

> 
>> +    pinctrl-names = "default";
>> +
>> +    vmmc-supply = <&vreg_l21a_2p95>;
>> +    vqmmc-supply = <&vreg_l13a_2p95>;
>> +
>> +    bus-width = <4>;
>> +    /*
>> +     * Card detection is broken, but because the battery must be removed
>> +     * to insert the card, we use this rather than the broken-cd property
>> +     * which would just waste CPU cycles polling.
>> +     */
>> +    non-removable;
>> +
>> +    status = "okay";
>> +};
>> +
>>   &slpi_pas {
>>       firmware-name = "qcom/sdm845/SHIFT/axolotl/slpi.mbn";
>> @@ -609,6 +627,32 @@ &slpi_pas {
>>   &tlmm {
>>       gpio-reserved-ranges = <0 4>, <81 4>;
>> +    sdc2_default_state: sdc2-default-state {
>> +        clk-pins {
>> +            pins = "sdc2_clk";
>> +            drive-strength = <16>;
>> +            bias-disable;
>> +        };
>> +
>> +        cmd-pins {
>> +            pins = "sdc2_cmd";
>> +            drive-strength = <10>;
>> +            bias-pull-up;
>> +        };
>> +
>> +        data-pins {
>> +            pins = "sdc2_data";
>> +            drive-strength = <10>;
>> +            bias-pull-up;
>> +        };
>> +    };
>> +
>> +    sdc2_card_det_n: sd-card-det-n-state {
>> +        pins = "gpio126";
>> +        function = "gpio";
>> +        bias-disable;
>> +    };
>> +
>>       sde_dsi_active: sde-dsi-active-state {
>>           pins = "gpio6", "gpio11";
>>           function = "gpio";
>>
> 

-- 
David Heidelberg