Add mmc-support for mt7986
v4 cover Add mmc-support for mt7986
From: Frank Wunderlich <[email protected]>
I've noticed the mtk-sd binding needs a bit more work get into a more clean state.
There are 2 properties missing that maybe need to be added later or dropped from devicetrees:
drv-type (which is used in mt8183-kukui.dtsi and set to <2>) andr_smpl (used in mt7622-rfb1.dts and mt7622-bananapi-bpi-r64.dts, both times set to <1>)
i don't know their function and boundaries and i do not find them in driver. I guess they are added by accident, so i removing them in the patches 5+6.
v2:
- add compatible based binding
v3:
- solve "not" statement in binding and reorder if statements,drop mt8183
- added patches removing invalid properties (not in driver) v4:
- squashed part 1 (compatible) and 3 (SoC specific clock config)
- new mt7986 clock bindings based on info from mtk
- re-add mt8183 reg boundary
Frank Wunderlich (3):
arm64: dts: mediatek: mt2712e: swap last 2 clocks to match binding
arm64: dts: mt8183: drop drv-type from mmc-node
arm64: dts: mt7622: drop r_smpl property from mmc node
Nícolas F. R. A. Prado (1):
dt-bindings: mmc: mtk-sd: Set clocks based on compatible
Sam Shih (2):
dt-bindings: mmc: Add support for Mediatek MT7986
mmc: mediatek: add support for MT7986 SoC
.../devicetree/bindings/mmc/mtk-sd.yaml | 149 ++++++++++++++---- arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 6 +- .../dts/mediatek/mt7622-bananapi-bpi-r64.dts | 1 - arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 1 - .../arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 1 - drivers/mmc/host/mtk-sd.c | 14 ++ 6 files changed, 136 insertions(+), 36 deletions(-)
Signature · 1 line
2.34.1
PATCH v4 1/6 dt-bindings: mmc: mtk-sd: Set clocks based on compatible
From: Nícolas F. R. A. Prado <[email protected]>
The binding was describing a single clock list for all platforms, but that's not really suitable:
Most platforms using at least 2 clocks (source, hclk), some of them a third "source_cg". Mt2712 requires an extra 'bus_clk' on some of its controllers, while mt8192 requires 8 clocks.
Move the clock definitions inside if blocks that match on the compatibles.
I used Patch from Nícolas F. R. A. Prado and modified it to not using "not" statement.
---
v2:
- add this patch
v3:
- add blank lines and change "not" to matchlist
- reorder entries - make generic first then order alphanumeric
- rewrite commit description
- drop soc-specific mt8183 - constraints were also set for it above v4:
- re-add mt8183 reg-minitems
--- .../devicetree/bindings/mmc/mtk-sd.yaml | 123 +++++++++++++----- 1 file changed, 93 insertions(+), 30 deletions(-)
Documentation/devicetree/bindings/mmc/mtk-sd.yaml +93 -30
@@ -10,9 +10,6 @@ maintainers: - Chaotian Jing <[email protected]> - Wenbin Mei <[email protected]> -allOf: - - $ref: mmc-controller.yaml# - properties: compatible: oneOf:
@@ -48,27 +45,11 @@ properties: description: Should contain phandle for the clock feeding the MMC controller. minItems: 2 - items: - - description: source clock (required). - - description: HCLK which used for host (required). - - description: independent source clock gate (required for MT2712). - - description: bus clock used for internal register access (required for MT2712 MSDC0/3). - - description: msdc subsys clock gate (required for MT8192). - - description: peripheral bus clock gate (required for MT8192). - - description: AXI bus clock gate (required for MT8192). - - description: AHB bus clock gate (required for MT8192). + maxItems: 7 clock-names: minItems: 2 - items: - - const: source - - const: hclk - - const: source_cg - - const: bus_clk - - const: sys_cg - - const: pclk_cg - - const: axi_cg - - const: ahb_cg + maxItems: 7 interrupts: description:
@@ -190,15 +171,97 @@ required: - vmmc-supply - vqmmc-supply -if: - properties: - compatible: - contains: - const: mediatek,mt8183-mmc -then: - properties: - reg: - minItems: 2 +allOf: + - $ref: mmc-controller.yaml# + - if: + properties: + compatible: + enum: + - mediatek,mt2701-mmc + - mediatek,mt6779-mmc + - mediatek,mt6795-mmc + - mediatek,mt7620-mmc + - mediatek,mt7622-mmc + - mediatek,mt7623-mmc + - mediatek,mt8135-mmc + - mediatek,mt8173-mmc + - mediatek,mt8183-mmc + - mediatek,mt8186-mmc + - mediatek,mt8188-mmc + - mediatek,mt8195-mmc + - mediatek,mt8516-mmc + then: + properties: + clocks: + minItems: 2 + items: + - description: source clock + - description: HCLK which used for host + - description: independent source clock gate + clock-names: + minItems: 2 + items: + - const: source + - const: hclk + - const: source_cg + + - if: + properties: + compatible: + contains: + const: mediatek,mt2712-mmc + then: + properties: + clocks: + minItems: 3 + items: + - description: source clock + - description: HCLK which used for host + - description: independent source clock gate + - description: bus clock used for internal register access (required for MSDC0/3). + clock-names: + minItems: 3 + items: + - const: source + - const: hclk + - const: source_cg + - const: bus_clk + + - if: + properties: + compatible: + contains: + const: mediatek,mt8183-mmc + then: + properties: + reg: + minItems: 2 + + - if: + properties: + compatible: + contains: + const: mediatek,mt8192-mmc + then: + properties: + clocks: + items: + - description: source clock + - description: HCLK which used for host + - description: independent source clock gate + - description: msdc subsys clock gate + - description: peripheral bus clock gate + - description: AXI bus clock gate + - description: AHB bus clock gate + clock-names: + items: + - const: source + - const: hclk + - const: source_cg + - const: sys_cg + - const: pclk_cg + - const: axi_cg + - const: ahb_cg unevaluatedProperties: false
Signature · 1 line
2.34.1
PATCH v4 2/6 dt-bindings: mmc: Add support for Mediatek MT7986
In reply to Frank WunderlichFrom: Sam Shih <[email protected]>
This commit adds dt-binding documentation of mmc for Mediatek MT7986 SoC Platform.
Add SoC specific section for defining clock configuration.
---
v3:
- drop assigned-clocks/assigned-clock-parents
- fix clock description
v4:
- update binding for mt7986 (new mtk version)
- squashed part 1 (compatible) and 3 (SoC specific clock config) and so dropped Ack from Rob for 1rst Part
--- .../devicetree/bindings/mmc/mtk-sd.yaml | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+)
Documentation/devicetree/bindings/mmc/mtk-sd.yaml +26 -0
@@ -20,6 +20,7 @@ properties: - mediatek,mt6795-mmc - mediatek,mt7620-mmc - mediatek,mt7622-mmc + - mediatek,mt7986-mmc - mediatek,mt8135-mmc - mediatek,mt8173-mmc - mediatek,mt8183-mmc
@@ -237,6 +238,31 @@ allOf: reg: minItems: 2 + - if: + properties: + compatible: + contains: + enum: + - mediatek,mt7986-mmc + then: + properties: + clocks: + minItems: 3 + items: + - description: source clock + - description: HCLK which used for host + - description: independent source clock gate + - description: bus clock used for internal register access (required for MSDC0/3). + - description: msdc subsys clock gate + clock-names: + minItems: 3 + items: + - const: source + - const: hclk + - const: "source_cg" + - const: "bus_clk" + - const: "sys_cg" + - if: properties: compatible:
Signature · 1 line
2.34.1
Re: [PATCH v4 2/6] dt-bindings: mmc: Add support for Mediatek MT7986
Quoted 8 lines · Frank Wunderlich
From: Sam Shih <[email protected]>
This commit adds dt-binding documentation of mmc for Mediatek MT7986 SoC
Documentation/devicetree/bindings/mmc/mtk-sd.yaml +4
-0+ items: + - description: source clock + - description: HCLK which used for host + - description: independent source clock gate
Documentation/devicetree/bindings/mmc/mtk-sd.yaml allOf: · line 264
Quoted 10 lines
Documentation/devicetree/bindings/mmc/mtk-sd.yaml +10
-0+ - description: bus clock used for internal register access (required for MSDC0/3). + - description: msdc subsys clock gate + clock-names: + minItems: 3 + items: + - const: source + - const: hclk + - const: "source_cg" + - const: "bus_clk" + - const: "sys_cg"
Drop quotes.
Best regards,
Krzysztof
PATCH v4 3/6 arm64: dts: mediatek: mt2712e: swap last 2 clocks to match binding
In reply to Frank WunderlichFrom: Frank Wunderlich <[email protected]>
First 3 clocks for mt2712 need to be "source", "hclk", "source_cg" so swap last 2 of mmc0 to match the binding.
--- arch/arm64/boot/dts/mediatek/mt2712e.dtsi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
arch/arm64/boot/dts/mediatek/mt2712e.dtsi +3 -3
@@ -766,9 +766,9 @@ mmc0: mmc@11230000 { interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_LOW>; clocks = <&pericfg CLK_PERI_MSDC30_0>, <&pericfg CLK_PERI_MSDC50_0_HCLK_EN>, - <&pericfg CLK_PERI_MSDC30_0_QTR_EN>, - <&pericfg CLK_PERI_MSDC50_0_EN>; - clock-names = "source", "hclk", "bus_clk", "source_cg"; + <&pericfg CLK_PERI_MSDC50_0_EN>, + <&pericfg CLK_PERI_MSDC30_0_QTR_EN>; + clock-names = "source", "hclk", "source_cg", "bus_clk"; status = "disabled"; };
Signature · 1 line
2.34.1
PATCH v4 4/6 arm64: dts: mt8183: drop drv-type from mmc-node
In reply to Frank WunderlichFrom: Frank Wunderlich <[email protected]>
This property is not defined in binding and driver.
--- arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi | 1 - 1 file changed, 1 deletion(-)
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi +0 -1
@@ -378,7 +378,6 @@ &mmc1 { mmc-pwrseq = <&wifi_pwrseq>; bus-width = <4>; max-frequency = <200000000>; - drv-type = <2>; cap-sd-highspeed; sd-uhs-sdr50; sd-uhs-sdr104;
Signature · 1 line
2.34.1
AngeloGioacchino Del Regno
maintainerRe: [PATCH v4 4/6] arm64: dts: mt8183: drop drv-type from mmc-node
Il 25/10/22 09:42, Frank Wunderlich ha scritto:
Quoted 5 lines
From: Frank Wunderlich <[email protected]>
This property is not defined in binding and driver.
Signed-off-by Frank Wunderlich <[email protected]>
This commit needs a Fixes tag :-)
Regards,
Angelo
Re: [PATCH v4 4/6] arm64: dts: mt8183: drop drv-type from mmc-node
Am 2022-10-25 12:52, schrieb AngeloGioacchino Del Regno:
Quoted 8 lines
Il 25/10/22 09:42, Frank Wunderlich ha scritto:
Quoted 5 lines
From: Frank Wunderlich <[email protected]>
This property is not defined in binding and driver.
Signed-off-by Frank Wunderlich <[email protected]>This commit needs a Fixes tag :-)
i hope it is ok adding it here instead of resend full series...
regards Frank
AngeloGioacchino Del Regno
maintainerRe: [PATCH v4 4/6] arm64: dts: mt8183: drop drv-type from mmc-node
Il 25/10/22 13:33, Frank Wunderlich (linux) ha scritto:
Quoted 8 lines
Am 2022-10-25 12:52, schrieb AngeloGioacchino Del Regno:
Quoted 7 lines
Il 25/10/22 09:42, Frank Wunderlich ha scritto:
Quoted 5 lines
From: Frank Wunderlich <[email protected]>
This property is not defined in binding and driver.
Signed-off-by Frank Wunderlich <[email protected]>
Quoted 7 lines
Quoted 1 line
This commit needs a Fixes tag :-)
i hope it is ok adding it here instead of resend full series...
Fixes cd894e274b74 ("arm64: dts: mt8183: Add krane-sku176 board")regards Frank
Please send a v5 with the appropriate Fixes tags.
Regards,
Angelo
PATCH v4 5/6 arm64: dts: mt7622: drop r_smpl property from mmc node
In reply to Frank WunderlichFrom: Frank Wunderlich <[email protected]>
This property is not defined in binding and driver.
--- arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts | 1 - arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts | 1 - 2 files changed, 2 deletions(-)
arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +0 -1
@@ -235,7 +235,6 @@ &mmc1 { bus-width = <4>; max-frequency = <50000000>; cap-sd-highspeed; - r_smpl = <1>; cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>; vmmc-supply = <®_3p3v>; vqmmc-supply = <®_3p3v>;
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +0 -1
@@ -208,7 +208,6 @@ &mmc1 { bus-width = <4>; max-frequency = <50000000>; cap-sd-highspeed; - r_smpl = <1>; cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>; vmmc-supply = <®_3p3v>; vqmmc-supply = <®_3p3v>;
Signature · 1 line
2.34.1
AngeloGioacchino Del Regno
maintainerRe: [PATCH v4 5/6] arm64: dts: mt7622: drop r_smpl property from mmc node
Il 25/10/22 09:42, Frank Wunderlich ha scritto:
Quoted 5 lines
From: Frank Wunderlich <[email protected]>
This property is not defined in binding and driver.
Signed-off-by Frank Wunderlich <[email protected]>
Fixes tag please.
Re: [PATCH v4 5/6] arm64: dts: mt7622: drop r_smpl property from mmc node
Am 2022-10-25 12:52, schrieb AngeloGioacchino Del Regno:
Quoted 8 lines
Il 25/10/22 09:42, Frank Wunderlich ha scritto:
Quoted 5 lines
From: Frank Wunderlich <[email protected]>
This property is not defined in binding and driver.
Signed-off-by Frank Wunderlich <[email protected]>Fixes tag please.
as 2 boards were touched (i guess r64 was copy from rfb), i have 2 commits found adding this property.
regards Frank
PATCH v4 6/6 mmc: mediatek: add support for MT7986 SoC
In reply to Frank WunderlichFrom: Sam Shih <[email protected]>
Adding mt7986 own characteristics and of_device_id to have support of MT7986 SoC.
--- drivers/mmc/host/mtk-sd.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
drivers/mmc/host/mtk-sd.c +14 -0
@@ -552,6 +552,19 @@ static const struct mtk_mmc_compatible mt7622_compat = { .support_64g = false, }; +static const struct mtk_mmc_compatible mt7986_compat = { + .clk_div_bits =12 , + .recheck_sdio_irq = true, + .hs400_tune = false, + .pad_tune_reg =MSDC_PAD_TUNE0 , + .async_fifo = true, + .data_tune = true, + .busy_check = true, + .stop_clk_fix = true, + .enhance_rx = true, + .support_64g = true, +}; +static const struct mtk_mmc_compatible mt8135_compat = { .clk_div_bits =8 , .recheck_sdio_irq = true,
@@ -609,6 +622,7 @@ static const struct of_device_id msdc_of_ids[] = { { .compatible = "mediatek,mt6795-mmc", .data = &mt6795_compat}, { .compatible = "mediatek,mt7620-mmc", .data = &mt7620_compat}, { .compatible = "mediatek,mt7622-mmc", .data = &mt7622_compat}, + { .compatible = "mediatek,mt7986-mmc", .data = &mt7986_compat}, { .compatible = "mediatek,mt8135-mmc", .data = &mt8135_compat}, { .compatible = "mediatek,mt8173-mmc", .data = &mt8173_compat}, { .compatible = "mediatek,mt8183-mmc", .data = &mt8183_compat},
Signature · 1 line
2.34.1
Re: [PATCH v4 6/6] mmc: mediatek: add support for MT7986 SoC
Il 25/10/22 09:42, Frank Wunderlich ha scritto:
Quoted 7 lines
From: Sam Shih <[email protected]>
Adding mt7986 own characteristics and
of_device_idto have support of MT7986 SoC.Signed-off-by Sam Shih <[email protected]>Signed-off-by Frank Wunderlich <[email protected]>