Re: [RESEND v12 1/3] dt-bindings: mmc: mtk-sd: extend interrupts and pinctrls properties
From: Ulf Hansson
Date: Fri Jun 03 2022 - 03:29:24 EST
On Wed, 25 May 2022 at 03:51, Axe Yang <axe.yang@xxxxxxxxxxxx> wrote:
>
> 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: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
> Signed-off-by: Axe Yang <axe.yang@xxxxxxxxxxxx>
> ---
> .../devicetree/bindings/mmc/mtk-sd.yaml | 50 ++++++++++++++++++-
> 1 file changed, 49 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/mmc/mtk-sd.yaml b/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
> index 2a2e9fa8c188..e83bf10281d6 100644
> --- a/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
> +++ b/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
> @@ -72,12 +72,27 @@ properties:
> - const: ahb_cg
>
> interrupts:
> - maxItems: 1
> + description:
> + Should at least contain MSDC GIC interrupt. To support SDIO in-band wakeup, an extended
> + interrupt is required and be configured as wakeup source irq.
> + minItems: 1
> + maxItems: 2
> +
> + interrupt-names:
> + items:
> + - const: msdc
> + - const: sdio_wakeup
>
> pinctrl-names:
> + description:
> + Should at least contain default and state_uhs. To support SDIO in-band wakeup, dat1 pin
> + will be switched between GPIO mode and SDIO DAT1 mode, state_eint and state_dat1 are
> + mandatory in this scenarios.
> + minItems: 2
> items:
> - const: default
> - const: state_uhs
> + - const: state_eint
Don't you need something along the lines of the below instead? I mean
the "state_eint" isn't always needed, right?
oneOf:
- items:
- const: default
- const: state_uhs
- items:
- const: default
- const: state_uhs
- const: state_eint
>
> pinctrl-0:
> description:
> @@ -89,6 +104,11 @@ properties:
> should contain uhs mode pin ctrl.
> maxItems: 1
>
> + pinctrl-2:
> + description:
> + should switch dat1 pin to GPIO mode.
> + maxItems: 1
> +
> assigned-clocks:
> description:
> PLL of the source clock.
> @@ -208,4 +228,32 @@ examples:
> mediatek,hs400-cmd-resp-sel-rising;
> };
>
> + mmc3: mmc@11260000 {
> + compatible = "mediatek,mt8173-mmc";
> + reg = <0x11260000 0x1000>;
> + clock-names = "source", "hclk";
> + clocks = <&pericfg CLK_PERI_MSDC30_3>,
> + <&topckgen CLK_TOP_MSDC50_2_H_SEL>;
> + interrupt-names = "msdc", "sdio_wakeup";
> + interrupts-extended = <&gic GIC_SPI 74 IRQ_TYPE_LEVEL_LOW 0>,
> + <&pio 23 IRQ_TYPE_LEVEL_LOW>;
> + pinctrl-names = "default", "state_uhs", "state_eint";
> + pinctrl-0 = <&mmc2_pins_default>;
> + pinctrl-1 = <&mmc2_pins_uhs>;
> + pinctrl-2 = <&mmc2_pins_eint>;
> + bus-width = <4>;
> + max-frequency = <200000000>;
> + cap-sd-highspeed;
> + sd-uhs-sdr104;
> + keep-power-in-suspend;
> + wakeup-source;
> + cap-sdio-irq;
> + no-mmc;
> + no-sd;
> + non-removable;
> + vmmc-supply = <&sdio_fixed_3v3>;
> + vqmmc-supply = <&mt6397_vgp3_reg>;
> + mmc-pwrseq = <&wifi_pwrseq>;
> + };
> +
> ...
> --
> 2.25.1
>
Kind regards
Uffe