The kernel now handles level shifter limitations affecting SD card modes, making it unnecessary to explicitly disable SDR104 and SDR50 capabilities in the device tree. However, due to board-specific hardware constraints particularly related to level shifter in this case the maximum frequency for SD High-Speed (HS) mode must be limited to 37.5 MHz to ensure reliable operation of SD card in HS mode. This is achieved using the max-sd-hs-frequency property in the board DTS. Signed-off-by: Sarthak Garg <quic_sartgarg@xxxxxxxxxxx> --- arch/arm64/boot/dts/qcom/sm8550-hdk.dts | 1 + arch/arm64/boot/dts/qcom/sm8550-mtp.dts | 1 + arch/arm64/boot/dts/qcom/sm8550-sony-xperia-yodo-pdx234.dts | 1 + arch/arm64/boot/dts/qcom/sm8550.dtsi | 3 --- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sm8550-hdk.dts b/arch/arm64/boot/dts/qcom/sm8550-hdk.dts index 29bc1ddfc7b2..a6bc3c11598b 100644 --- a/arch/arm64/boot/dts/qcom/sm8550-hdk.dts +++ b/arch/arm64/boot/dts/qcom/sm8550-hdk.dts @@ -1164,6 +1164,7 @@ &sdhc_2 { vmmc-supply = <&vreg_l9b_2p9>; vqmmc-supply = <&vreg_l8b_1p8>; + max-sd-hs-frequency = <37500000>; bus-width = <4>; no-sdio; no-mmc; diff --git a/arch/arm64/boot/dts/qcom/sm8550-mtp.dts b/arch/arm64/boot/dts/qcom/sm8550-mtp.dts index 5648ab60ba4c..166d3595633d 100644 --- a/arch/arm64/boot/dts/qcom/sm8550-mtp.dts +++ b/arch/arm64/boot/dts/qcom/sm8550-mtp.dts @@ -818,6 +818,7 @@ &sdhc_2 { pinctrl-1 = <&sdc2_sleep &sdc2_card_det_n>; vmmc-supply = <&vreg_l9b_2p9>; vqmmc-supply = <&vreg_l8b_1p8>; + max-sd-hs-frequency = <37500000>; bus-width = <4>; no-sdio; no-mmc; diff --git a/arch/arm64/boot/dts/qcom/sm8550-sony-xperia-yodo-pdx234.dts b/arch/arm64/boot/dts/qcom/sm8550-sony-xperia-yodo-pdx234.dts index d90dc7b37c4a..039ead5b8784 100644 --- a/arch/arm64/boot/dts/qcom/sm8550-sony-xperia-yodo-pdx234.dts +++ b/arch/arm64/boot/dts/qcom/sm8550-sony-xperia-yodo-pdx234.dts @@ -716,6 +716,7 @@ &sdhc_2 { pinctrl-names = "default", "sleep"; vmmc-supply = <&pm8550_l9>; vqmmc-supply = <&pm8550_l8>; + max-sd-hs-frequency = <37500000>; no-sdio; no-mmc; status = "okay"; diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi index 82cabf777cd2..bc7c4b77f277 100644 --- a/arch/arm64/boot/dts/qcom/sm8550.dtsi +++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi @@ -3191,9 +3191,6 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>, bus-width = <4>; dma-coherent; - /* Forbid SDR104/SDR50 - broken hw! */ - sdhci-caps-mask = <0x3 0>; - status = "disabled"; sdhc2_opp_table: opp-table { -- 2.34.1