Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at nocache-cleanup 260 lines 7.2 kB view raw
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/mmc/marvell,xenon-sdhci.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Marvell Xenon SDHCI Controller 8 9description: | 10 This file documents differences between the core MMC properties described by 11 mmc-controller.yaml and the properties used by the Xenon implementation. 12 13 Multiple SDHCs might be put into a single Xenon IP, to save size and cost. 14 Each SDHC is independent and owns independent resources, such as register 15 sets, clock and PHY. 16 17 Each SDHC should have an independent device tree node. 18 19maintainers: 20 - Ulf Hansson <ulf.hansson@linaro.org> 21 22properties: 23 compatible: 24 oneOf: 25 - enum: 26 - marvell,armada-cp110-sdhci 27 - marvell,armada-ap806-sdhci 28 29 - items: 30 - enum: 31 - marvell,armada-ap807-sdhci 32 - marvell,ac5-sdhci 33 - const: marvell,armada-ap806-sdhci 34 35 - items: 36 - const: marvell,armada-3700-sdhci 37 - const: marvell,sdhci-xenon 38 39 reg: 40 minItems: 1 41 items: 42 - description: Xenon IP registers 43 - description: Armada 3700 SoC PHY PAD Voltage Control register 44 45 clocks: 46 minItems: 1 47 maxItems: 2 48 49 clock-names: 50 minItems: 1 51 items: 52 - const: core 53 - const: axi 54 55 dma-coherent: true 56 57 interrupts: 58 maxItems: 1 59 60 iommus: 61 maxItems: 1 62 63 marvell,pad-type: 64 $ref: /schemas/types.yaml#/definitions/string 65 enum: 66 - sd 67 - fixed-1-8v 68 description: 69 Type of Armada 3700 SoC PHY PAD Voltage Controller register. If "sd" is 70 selected, SoC PHY PAD is set as 3.3V at the beginning and is switched to 71 1.8V when later in higher speed mode. If "fixed-1-8v" is selected, SoC PHY 72 PAD is fixed 1.8V, such as for eMMC. 73 74 marvell,xenon-sdhc-id: 75 $ref: /schemas/types.yaml#/definitions/uint32 76 minimum: 0 77 maximum: 7 78 description: | 79 Indicate the corresponding bit index of current SDHC in SDHC System 80 Operation Control Register Bit[7:0]. Set/clear the corresponding bit to 81 enable/disable current SDHC. 82 83 marvell,xenon-phy-type: 84 $ref: /schemas/types.yaml#/definitions/string 85 enum: 86 - emmc 5.1 phy 87 - emmc 5.0 phy 88 description: | 89 Xenon support multiple types of PHYs. To select eMMC 5.1 PHY, set: 90 marvell,xenon-phy-type = "emmc 5.1 phy" eMMC 5.1 PHY is the default 91 choice if this property is not provided. To select eMMC 5.0 PHY, set: 92 marvell,xenon-phy-type = "emmc 5.0 phy" 93 94 All those types of PHYs can support eMMC, SD and SDIO. Please note that 95 this property only presents the type of PHY. It doesn't stand for the 96 entire SDHC type or property. For example, "emmc 5.1 phy" doesn't mean 97 that this Xenon SDHC only supports eMMC 5.1. 98 99 marvell,xenon-phy-znr: 100 $ref: /schemas/types.yaml#/definitions/uint32 101 minimum: 0 102 maximum: 0x1f 103 default: 0xf 104 description: | 105 Set PHY ZNR value. 106 Only available for eMMC PHY. 107 108 marvell,xenon-phy-zpr: 109 $ref: /schemas/types.yaml#/definitions/uint32 110 minimum: 0 111 maximum: 0x1f 112 default: 0xf 113 description: | 114 Set PHY ZPR value. 115 Only available for eMMC PHY. 116 117 marvell,xenon-phy-nr-success-tun: 118 $ref: /schemas/types.yaml#/definitions/uint32 119 minimum: 1 120 maximum: 7 121 default: 0x4 122 description: | 123 Set the number of required consecutive successful sampling points 124 used to identify a valid sampling window, in tuning process. 125 126 marvell,xenon-phy-tun-step-divider: 127 $ref: /schemas/types.yaml#/definitions/uint32 128 default: 64 129 description: | 130 Set the divider for calculating TUN_STEP. 131 132 marvell,xenon-phy-slow-mode: 133 type: boolean 134 description: | 135 If this property is selected, transfers will bypass PHY. 136 Only available when bus frequency lower than 55MHz in SDR mode. 137 Disabled by default. Please only try this property if timing issues 138 always occur with PHY enabled in eMMC HS SDR, SD SDR12, SD SDR25, 139 SD Default Speed and HS mode and eMMC legacy speed mode. 140 141 marvell,xenon-tun-count: 142 $ref: /schemas/types.yaml#/definitions/uint32 143 default: 0x9 144 description: | 145 Xenon SDHC SoC usually doesn't provide re-tuning counter in 146 Capabilities Register 3 Bit[11:8]. 147 This property provides the re-tuning counter. 148 149allOf: 150 - $ref: sdhci-common.yaml# 151 - if: 152 properties: 153 compatible: 154 contains: 155 const: marvell,armada-3700-sdhci 156 157 then: 158 properties: 159 reg: 160 minItems: 2 161 162 required: 163 - marvell,pad-type 164 165 else: 166 properties: 167 reg: 168 maxItems: 1 169 170 marvell,pad-type: false 171 172required: 173 - compatible 174 - reg 175 - clocks 176 - clock-names 177 178unevaluatedProperties: false 179 180examples: 181 - | 182 // For eMMC 183 #include <dt-bindings/interrupt-controller/arm-gic.h> 184 #include <dt-bindings/interrupt-controller/irq.h> 185 186 mmc@aa0000 { 187 compatible = "marvell,armada-ap807-sdhci", "marvell,armada-ap806-sdhci"; 188 reg = <0xaa0000 0x1000>; 189 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 190 clocks = <&emmc_clk 0>, <&axi_clk 0>; 191 clock-names = "core", "axi"; 192 bus-width = <4>; 193 marvell,xenon-phy-slow-mode; 194 marvell,xenon-tun-count = <11>; 195 non-removable; 196 no-sd; 197 no-sdio; 198 199 /* Vmmc and Vqmmc are both fixed */ 200 }; 201 202 - | 203 // For SD/SDIO 204 #include <dt-bindings/interrupt-controller/arm-gic.h> 205 #include <dt-bindings/interrupt-controller/irq.h> 206 207 mmc@ab0000 { 208 compatible = "marvell,armada-cp110-sdhci"; 209 reg = <0xab0000 0x1000>; 210 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 211 vqmmc-supply = <&sd_vqmmc_regulator>; 212 vmmc-supply = <&sd_vmmc_regulator>; 213 clocks = <&sdclk 0>, <&axi_clk 0>; 214 clock-names = "core", "axi"; 215 bus-width = <4>; 216 marvell,xenon-tun-count = <9>; 217 }; 218 219 - | 220 // For eMMC with compatible "marvell,armada-3700-sdhci": 221 #include <dt-bindings/interrupt-controller/arm-gic.h> 222 #include <dt-bindings/interrupt-controller/irq.h> 223 224 mmc@aa0000 { 225 compatible = "marvell,armada-3700-sdhci", "marvell,sdhci-xenon"; 226 reg = <0xaa0000 0x1000>, 227 <0x17808 0x4>; 228 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 229 clocks = <&emmcclk 0>; 230 clock-names = "core"; 231 bus-width = <8>; 232 mmc-ddr-1_8v; 233 mmc-hs400-1_8v; 234 non-removable; 235 no-sd; 236 no-sdio; 237 238 /* Vmmc and Vqmmc are both fixed */ 239 240 marvell,pad-type = "fixed-1-8v"; 241 }; 242 243 - | 244 // For SD/SDIO with compatible "marvell,armada-3700-sdhci": 245 #include <dt-bindings/interrupt-controller/arm-gic.h> 246 #include <dt-bindings/interrupt-controller/irq.h> 247 248 mmc@ab0000 { 249 compatible = "marvell,armada-3700-sdhci", "marvell,sdhci-xenon"; 250 reg = <0xab0000 0x1000>, 251 <0x17808 0x4>; 252 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 253 vqmmc-supply = <&sd_regulator>; 254 /* Vmmc is fixed */ 255 clocks = <&sdclk 0>; 256 clock-names = "core"; 257 bus-width = <4>; 258 259 marvell,pad-type = "sd"; 260 };