Skip to content

Commit 4ddd4f0

Browse files
committed
Merge tag 'mmc-v7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
Pull MMC updates from Ulf Hansson: "MMC core: - Add NXP vendor and IW61x device IDs for WiFi chips over SDIO - Add quirk for incorrect manufacturing date - Add support for manufacturing date beyond 2025 - Optimize support for secure erase/trim for some Kingston eMMCs - Remove support for the legacy "enable-sdio-wakeup" DT property - Use single block writes in the retry path MMC host: - dw_mmc: - A great amount of cleanups/simplifications to improve the code - Add clk_phase_map support - Remove mshc DT alias support - dw_mmc-rockchip: - Fix runtime PM support for internal phase - Add support for the RV1103B variant - loongson2: - Add support for the Loongson-2K0300 SD/SDIO/eMMC controller - mtk-sd: - Add support for the MT8189 variant - renesas_sdhi_core: - Add support for selecting an optional mux - rtsx_pci_sdmmc: - Simplify voltage switch handling - sdhci: - Stop advertising the driver in dmesg - sdhci-esdhc-imx: - Add 1-bit bus width support - Add support for the NXP S32N79 variant - sdhci-msm: - Add support for the IPQ5210 and IPQ9650 variants - Add support for wrapped keys - Enable ICE for CQE-capable controllers with non-CQE cards - sdhci-of-arasan: - Add support for the Axiado AX3000 variant - sdhci-of-aspeed: - Add support for the AST2700 variant - sdhci-of-bst: - Add driver for the Black Sesame Technologies C1200 controller - sdhci-of-dwcmshc: - Add support for the Canaan K230 variant - Add support for the HPE GSC variant - Prevent clock glitches to avoid malfunction - sdhci-of-k1: - Add support for the K3 variant mux core/consumers: - core: - Add helper functions for getting optional and selected mux-state - i2c-omap: - Convert to devm_mux_state_get_optional_selected() - phy-renesas: - Convert to devm_mux_state_get_optional_selected() - phy-can-transceiver: - Convert to devm_mux_state_get_optional()" * tag 'mmc-v7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (131 commits) mmc: sdhci-msm: Fix the wrapped key handling mmc: sdhci-of-dwcmshc: Disable clock before DLL configuration mmc: core: Simplify with scoped for each OF child loop mmc: core: Optimize size of struct mmc_queue_req mmc: vub300: clean up module init mmc: vub300: rename probe error labels mmc: dw_mmc: Remove dw_mci_start_request wrapper and rename core function mmc: dw_mmc: Inline dw_mci_queue_request() into dw_mci_request() mmc: block: Use MQRQ_XFER_SINGLE_BLOCK for both read and write recovery mmc: mmc_test: Replace hard-coded values with macros and consolidate test parameters mmc: block: Convert to use DEFINE_SIMPLE_DEV_PM_OPS() mmc: core: Replace the hard-coded shift value 9 with SECTOR_SHIFT mmc: sdhci-dwcmshc: Refactor Rockchip platform data for controller revisions mmc: core: Switch to use pm_ptr() for mmc_host_class_dev_pm_ops mmc: core: Remove legacy 'enable-sdio-wakeup' DT property support mmc: mmc_test: use kzalloc_flex mmc: mtk-sd: disable new_tx/rx and modify related settings for mt8189 dt-bindings: mmc: hisilicon,hi3660-dw-mshc: Convert to DT schema dt-bindings: mmc: sdhci-msm: add IPQ9650 compatible mmc: block: use single block write in retry ...
2 parents b996233 + 52957cd commit 4ddd4f0

76 files changed

Lines changed: 2564 additions & 1415 deletions

Some content is hidden

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

Documentation/devicetree/bindings/mmc/amlogic,meson-gx-mmc.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ allOf:
1919
properties:
2020
compatible:
2121
oneOf:
22+
- items:
23+
- enum:
24+
- amlogic,t7-mmc
25+
- const: amlogic,meson-axg-mmc
2226
- const: amlogic,meson-axg-mmc
2327
- items:
2428
- const: amlogic,meson-gx-mmc

Documentation/devicetree/bindings/mmc/arasan,sdhci.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ properties:
106106
description:
107107
For this device it is strongly suggested to include
108108
arasan,soc-ctl-syscon.
109+
- items:
110+
- const: axiado,ax3000-sdhci-5.1-emmc # Axiado AX3000 eMMC controller
111+
- const: arasan,sdhci-5.1
109112

110113
reg:
111114
maxItems: 1
@@ -121,6 +124,8 @@ properties:
121124
- const: clk_ahb
122125
- const: gate
123126

127+
dma-coherent: true
128+
124129
interrupts:
125130
minItems: 1
126131
maxItems: 2

Documentation/devicetree/bindings/mmc/arm,pl18x.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ maintainers:
1111
- Ulf Hansson <ulf.hansson@linaro.org>
1212

1313
description:
14-
The ARM PrimeCells MMCI PL180 and PL181 provides an interface for
14+
The ARM PrimeCell MMCI PL180 and PL181 provides an interface for
1515
reading and writing to MultiMedia and SD cards alike. Over the years
1616
vendors have use the VHDL code from ARM to create derivative MMC/SD/SDIO
1717
host controllers with very similar characteristics.

Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,15 @@ description: |+
2222
2323
properties:
2424
compatible:
25-
enum:
26-
- aspeed,ast2400-sd-controller
27-
- aspeed,ast2500-sd-controller
28-
- aspeed,ast2600-sd-controller
25+
oneOf:
26+
- enum:
27+
- aspeed,ast2400-sd-controller
28+
- aspeed,ast2500-sd-controller
29+
- aspeed,ast2600-sd-controller
30+
- items:
31+
- const: aspeed,ast2700-sd-controller
32+
- const: aspeed,ast2600-sd-controller
33+
2934
reg:
3035
maxItems: 1
3136
description: Common configuration registers
@@ -38,6 +43,9 @@ properties:
3843
maxItems: 1
3944
description: The SD/SDIO controller clock gate
4045

46+
resets:
47+
maxItems: 1
48+
4149
patternProperties:
4250
"^sdhci@[0-9a-f]+$":
4351
type: object
@@ -46,10 +54,15 @@ patternProperties:
4654

4755
properties:
4856
compatible:
49-
enum:
50-
- aspeed,ast2400-sdhci
51-
- aspeed,ast2500-sdhci
52-
- aspeed,ast2600-sdhci
57+
oneOf:
58+
- enum:
59+
- aspeed,ast2400-sdhci
60+
- aspeed,ast2500-sdhci
61+
- aspeed,ast2600-sdhci
62+
- items:
63+
- const: aspeed,ast2700-sdhci
64+
- const: aspeed,ast2600-sdhci
65+
5366
reg:
5467
maxItems: 1
5568
description: The SDHCI registers
@@ -78,6 +91,18 @@ required:
7891
- ranges
7992
- clocks
8093

94+
if:
95+
properties:
96+
compatible:
97+
contains:
98+
const: aspeed,ast2700-sd-controller
99+
then:
100+
required:
101+
- resets
102+
else:
103+
properties:
104+
resets: false
105+
81106
examples:
82107
- |
83108
#include <dt-bindings/clock/aspeed-clock.h>

Documentation/devicetree/bindings/mmc/brcm,iproc-sdhci.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,14 @@ properties:
2626
reg:
2727
minItems: 1
2828

29+
dma-coherent: true
30+
2931
interrupts:
3032
maxItems: 1
3133

34+
iommus:
35+
maxItems: 1
36+
3237
clocks:
3338
maxItems: 1
3439
description:
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/mmc/bst,c1200-sdhci.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Black Sesame Technologies DWCMSHC SDHCI Controller
8+
9+
maintainers:
10+
- Ge Gordon <gordon.ge@bst.ai>
11+
12+
allOf:
13+
- $ref: sdhci-common.yaml#
14+
15+
properties:
16+
compatible:
17+
const: bst,c1200-sdhci
18+
19+
reg:
20+
items:
21+
- description: Core SDHCI registers
22+
- description: CRM registers
23+
24+
interrupts:
25+
maxItems: 1
26+
27+
clocks:
28+
maxItems: 1
29+
30+
clock-names:
31+
items:
32+
- const: core
33+
34+
memory-region:
35+
maxItems: 1
36+
37+
dma-coherent: true
38+
39+
required:
40+
- compatible
41+
- reg
42+
- interrupts
43+
- clocks
44+
- clock-names
45+
46+
unevaluatedProperties: false
47+
48+
examples:
49+
- |
50+
#include <dt-bindings/interrupt-controller/arm-gic.h>
51+
#include <dt-bindings/interrupt-controller/irq.h>
52+
53+
bus {
54+
#address-cells = <2>;
55+
#size-cells = <2>;
56+
57+
mmc@22200000 {
58+
compatible = "bst,c1200-sdhci";
59+
reg = <0x0 0x22200000 0x0 0x1000>,
60+
<0x0 0x23006000 0x0 0x1000>;
61+
interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
62+
clocks = <&clk_mmc>;
63+
clock-names = "core";
64+
memory-region = <&mmc0_reserved>;
65+
max-frequency = <200000000>;
66+
bus-width = <8>;
67+
non-removable;
68+
dma-coherent;
69+
};
70+
};

Documentation/devicetree/bindings/mmc/cdns,sdhci.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,6 @@ allOf:
134134
items:
135135
- description: Host controller registers
136136
- description: Elba byte-lane enable register for writes
137-
required:
138-
- resets
139137
else:
140138
properties:
141139
reg:

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ properties:
3535
- fsl,imx8mm-usdhc
3636
- fsl,imxrt1050-usdhc
3737
- nxp,s32g2-usdhc
38+
- nxp,s32n79-usdhc
3839
- items:
3940
- const: fsl,imx50-esdhc
4041
- const: fsl,imx53-esdhc
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/mmc/hisilicon,hi3660-dw-mshc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Hisilicon specific extensions to the Synopsys Designware Mobile Storage Host Controller
8+
9+
maintainers:
10+
- Zhangfei Gao <zhangfei.gao@linaro.org>
11+
12+
description:
13+
The Synopsys designware mobile storage host controller is used to interface
14+
a SoC with storage medium such as eMMC or SD/MMC cards. This file documents
15+
differences between the core Synopsys dw mshc controller properties described
16+
by synopsys-dw-mshc.txt and the properties used by the Hisilicon specific
17+
extensions to the Synopsys Designware Mobile Storage Host Controller.
18+
19+
allOf:
20+
- $ref: /schemas/mmc/synopsys-dw-mshc-common.yaml#
21+
22+
properties:
23+
compatible:
24+
oneOf:
25+
- enum:
26+
- hisilicon,hi3660-dw-mshc
27+
- hisilicon,hi4511-dw-mshc
28+
- hisilicon,hi6220-dw-mshc
29+
- items:
30+
- const: hisilicon,hi3670-dw-mshc
31+
- const: hisilicon,hi3660-dw-mshc
32+
33+
reg:
34+
maxItems: 1
35+
36+
interrupts:
37+
maxItems: 1
38+
39+
clocks:
40+
items:
41+
- description: card interface unit clock
42+
- description: bus interface unit clock
43+
44+
clock-names:
45+
items:
46+
- const: ciu
47+
- const: biu
48+
49+
hisilicon,peripheral-syscon:
50+
$ref: /schemas/types.yaml#/definitions/phandle
51+
description: phandle of syscon used to control peripheral.
52+
53+
required:
54+
- compatible
55+
- reg
56+
- interrupts
57+
- clocks
58+
- clock-names
59+
60+
unevaluatedProperties: false
61+
62+
examples:
63+
- |
64+
#include <dt-bindings/clock/hi3620-clock.h>
65+
#include <dt-bindings/gpio/gpio.h>
66+
#include <dt-bindings/interrupt-controller/arm-gic.h>
67+
68+
mmc@fcd03000 {
69+
compatible = "hisilicon,hi4511-dw-mshc";
70+
reg = <0xfcd03000 0x1000>;
71+
interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
72+
#address-cells = <1>;
73+
#size-cells = <0>;
74+
clocks = <&mmc_clock HI3620_SD_CIUCLK>, <&clock HI3620_DDRC_PER_CLK>;
75+
clock-names = "ciu", "biu";
76+
vmmc-supply = <&ldo12>;
77+
fifo-depth = <0x100>;
78+
pinctrl-names = "default";
79+
pinctrl-0 = <&sd_pmx_pins &sd_cfg_func1 &sd_cfg_func2>;
80+
bus-width = <4>;
81+
disable-wp;
82+
cd-gpios = <&gpio10 3 GPIO_ACTIVE_HIGH>;
83+
cap-mmc-highspeed;
84+
cap-sd-highspeed;
85+
};
86+
87+
- |
88+
#include <dt-bindings/clock/hi6220-clock.h>
89+
#include <dt-bindings/gpio/gpio.h>
90+
#include <dt-bindings/interrupt-controller/arm-gic.h>
91+
92+
soc {
93+
#address-cells = <2>;
94+
#size-cells = <2>;
95+
96+
mmc@f723e000 {
97+
compatible = "hisilicon,hi6220-dw-mshc";
98+
reg = <0x0 0xf723e000 0x0 0x1000>;
99+
interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
100+
clocks = <&clock_sys HI6220_MMC1_CIUCLK>,
101+
<&clock_sys HI6220_MMC1_CLK>;
102+
clock-names = "ciu", "biu";
103+
bus-width = <4>;
104+
disable-wp;
105+
cap-sd-highspeed;
106+
sd-uhs-sdr12;
107+
sd-uhs-sdr25;
108+
card-detect-delay = <200>;
109+
hisilicon,peripheral-syscon = <&ao_ctrl>;
110+
cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
111+
pinctrl-names = "default", "idle";
112+
pinctrl-0 = <&sd_pmx_func &sd_clk_cfg_func &sd_cfg_func>;
113+
pinctrl-1 = <&sd_pmx_idle &sd_clk_cfg_idle &sd_cfg_idle>;
114+
vqmmc-supply = <&ldo7>;
115+
vmmc-supply = <&ldo10>;
116+
};
117+
};

0 commit comments

Comments
 (0)