Re: [PATCH v7 1/3] dt-bindings: pinctrl: Add aspeed,ast2700-soc0-pinctrl

Billy Tsai <[email protected]>
Newsgroups org.ozlabs.lists.openbmc,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-clk,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel,org.ozlabs.lists.linux-aspeed
Message-ID <OSQPR06MB7252EB0C2A1A3313DE49406B8B202@OSQPR06MB7252.apcprd06.prod.outlook.com>
> > +    properties:
> > +      function:
> > +        enum:
> > +          - EMMC
> > +          - JTAGDDR
> > +          - JTAGM0
> > +          - JTAGPCIEA
> > +          - JTAGPCIEB
> > +          - JTAGPSP
> > +          - JTAGSSP
> > +          - JTAGTSP
> > +          - JTAGUSB3A
> > +          - JTAGUSB3B
> > +          - PCIERC0PERST
> > +          - PCIERC1PERST
> > +          - TSPRSTN
> > +          - UFSCLKI
> > +          - USB2AD0
> > +          - USB2AD1
> > +          - USB2AH
> > +          - USB2AHP
> > +          - USB2AHPD0
> > +          - USB2AXH
> > +          - USB2AXH2B
> > +          - USB2AXHD1
> > +          - USB2AXHP
> > +          - USB2AXHP2B
> > +          - USB2AXHPD1
> > +          - USB2BD0
> > +          - USB2BD1
> > +          - USB2BH
> > +          - USB2BHP
> > +          - USB2BHPD0
> > +          - USB2BXH
> > +          - USB2BXH2A
> > +          - USB2BXHD1
> > +          - USB2BXHP
> > +          - USB2BXHP2A
> > +          - USB2BXHPD1
> > +          - USB3AXH
> > +          - USB3AXH2B
> > +          - USB3AXHD
> > +          - USB3AXHP
> > +          - USB3AXHP2B
> > +          - USB3AXHPD
> > +          - USB3BXH
> > +          - USB3BXH2A
> > +          - USB3BXHD
> > +          - USB3BXHP
> > +          - USB3BXHP2A
> > +          - USB3BXHPD
> > +          - VB
> > +          - VGADDC
> > +
> > +      groups:
> > +        enum:
> > +          - EMMCCDN
> > +          - EMMCG1
> > +          - EMMCG4
> > +          - EMMCG8
> > +          - EMMCWPN
> > +          - JTAG0
> > +          - PCIERC0PERST
> > +          - PCIERC1PERST
> > +          - TSPRSTN
> > +          - UFSCLKI
> > +          - USB2A
> > +          - USB2AAP
> > +          - USB2ABP
> > +          - USB2ADAP
> > +          - USB2AH
> > +          - USB2AHAP
> > +          - USB2B
> > +          - USB2BAP
> > +          - USB2BBP
> > +          - USB2BDBP
> > +          - USB2BH
> > +          - USB2BHBP
> > +          - USB3A
> > +          - USB3AAP
> > +          - USB3ABP
> > +          - USB3B
> > +          - USB3BAP
> > +          - USB3BBP
> > +          - VB0
> > +          - VB1
> > +          - VGADDC
> > +      pins:
> > +        enum:
> > +          - AB13
> > +          - AB14
> > +          - AC13
> > +          - AC14
> > +          - AD13
> > +          - AD14
> > +          - AE13
> > +          - AE14
> > +          - AE15
> > +          - AF13
> > +          - AF14
> > +          - AF15

> Why do you have groups and pins?

> Is it valid in your device to have groups and pins in the same node?

The intent is to support both group-based mux selection and
configuration, as well as per-pin configuration.

In our hardware:

- `function` + `groups` are used for pinmux selection.
- `pins` is used for per-pin configuration (e.g. drive strength,
  bias settings).
- `groups` may also be used for group-level configuration.

As a result, both `groups` and `pins` may appear in the same node,
but they serve different purposes and do not conflict:

- `groups` selects the mux function and may apply configuration to
  the entire group.
- `pins` allows overriding or specifying configuration for individual
  pins.

In most cases, only one of them is needed, but both are allowed when
both group-level and per-pin configuration are required.

Thanks
Billy Tsai
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.