[PATCH v9 1/3] dt-bindings: mmc: mtk-sd: extend interrupts and pinctrls properties

Axe Yang axe.yang at mediatek.com
Wed Apr 6 02:38:37 PDT 2022


On Fri, 2022-04-01 at 12:43 -0500, Rob Herring wrote:
> On Fri, Apr 01, 2022 at 11:22:13AM +0200, Ulf Hansson wrote:
> > On Tue, 29 Mar 2022 at 05:29, Axe Yang <axe.yang at mediatek.com>
> > 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.
> > > 
> > > Signed-off-by: Axe Yang <axe.yang at mediatek.com>
> > > ---
> > >  .../devicetree/bindings/mmc/mtk-sd.yaml         | 17
> > > ++++++++++++++++-
> > >  1 file changed, 16 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
> > > b/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
> > > index 297ada03e3de..3872a6ce2867 100644
> > > --- a/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
> > > +++ b/Documentation/devicetree/bindings/mmc/mtk-sd.yaml
> > > @@ -69,12 +69,22 @@ 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.
> > 
> > If I understand correctly, the extended interrupt (a GPIO irq) may
> > not
> > necessarily share the same interrupt parent as the primary device
> > interrupt.
> > 
> > Perhaps it's then better to extend this with "interrupts-extended"
> > instead. See Documentation/devicetree/bindings/interrupt-
> > controller/interrupts.txt.
> 
> 'interrupts-extended' is interchangeable with 'interrupts'. For
> schemas, 
> use 'interrupts' and the tools take care of supporting both forms.
> 

hello Ulf, you are right, the wakeup interrupt(parent is &pio) do not
share same parent as primary interrupt(parent is &gic). And as you
said, I am using "interrupts-extended" to declare the wakeup irq, see
commit message in patch 3/3:
         &mmcX {
                 ...
                 interrupts-extended = <...>,
                                       <&pio xxx IRQ_TYPE_LEVEL_LOW>;
                 ...
                 pinctrl-names = "default", "state_uhs", "state_eint";
                 ...
                 pinctrl-2 = <&mmc2_pins_eint>;
                 ...
                 cap-sdio-irq;
                 keep-power-in-suspend;
                 wakeup-source;
                 ...
         };

But the wakup interrupt is for SDIO only, in most instances, MSDC is
been used as eMMC/SD card host, they do not need this interrupt. So as
Rob suggested, I think we'd better keep using 'interrupts'. And I will
update the description for 'interrupts', suggest to use 'interrupts-
extended' to declare SDIO wakeup interrupt.

And 'interrupt-names' is a good idea, I will add this property to
document too. Thank you for the advice.

Regards,
Axe



More information about the Linux-mediatek mailing list