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

dt-bindings: mmc: mtk-sd: extend interrupts and pinctrls properties

Extend interrupts and pinctrls for SDIO wakeup interrupt feature.
This feature allow SDIO devices alarm asynchronous interrupt to host
even when host stop providing clock to SDIO card. An extra wakeup
interrupt and pinctrl states for SDIO DAT1 pin state switching are
required in this scenario.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Axe Yang <axe.yang@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20220726062842.18846-2-axe.yang@mediatek.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Axe Yang and committed by
Ulf Hansson
035cc395 d2f35ed0

+49 -1
+49 -1
Documentation/devicetree/bindings/mmc/mtk-sd.yaml
··· 70 70 - const: ahb_cg 71 71 72 72 interrupts: 73 - maxItems: 1 73 + description: 74 + Should at least contain MSDC GIC interrupt. To support SDIO in-band wakeup, an extended 75 + interrupt is required and be configured as wakeup source irq. 76 + minItems: 1 77 + maxItems: 2 78 + 79 + interrupt-names: 80 + items: 81 + - const: msdc 82 + - const: sdio_wakeup 74 83 75 84 pinctrl-names: 85 + description: 86 + Should at least contain default and state_uhs. To support SDIO in-band wakeup, dat1 pin 87 + will be switched between GPIO mode and SDIO DAT1 mode, state_eint is mandatory in this 88 + scenario. 89 + minItems: 2 76 90 items: 77 91 - const: default 78 92 - const: state_uhs 93 + - const: state_eint 79 94 80 95 pinctrl-0: 81 96 description: ··· 100 85 pinctrl-1: 101 86 description: 102 87 should contain uhs mode pin ctrl. 88 + maxItems: 1 89 + 90 + pinctrl-2: 91 + description: 92 + should switch dat1 pin to GPIO mode. 103 93 maxItems: 1 104 94 105 95 assigned-clocks: ··· 224 204 mediatek,hs200-cmd-int-delay = <26>; 225 205 mediatek,hs400-cmd-int-delay = <14>; 226 206 mediatek,hs400-cmd-resp-sel-rising; 207 + }; 208 + 209 + mmc3: mmc@11260000 { 210 + compatible = "mediatek,mt8173-mmc"; 211 + reg = <0x11260000 0x1000>; 212 + clock-names = "source", "hclk"; 213 + clocks = <&pericfg CLK_PERI_MSDC30_3>, 214 + <&topckgen CLK_TOP_MSDC50_2_H_SEL>; 215 + interrupt-names = "msdc", "sdio_wakeup"; 216 + interrupts-extended = <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_LOW 0>, 217 + <&pio 23 IRQ_TYPE_LEVEL_LOW>; 218 + pinctrl-names = "default", "state_uhs", "state_eint"; 219 + pinctrl-0 = <&mmc2_pins_default>; 220 + pinctrl-1 = <&mmc2_pins_uhs>; 221 + pinctrl-2 = <&mmc2_pins_eint>; 222 + bus-width = <4>; 223 + max-frequency = <200000000>; 224 + cap-sd-highspeed; 225 + sd-uhs-sdr104; 226 + keep-power-in-suspend; 227 + wakeup-source; 228 + cap-sdio-irq; 229 + no-mmc; 230 + no-sd; 231 + non-removable; 232 + vmmc-supply = <&sdio_fixed_3v3>; 233 + vqmmc-supply = <&mt6397_vgp3_reg>; 234 + mmc-pwrseq = <&wifi_pwrseq>; 227 235 }; 228 236 229 237 ...