<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="en-TW" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<div>
<p class="MsoNormal">On Fri, Aug 29, 2025 at 03:30:28PM +0800, Billy Tsai wrote:<o:p></o:p></p>
<p class="MsoNormal">> > Add bindings for the pin controller found in the ASPEED AST27xx SoC.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> Please explain why you have defined 2 pin controllers and why they<o:p></o:p></p>
<p class="MsoNormal">> aren't compatible with each other.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I will add following description in next version of the patch:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">"The ASPEED AST2700 SoC contains two separate pin controllers, each<o:p></o:p></p>
<p class="MsoNormal">managed by a distinct System Control Unit (SCU).<o:p></o:p></p>
<p class="MsoNormal">Because these two controllers have different register maps, control<o:p></o:p></p>
<p class="MsoNormal">different sets of pins, support different pin configuration options, and<o:p></o:p></p>
<p class="MsoNormal">implement different multi-function switch logic, they are not compatible.<o:p></o:p></p>
<p class="MsoNormal">Therefore, two separate device tree bindings,'aspeed,ast2700-soc0-pinctrl'<o:p></o:p></p>
<p class="MsoNormal">and 'aspeed,ast2700-soc1-pinctrl', are introduced."<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">><o:p> </o:p></p>
<p class="MsoNormal">> > Signed-off-by: Billy Tsai <billy_tsai@aspeedtech.com><o:p></o:p></p>
<p class="MsoNormal">> > ---<o:p></o:p></p>
<p class="MsoNormal">> >  .../pinctrl/aspeed,ast2700-soc0-pinctrl.yaml  | 135 ++++++<o:p></o:p></p>
<p class="MsoNormal">> >  .../pinctrl/aspeed,ast2700-soc1-pinctrl.yaml  | 452 ++++++++++++++++++<o:p></o:p></p>
<p class="MsoNormal">> >  2 files changed, 587 insertions(+)<o:p></o:p></p>
<p class="MsoNormal">> >  create mode 100644 Documentation/devicetree/bindings/pinctrl/aspeed,ast2700-soc0-pinctrl.yaml<o:p></o:p></p>
<p class="MsoNormal">> >  create mode 100644 Documentation/devicetree/bindings/pinctrl/aspeed,ast2700-soc1-pinctrl.yaml<o:p></o:p></p>
<p class="MsoNormal">><o:p> </o:p></p>
<p class="MsoNormal">> > diff --git a/Documentation/devicetree/bindings/pinctrl/aspeed,ast2700-soc0-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/aspeed,ast2700-soc0-pinctrl.yaml<o:p></o:p></p>
<p class="MsoNormal">> > new file mode 100644<o:p></o:p></p>
<p class="MsoNormal">> > index 000000000000..8abdc2fe1d8b<o:p></o:p></p>
<p class="MsoNormal">> > --- /dev/null<o:p></o:p></p>
<p class="MsoNormal">> > +++ b/Documentation/devicetree/bindings/pinctrl/aspeed,ast2700-soc0-pinctrl.yaml<o:p></o:p></p>
<p class="MsoNormal">> > @@ -0,0 +1,135 @@<o:p></o:p></p>
<p class="MsoNormal">> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)<o:p></o:p></p>
<p class="MsoNormal">> > +%YAML 1.2<o:p></o:p></p>
<p class="MsoNormal">> > +---<o:p></o:p></p>
<p class="MsoNormal">> > +$id: http://devicetree.org/schemas/pinctrl/aspeed,ast2700-soc0-pinctrl.yaml#<o:p></o:p></p>
<p class="MsoNormal">> > +$schema: http://devicetree.org/meta-schemas/core.yaml#<o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +title: ASPEED AST2700 SoC0 Pin Controller<o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +maintainers:<o:p></o:p></p>
<p class="MsoNormal">> > +  - Billy Tsai <billy_tsai@aspeedtech.com><o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +description: |+<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> What's the '+' for?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I will remove it.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> > +  The pin controller node should be the child of a syscon node with the<o:p></o:p></p>
<p class="MsoNormal">> > +  required property:<o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +  - compatible: Should be one of the following:<o:p></o:p></p>
<p class="MsoNormal">> > +                "aspeed,ast2700-scu0", "syscon", "simple-mfd"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> This should be a schema in the aspeed,ast2700-scu0 binding, not a<o:p></o:p></p>
<p class="MsoNormal">> free-form text description.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +  Refer to the bindings described in<o:p></o:p></p>
<p class="MsoNormal">> > +  Documentation/devicetree/bindings/mfd/syscon.yaml<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> That does not cover 'simple-mfd' cases.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I will remove the description about the parent node and simplify the description<o:p></o:p></p>
<p class="MsoNormal">as following:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">"Bindings for the ASPEED AST2700 SoC0 Pin Controller."<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +properties:<o:p></o:p></p>
<p class="MsoNormal">> > +  compatible:<o:p></o:p></p>
<p class="MsoNormal">> > +    const: aspeed,ast2700-soc0-pinctrl<o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +additionalProperties:<o:p></o:p></p>
<p class="MsoNormal">> > +  $ref: pinmux-node.yaml#<o:p></o:p></p>
<p class="MsoNormal">> > +  additionalProperties: false<o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +  properties:<o:p></o:p></p>
<p class="MsoNormal">> > +    function:<o:p></o:p></p>
<p class="MsoNormal">> > +      enum:<o:p></o:p></p>
<p class="MsoNormal">> > +        - EMMC<o:p></o:p></p>
<p class="MsoNormal">> > +        - VGADDC<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3A<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2A<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3B<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2B<o:p></o:p></p>
<p class="MsoNormal">> > +        - JTAG0<o:p></o:p></p>
<p class="MsoNormal">> > +        - PCIERC<o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +    groups:<o:p></o:p></p>
<p class="MsoNormal">> > +      enum:<o:p></o:p></p>
<p class="MsoNormal">> > +        - EMMCG1<o:p></o:p></p>
<p class="MsoNormal">> > +        - EMMCG4<o:p></o:p></p>
<p class="MsoNormal">> > +        - EMMCG8<o:p></o:p></p>
<p class="MsoNormal">> > +        - EMMCWPN<o:p></o:p></p>
<p class="MsoNormal">> > +        - EMMCCDN<o:p></o:p></p>
<p class="MsoNormal">> > +        - VGADDC<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3AXHD<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3AXHPD<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3AXH<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3AXHP<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3AXH2B<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3AXHP2B<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AXHD1<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AXHPD1<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AD1<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AXH<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AXHP<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AXH2B<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AXHP2B<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AHPD0<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AD0<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AH<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2AHP<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3BXHD<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3BXHPD<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3BXH<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3BXHP<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3BXH2A<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3BXHP2A<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BXHD1<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BXHPD1<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BD1<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BXH<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BXHP<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BXH2A<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BXHP2A<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BHPD0<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BD0<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BH<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB2BHP<o:p></o:p></p>
<p class="MsoNormal">> > +        - JTAGM0<o:p></o:p></p>
<p class="MsoNormal">> > +        - PSP<o:p></o:p></p>
<p class="MsoNormal">> > +        - SSP<o:p></o:p></p>
<p class="MsoNormal">> > +        - TSP<o:p></o:p></p>
<p class="MsoNormal">> > +        - DDR<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3A<o:p></o:p></p>
<p class="MsoNormal">> > +        - USB3B<o:p></o:p></p>
<p class="MsoNormal">> > +        - PCIEA<o:p></o:p></p>
<p class="MsoNormal">> > +        - PCIEB<o:p></o:p></p>
<p class="MsoNormal">> > +        - PCIERC0PERST<o:p></o:p></p>
<p class="MsoNormal">> > +        - PCIERC1PERST<o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +    pins: true<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> You need to define the type as string or uint32 is possible.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Ok, I will use the following to replace:<o:p></o:p></p>
<p class="MsoNormal">pins:<o:p></o:p></p>
<p class="MsoNormal">      $ref: /schemas/types.yaml#/definitions/string-array<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> > +    drive-strength:<o:p></o:p></p>
<p class="MsoNormal">> > +      minimum: 0<o:p></o:p></p>
<p class="MsoNormal">> > +      maximum: 15<o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +allOf:<o:p></o:p></p>
<p class="MsoNormal">> > +  - $ref: pinctrl.yaml#<o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +required:<o:p></o:p></p>
<p class="MsoNormal">> > +  - compatible<o:p></o:p></p>
<p class="MsoNormal">> > +<o:p></o:p></p>
<p class="MsoNormal">> > +examples:<o:p></o:p></p>
<p class="MsoNormal">> > +  - |<o:p></o:p></p>
<p class="MsoNormal">> > +     / {<o:p></o:p></p>
<p class="MsoNormal">> > +          #address-cells = <2>;<o:p></o:p></p>
<p class="MsoNormal">> > +          #size-cells = <2>;<o:p></o:p></p>
<p class="MsoNormal">> > +          syscon0: syscon@12c02000 {<o:p></o:p></p>
<p class="MsoNormal">> > +              compatible = "aspeed,ast2700-scu0", "syscon", "simple-mfd";<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">> Drop the example here and put a complete example in the schema for the<o:p></o:p></p>
<p class="MsoNormal">> syscon.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Ok, I will use the following example to replace:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">pinctrl0: pinctrl{<o:p></o:p></p>
<p class="MsoNormal">        compatible = "aspeed,ast2700-soc0-pinctrl";<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        pinctrl_emmc_default: emmc-default {<o:p></o:p></p>
<p class="MsoNormal">                function = "EMMC";<o:p></o:p></p>
<p class="MsoNormal">                groups = "EMMCG1";<o:p></o:p></p>
<p class="MsoNormal">        };<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">        pinctrl_emmcclk_driving: emmcclk-driving {<o:p></o:p></p>
<p class="MsoNormal">                pins = "AC14";<o:p></o:p></p>
<p class="MsoNormal">                drive-strength = <2>;<o:p></o:p></p>
<p class="MsoNormal">        };<o:p></o:p></p>
<p class="MsoNormal">};<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">Thanks<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Best Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Billy Tsai<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</div>
</body>
</html>