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 master 406 lines 11 kB view raw
1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/mmc/mtk-sd.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: MTK MSDC Storage Host Controller 8 9maintainers: 10 - Chaotian Jing <chaotian.jing@mediatek.com> 11 - Wenbin Mei <wenbin.mei@mediatek.com> 12 13properties: 14 compatible: 15 oneOf: 16 - enum: 17 - mediatek,mt2701-mmc 18 - mediatek,mt2712-mmc 19 - mediatek,mt6779-mmc 20 - mediatek,mt6795-mmc 21 - mediatek,mt7620-mmc 22 - mediatek,mt7622-mmc 23 - mediatek,mt7986-mmc 24 - mediatek,mt7988-mmc 25 - mediatek,mt8135-mmc 26 - mediatek,mt8173-mmc 27 - mediatek,mt8183-mmc 28 - mediatek,mt8189-mmc 29 - mediatek,mt8196-mmc 30 - mediatek,mt8516-mmc 31 - items: 32 - const: mediatek,mt7623-mmc 33 - const: mediatek,mt2701-mmc 34 - items: 35 - enum: 36 - mediatek,mt6893-mmc 37 - mediatek,mt8186-mmc 38 - mediatek,mt8188-mmc 39 - mediatek,mt8192-mmc 40 - mediatek,mt8195-mmc 41 - mediatek,mt8365-mmc 42 - const: mediatek,mt8183-mmc 43 44 reg: 45 minItems: 1 46 items: 47 - description: base register (required). 48 - description: top base register (required for MT8183). 49 50 clocks: 51 description: 52 Should contain phandle for the clock feeding the MMC controller. 53 minItems: 2 54 maxItems: 7 55 56 clock-names: 57 minItems: 2 58 maxItems: 7 59 60 interrupts: 61 description: 62 Should at least contain MSDC GIC interrupt. To support SDIO in-band wakeup, an extended 63 interrupt is required and be configured as wakeup source irq. 64 minItems: 1 65 maxItems: 2 66 67 interrupt-names: 68 items: 69 - const: msdc 70 - const: sdio_wakeup 71 72 pinctrl-names: 73 description: 74 Should at least contain default and state_uhs. To support SDIO in-band wakeup, dat1 pin 75 will be switched between GPIO mode and SDIO DAT1 mode, state_eint is mandatory in this 76 scenario. 77 minItems: 2 78 items: 79 - const: default 80 - const: state_uhs 81 - const: state_eint 82 83 pinctrl-0: 84 description: 85 should contain default/high speed pin ctrl. 86 maxItems: 1 87 88 pinctrl-1: 89 description: 90 should contain uhs mode pin ctrl. 91 maxItems: 1 92 93 pinctrl-2: 94 description: 95 should switch dat1 pin to GPIO mode. 96 maxItems: 1 97 98 hs400-ds-delay: 99 $ref: /schemas/types.yaml#/definitions/uint32 100 description: 101 HS400 DS delay setting. 102 minimum: 0 103 maximum: 0xffffffff 104 105 mediatek,hs200-cmd-int-delay: 106 $ref: /schemas/types.yaml#/definitions/uint32 107 description: 108 HS200 command internal delay setting. 109 This field has total 32 stages. 110 The value is an integer from 0 to 31. 111 minimum: 0 112 maximum: 31 113 114 mediatek,hs400-cmd-int-delay: 115 $ref: /schemas/types.yaml#/definitions/uint32 116 description: 117 HS400 command internal delay setting. 118 This field has total 32 stages. 119 The value is an integer from 0 to 31. 120 minimum: 0 121 maximum: 31 122 123 mediatek,hs400-cmd-resp-sel-rising: 124 $ref: /schemas/types.yaml#/definitions/flag 125 description: 126 HS400 command response sample selection. 127 If present, HS400 command responses are sampled on rising edges. 128 If not present, HS400 command responses are sampled on falling edges. 129 130 mediatek,hs400-ds-dly3: 131 $ref: /schemas/types.yaml#/definitions/uint32 132 description: 133 Gear of the third delay line for DS for input data latch in data 134 pad macro, there are 32 stages from 0 to 31. 135 For different corner IC, the time is different about one step, it is 136 about 100ps. 137 The value is confirmed by doing scan and calibration to find a best 138 value with corner IC and it is valid only for HS400 mode. 139 minimum: 0 140 maximum: 31 141 142 mediatek,latch-ck: 143 $ref: /schemas/types.yaml#/definitions/uint32 144 description: 145 Some SoCs do not support enhance_rx, need set correct latch-ck to avoid 146 data crc error caused by stop clock(fifo full) Valid range = [0:0x7]. 147 if not present, default value is 0. 148 applied to compatible "mediatek,mt2701-mmc". 149 minimum: 0 150 maximum: 7 151 152 mediatek,tuning-step: 153 $ref: /schemas/types.yaml#/definitions/uint32 154 description: 155 Some SoCs need extend tuning step for better delay value to avoid CRC issue. 156 If not present, default tuning step is 32. For eMMC and SD, this can yield 157 satisfactory calibration results in most cases. 158 enum: [32, 64] 159 default: 32 160 161 resets: 162 maxItems: 1 163 164 reset-names: 165 const: hrst 166 167required: 168 - compatible 169 - reg 170 - interrupts 171 - clocks 172 - clock-names 173 - pinctrl-names 174 - pinctrl-0 175 - pinctrl-1 176 - vmmc-supply 177 - vqmmc-supply 178 179allOf: 180 - $ref: mmc-controller.yaml# 181 - if: 182 properties: 183 compatible: 184 enum: 185 - mediatek,mt2701-mmc 186 - mediatek,mt6779-mmc 187 - mediatek,mt6795-mmc 188 - mediatek,mt7620-mmc 189 - mediatek,mt7622-mmc 190 - mediatek,mt7623-mmc 191 - mediatek,mt8135-mmc 192 - mediatek,mt8173-mmc 193 - mediatek,mt8183-mmc 194 - mediatek,mt8186-mmc 195 - mediatek,mt8188-mmc 196 - mediatek,mt8189-mmc 197 - mediatek,mt8195-mmc 198 - mediatek,mt8196-mmc 199 - mediatek,mt8516-mmc 200 then: 201 properties: 202 clocks: 203 minItems: 2 204 items: 205 - description: source clock 206 - description: HCLK which used for host 207 - description: independent source clock gate 208 clock-names: 209 minItems: 2 210 items: 211 - const: source 212 - const: hclk 213 - const: source_cg 214 215 - if: 216 properties: 217 compatible: 218 contains: 219 const: mediatek,mt2712-mmc 220 then: 221 properties: 222 clocks: 223 minItems: 3 224 items: 225 - description: source clock 226 - description: HCLK which used for host 227 - description: independent source clock gate 228 - description: bus clock used for internal register access (required for MSDC0/3). 229 clock-names: 230 minItems: 3 231 items: 232 - const: source 233 - const: hclk 234 - const: source_cg 235 - const: bus_clk 236 237 - if: 238 properties: 239 compatible: 240 contains: 241 enum: 242 - mediatek,mt7986-mmc 243 - mediatek,mt7988-mmc 244 - mediatek,mt8183-mmc 245 - mediatek,mt8189-mmc 246 - mediatek,mt8196-mmc 247 then: 248 properties: 249 reg: 250 minItems: 2 251 else: 252 properties: 253 reg: 254 maxItems: 1 255 256 - if: 257 properties: 258 compatible: 259 contains: 260 enum: 261 - mediatek,mt7986-mmc 262 then: 263 properties: 264 clocks: 265 minItems: 3 266 items: 267 - description: source clock 268 - description: HCLK which used for host 269 - description: independent source clock gate 270 - description: bus clock used for internal register access (required for MSDC0/3). 271 - description: msdc subsys clock gate 272 clock-names: 273 minItems: 3 274 items: 275 - const: source 276 - const: hclk 277 - const: source_cg 278 - const: bus_clk 279 - const: sys_cg 280 281 - if: 282 properties: 283 compatible: 284 contains: 285 enum: 286 - mediatek,mt7988-mmc 287 then: 288 properties: 289 clocks: 290 items: 291 - description: source clock 292 - description: HCLK which used for host 293 - description: Advanced eXtensible Interface 294 - description: Advanced High-performance Bus clock 295 clock-names: 296 items: 297 - const: source 298 - const: hclk 299 - const: axi_cg 300 - const: ahb_cg 301 302 - if: 303 properties: 304 compatible: 305 enum: 306 - mediatek,mt6893-mmc 307 - mediatek,mt8186-mmc 308 - mediatek,mt8188-mmc 309 - mediatek,mt8195-mmc 310 then: 311 properties: 312 clocks: 313 items: 314 - description: source clock 315 - description: HCLK which used for host 316 - description: independent source clock gate 317 - description: crypto clock used for data encrypt/decrypt (optional) 318 clock-names: 319 items: 320 - const: source 321 - const: hclk 322 - const: source_cg 323 - const: crypto 324 325 - if: 326 properties: 327 compatible: 328 contains: 329 const: mediatek,mt8192-mmc 330 then: 331 properties: 332 clocks: 333 items: 334 - description: source clock 335 - description: HCLK which used for host 336 - description: independent source clock gate 337 - description: msdc subsys clock gate 338 - description: peripheral bus clock gate 339 - description: AXI bus clock gate 340 - description: AHB bus clock gate 341 clock-names: 342 items: 343 - const: source 344 - const: hclk 345 - const: source_cg 346 - const: sys_cg 347 - const: pclk_cg 348 - const: axi_cg 349 - const: ahb_cg 350 351unevaluatedProperties: false 352 353examples: 354 - | 355 #include <dt-bindings/interrupt-controller/irq.h> 356 #include <dt-bindings/interrupt-controller/arm-gic.h> 357 #include <dt-bindings/clock/mt8173-clk.h> 358 mmc0: mmc@11230000 { 359 compatible = "mediatek,mt8173-mmc"; 360 reg = <0x11230000 0x1000>; 361 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_LOW>; 362 vmmc-supply = <&mt6397_vemc_3v3_reg>; 363 vqmmc-supply = <&mt6397_vio18_reg>; 364 clocks = <&pericfg CLK_PERI_MSDC30_0>, 365 <&topckgen CLK_TOP_MSDC50_0_H_SEL>; 366 clock-names = "source", "hclk"; 367 pinctrl-names = "default", "state_uhs"; 368 pinctrl-0 = <&mmc0_pins_default>; 369 pinctrl-1 = <&mmc0_pins_uhs>; 370 assigned-clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>; 371 assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>; 372 hs400-ds-delay = <0x14015>; 373 mediatek,hs200-cmd-int-delay = <26>; 374 mediatek,hs400-cmd-int-delay = <14>; 375 mediatek,hs400-cmd-resp-sel-rising; 376 }; 377 378 mmc3: mmc@11260000 { 379 compatible = "mediatek,mt8173-mmc"; 380 reg = <0x11260000 0x1000>; 381 clock-names = "source", "hclk"; 382 clocks = <&pericfg CLK_PERI_MSDC30_3>, 383 <&topckgen CLK_TOP_MSDC50_2_H_SEL>; 384 interrupt-names = "msdc", "sdio_wakeup"; 385 interrupts-extended = <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_LOW 0>, 386 <&pio 23 IRQ_TYPE_LEVEL_LOW>; 387 pinctrl-names = "default", "state_uhs", "state_eint"; 388 pinctrl-0 = <&mmc2_pins_default>; 389 pinctrl-1 = <&mmc2_pins_uhs>; 390 pinctrl-2 = <&mmc2_pins_eint>; 391 bus-width = <4>; 392 max-frequency = <200000000>; 393 cap-sd-highspeed; 394 sd-uhs-sdr104; 395 keep-power-in-suspend; 396 wakeup-source; 397 cap-sdio-irq; 398 no-mmc; 399 no-sd; 400 non-removable; 401 vmmc-supply = <&sdio_fixed_3v3>; 402 vqmmc-supply = <&mt6397_vgp3_reg>; 403 mmc-pwrseq = <&wifi_pwrseq>; 404 }; 405 406...