Skip to content

Commit 9e1af75

Browse files
committed
Merge tag 'mmc-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
Pull MMC updates from Ulf Hansson: "There are no updates for the MEMSTICK subsystem this time. But note that I am also carrying a patch from the pinctrl tree, which has been shared through an immutable branch. Summary: MMC core: - Convert to reasonable timeouts for all CMD6 commands (updates for BKOPS, CACHE_FLUSH and INAND_CMD38_ARG_EXT_CSD) for eMMC - Respect f_max clock rate at card initialization - Add gpiod_toggle_active_low() API - Consolidate slot-gpio code by using gpiod_toggle_active_low() MMC host: - Add pinctrl_select_default_state() API - Consolidate pintctrl code by using pinctrl_select_default_state() - mmci: Support any block sizes for SDIO for some variants - mmci: Enable reset control for stm32_sdmmc - mmc_spi: Toggle SPI_CS_HIGH polarity rather than hard-coding it - renesas_sdhi: Add support for the r8a77961 variant - renesas_sdhi: A few minor improvements - rockchip-dw-mshc: Add support for the rk3308 variant - sdhci: Enable support for external DMA controllers - sdhci: Fixup error path when sending CMD12 - sdhci-brcmstb: Add support for 7216b0 variant - sdhci-brcmstb: Add support for command queuing (CQHCI) - sdhci-brcmstb: Add support for eMMC HS400ES mode - sdhci-msm: Add support for the sc7180 variant - sdhci-msm: Add support for command queuing (CQHCI) - sdhci-of-at91: Add support for the SAM9x60 variant - sdhci-of-at91: Improve support for tunings - sdhci-of-esdhc: A few fixups for some clock related issues - sdhci-omap: Add support for the am335x and the am437x variants - sdhci-omap: Improve support for erase operations - sdhci-omap: Add support for external DMA" * tag 'mmc-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (89 commits) mmc: core: Default to generic_cmd6_time as timeout in __mmc_switch() mmc: block: Use generic_cmd6_time when modifying INAND_CMD38_ARG_EXT_CSD mmc: core: Specify timeouts for BKOPS and CACHE_FLUSH for eMMC mmc: sdhci-cadence: remove unneeded 'inline' marker dt-bindings: mmc: rockchip-dw-mshc: add description for rk3308 dt-bindings: mmc: convert rockchip dw-mshc bindings to yaml dt-bindings: mmc: convert synopsys dw-mshc bindings to yaml mmc: sdhci-msm: Add CQHCI support for sdhci-msm mmc: sdhci: Let a vendor driver supply and update ADMA descriptor size mmc: sdhci-of-esdhc: fix serious issue clock is always disabled mmc: sdhci-of-esdhc: fix transfer mode register reading mmc: sdhci-brcmstb: Fix incorrect switch to HS mode mmc: sdhci-brcmstb: Add support for Command Queuing (CQE) mmc: sdhci-brcmstb: Add shutdown callback mmc: sdhci-brcmstb: Fix driver to defer on clk_get defer mmc: sdhci-brcmstb: Add ability to use HS400ES transfer mode dt-bindings: mmc: brcm,sdhci-brcmstb: Add support for 7216b0 mmc: core: limit probe clock frequency to configured f_max mmc: sdhci-milbeaut: Remove redundant platform_get_irq error message mmc: sdhci: fix an issue of mixing different types ...
2 parents b9b627a + 533a6cf commit 9e1af75

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1648
-762
lines changed

Documentation/devicetree/bindings/mmc/brcm,sdhci-brcmstb.txt

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,43 @@ Required properties:
1111
- compatible: should be one of the following
1212
- "brcm,bcm7425-sdhci"
1313
- "brcm,bcm7445-sdhci"
14+
- "brcm,bcm7216-sdhci"
1415

1516
Refer to clocks/clock-bindings.txt for generic clock consumer properties.
1617

1718
Example:
1819

19-
sdhci@f03e0100 {
20-
compatible = "brcm,bcm7425-sdhci";
21-
reg = <0xf03e0000 0x100>;
22-
interrupts = <0x0 0x26 0x0>;
23-
sdhci,auto-cmd12;
24-
clocks = <&sw_sdio>;
20+
sdhci@84b0000 {
2521
sd-uhs-sdr50;
2622
sd-uhs-ddr50;
23+
sd-uhs-sdr104;
24+
sdhci,auto-cmd12;
25+
compatible = "brcm,bcm7216-sdhci",
26+
"brcm,bcm7445-sdhci",
27+
"brcm,sdhci-brcmstb";
28+
reg = <0x84b0000 0x260 0x84b0300 0x200>;
29+
reg-names = "host", "cfg";
30+
interrupts = <0x0 0x26 0x4>;
31+
interrupt-names = "sdio0_0";
32+
clocks = <&scmi_clk 245>;
33+
clock-names = "sw_sdio";
2734
};
2835

29-
sdhci@f03e0300 {
36+
sdhci@84b1000 {
37+
mmc-ddr-1_8v;
38+
mmc-hs200-1_8v;
39+
mmc-hs400-1_8v;
40+
mmc-hs400-enhanced-strobe;
41+
supports-cqe;
3042
non-removable;
3143
bus-width = <0x8>;
32-
compatible = "brcm,bcm7425-sdhci";
33-
reg = <0xf03e0200 0x100>;
34-
interrupts = <0x0 0x27 0x0>;
35-
sdhci,auto-cmd12;
36-
clocks = <sw_sdio>;
37-
mmc-hs200-1_8v;
44+
compatible = "brcm,bcm7216-sdhci",
45+
"brcm,bcm7445-sdhci",
46+
"brcm,sdhci-brcmstb";
47+
reg = <0x84b1000 0x260 0x84b1300 0x200>;
48+
reg-names = "host", "cfg";
49+
interrupts = <0x0 0x27 0x4>;
50+
interrupt-names = "sdio1_0";
51+
clocks = <&scmi_clk 245>;
52+
clock-names = "sw_sdio";
3853
};

Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ Required properties:
2121
"fsl,imx8mq-usdhc"
2222
"fsl,imx8mm-usdhc"
2323
"fsl,imx8mn-usdhc"
24+
"fsl,imx8mp-usdhc"
2425
"fsl,imx8qxp-usdhc"
2526

2627
Optional properties:

Documentation/devicetree/bindings/mmc/renesas,sdhi.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ Required properties:
2323
"renesas,sdhi-r8a7793" - SDHI IP on R8A7793 SoC
2424
"renesas,sdhi-r8a7794" - SDHI IP on R8A7794 SoC
2525
"renesas,sdhi-r8a7795" - SDHI IP on R8A7795 SoC
26-
"renesas,sdhi-r8a7796" - SDHI IP on R8A7796 SoC
26+
"renesas,sdhi-r8a7796" - SDHI IP on R8A77960 SoC
27+
"renesas,sdhi-r8a77961" - SDHI IP on R8A77961 SoC
2728
"renesas,sdhi-r8a77965" - SDHI IP on R8A77965 SoC
2829
"renesas,sdhi-r8a77970" - SDHI IP on R8A77970 SoC
2930
"renesas,sdhi-r8a77980" - SDHI IP on R8A77980 SoC

Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt

Lines changed: 0 additions & 49 deletions
This file was deleted.
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/mmc/rockchip-dw-mshc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Rockchip designware mobile storage host controller device tree bindings
8+
9+
description:
10+
Rockchip uses the Synopsys designware mobile storage host controller
11+
to interface a SoC with storage medium such as eMMC or SD/MMC cards.
12+
This file documents the combined properties for the core Synopsys dw mshc
13+
controller that are not already included in the synopsys-dw-mshc-common.yaml
14+
file and the Rockchip specific extensions.
15+
16+
allOf:
17+
- $ref: "synopsys-dw-mshc-common.yaml#"
18+
19+
maintainers:
20+
- Heiko Stuebner <[email protected]>
21+
22+
# Everything else is described in the common file
23+
properties:
24+
compatible:
25+
oneOf:
26+
# for Rockchip RK2928 and before RK3288
27+
- const: rockchip,rk2928-dw-mshc
28+
# for Rockchip RK3288
29+
- const: rockchip,rk3288-dw-mshc
30+
- items:
31+
- enum:
32+
# for Rockchip PX30
33+
- rockchip,px30-dw-mshc
34+
# for Rockchip RK3036
35+
- rockchip,rk3036-dw-mshc
36+
# for Rockchip RK322x
37+
- rockchip,rk3228-dw-mshc
38+
# for Rockchip RK3308
39+
- rockchip,rk3308-dw-mshc
40+
# for Rockchip RK3328
41+
- rockchip,rk3328-dw-mshc
42+
# for Rockchip RK3368
43+
- rockchip,rk3368-dw-mshc
44+
# for Rockchip RK3399
45+
- rockchip,rk3399-dw-mshc
46+
# for Rockchip RV1108
47+
- rockchip,rv1108-dw-mshc
48+
- const: rockchip,rk3288-dw-mshc
49+
50+
reg:
51+
maxItems: 1
52+
53+
interrupts:
54+
maxItems: 1
55+
56+
clocks:
57+
minItems: 2
58+
maxItems: 4
59+
description:
60+
Handle to "biu" and "ciu" clocks for the bus interface unit clock and
61+
the card interface unit clock. If "ciu-drive" and "ciu-sample" are
62+
specified in clock-names, it should also contain
63+
handles to these clocks.
64+
65+
clock-names:
66+
minItems: 2
67+
items:
68+
- const: biu
69+
- const: ciu
70+
- const: ciu-drive
71+
- const: ciu-sample
72+
description:
73+
Apart from the clock-names "biu" and "ciu" two more clocks
74+
"ciu-drive" and "ciu-sample" are supported. They are used
75+
to control the clock phases, "ciu-sample" is required for tuning
76+
high speed modes.
77+
78+
rockchip,default-sample-phase:
79+
allOf:
80+
- $ref: /schemas/types.yaml#/definitions/uint32
81+
minimum: 0
82+
maximum: 360
83+
default: 0
84+
description:
85+
The default phase to set "ciu-sample" at probing,
86+
low speeds or in case where all phases work at tuning time.
87+
If not specified 0 deg will be used.
88+
89+
rockchip,desired-num-phases:
90+
allOf:
91+
- $ref: /schemas/types.yaml#/definitions/uint32
92+
minimum: 0
93+
maximum: 360
94+
default: 360
95+
description:
96+
The desired number of times that the host execute tuning when needed.
97+
If not specified, the host will do tuning for 360 times,
98+
namely tuning for each degree.
99+
100+
required:
101+
- compatible
102+
- reg
103+
- interrupts
104+
- clocks
105+
- clock-names
106+
107+
examples:
108+
- |
109+
#include <dt-bindings/clock/rk3288-cru.h>
110+
#include <dt-bindings/interrupt-controller/arm-gic.h>
111+
#include <dt-bindings/interrupt-controller/irq.h>
112+
sdmmc: mmc@ff0c0000 {
113+
compatible = "rockchip,rk3288-dw-mshc";
114+
reg = <0x0 0xff0c0000 0x0 0x4000>;
115+
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
116+
clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
117+
<&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
118+
clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
119+
resets = <&cru SRST_MMC0>;
120+
reset-names = "reset";
121+
fifo-depth = <0x100>;
122+
max-frequency = <150000000>;
123+
};
124+
125+
...

Documentation/devicetree/bindings/mmc/sdhci-atmel.txt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,29 @@ Documentation/devicetree/bindings/mmc/mmc.txt and the properties used by the
55
sdhci-of-at91 driver.
66

77
Required properties:
8-
- compatible: Must be "atmel,sama5d2-sdhci".
8+
- compatible: Must be "atmel,sama5d2-sdhci" or "microchip,sam9x60-sdhci".
99
- clocks: Phandlers to the clocks.
10-
- clock-names: Must be "hclock", "multclk", "baseclk";
10+
- clock-names: Must be "hclock", "multclk", "baseclk" for
11+
"atmel,sama5d2-sdhci".
12+
Must be "hclock", "multclk" for "microchip,sam9x60-sdhci".
1113

1214
Optional properties:
15+
- assigned-clocks: The same with "multclk".
16+
- assigned-clock-rates The rate of "multclk" in order to not rely on the
17+
gck configuration set by previous components.
1318
- microchip,sdcal-inverted: when present, polarity on the SDCAL SoC pin is
1419
inverted. The default polarity for this signal is described in the datasheet.
1520
For instance on SAMA5D2, the pin is usually tied to the GND with a resistor
1621
and a capacitor (see "SDMMC I/O Calibration" chapter).
1722

1823
Example:
1924

20-
sdmmc0: sdio-host@a0000000 {
25+
mmc0: sdio-host@a0000000 {
2126
compatible = "atmel,sama5d2-sdhci";
2227
reg = <0xa0000000 0x300>;
2328
interrupts = <31 IRQ_TYPE_LEVEL_HIGH 0>;
2429
clocks = <&sdmmc0_hclk>, <&sdmmc0_gclk>, <&main>;
2530
clock-names = "hclock", "multclk", "baseclk";
31+
assigned-clocks = <&sdmmc0_gclk>;
32+
assigned-clock-rates = <480000000>;
2633
};

Documentation/devicetree/bindings/mmc/sdhci-msm.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Required properties:
1919
"qcom,msm8996-sdhci", "qcom,sdhci-msm-v4"
2020
"qcom,sdm845-sdhci", "qcom,sdhci-msm-v5"
2121
"qcom,qcs404-sdhci", "qcom,sdhci-msm-v5"
22+
"qcom,sc7180-sdhci", "qcom,sdhci-msm-v5";
2223
NOTE that some old device tree files may be floating around that only
2324
have the string "qcom,sdhci-msm-v4" without the SoC compatible string
2425
but doing that should be considered a deprecated practice.

Documentation/devicetree/bindings/mmc/sdhci-omap.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ For UHS devices which require tuning, the device tree should have a "cpu_thermal
77
Required properties:
88
- compatible: Should be "ti,dra7-sdhci" for DRA7 and DRA72 controllers
99
Should be "ti,k2g-sdhci" for K2G
10+
Should be "ti,am335-sdhci" for am335x controllers
11+
Should be "ti,am437-sdhci" for am437x controllers
1012
- ti,hwmods: Must be "mmc<n>", <n> is controller instance starting 1
1113
(Not required for K2G).
1214
- pinctrl-names: Should be subset of "default", "hs", "sdr12", "sdr25", "sdr50",
@@ -15,11 +17,20 @@ Required properties:
1517
"hs200_1_8v",
1618
- pinctrl-<n> : Pinctrl states as described in bindings/pinctrl/pinctrl-bindings.txt
1719

20+
Optional properties:
21+
- dmas: List of DMA specifiers with the controller specific format as described
22+
in the generic DMA client binding. A tx and rx specifier is required.
23+
- dma-names: List of DMA request names. These strings correspond 1:1 with the
24+
DMA specifiers listed in dmas. The string naming is to be "tx"
25+
and "rx" for TX and RX DMA requests, respectively.
26+
1827
Example:
1928
mmc1: mmc@4809c000 {
2029
compatible = "ti,dra7-sdhci";
2130
reg = <0x4809c000 0x400>;
2231
ti,hwmods = "mmc1";
2332
bus-width = <4>;
2433
vmmc-supply = <&vmmc>; /* phandle to regulator node */
34+
dmas = <&sdma 61 &sdma 62>;
35+
dma-names = "tx", "rx";
2536
};
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/mmc/synopsys-dw-mshc-common.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Synopsys Designware Mobile Storage Host Controller Common Properties
8+
9+
allOf:
10+
- $ref: "mmc-controller.yaml#"
11+
12+
maintainers:
13+
- Ulf Hansson <[email protected]>
14+
15+
# Everything else is described in the common file
16+
properties:
17+
resets:
18+
maxItems: 1
19+
20+
reset-names:
21+
const: reset
22+
23+
clock-frequency:
24+
description:
25+
Should be the frequency (in Hz) of the ciu clock. If this
26+
is specified and the ciu clock is specified then we'll try to set the ciu
27+
clock to this at probe time.
28+
29+
fifo-depth:
30+
allOf:
31+
- $ref: /schemas/types.yaml#/definitions/uint32
32+
description:
33+
The maximum size of the tx/rx fifo's. If this property is not
34+
specified, the default value of the fifo size is determined from the
35+
controller registers.
36+
37+
card-detect-delay:
38+
allOf:
39+
- $ref: /schemas/types.yaml#/definitions/uint32
40+
- default: 0
41+
description:
42+
Delay in milli-seconds before detecting card after card
43+
insert event. The default value is 0.
44+
45+
data-addr:
46+
allOf:
47+
- $ref: /schemas/types.yaml#/definitions/uint32
48+
description:
49+
Override fifo address with value provided by DT. The default FIFO reg
50+
offset is assumed as 0x100 (version < 0x240A) and 0x200(version >= 0x240A)
51+
by driver. If the controller does not follow this rule, please use
52+
this property to set fifo address in device tree.
53+
54+
fifo-watermark-aligned:
55+
allOf:
56+
- $ref: /schemas/types.yaml#/definitions/flag
57+
description:
58+
Data done irq is expected if data length is less than
59+
watermark in PIO mode. But fifo watermark is requested to be aligned
60+
with data length in some SoC so that TX/RX irq can be generated with
61+
data done irq. Add this watermark quirk to mark this requirement and
62+
force fifo watermark setting accordingly.
63+
64+
dmas:
65+
maxItems: 1
66+
67+
dma-names:
68+
const: rx-tx

0 commit comments

Comments
 (0)