Documentation / devicetree / bindings / pinctrl / aspeed,ast2700-soc0-pinctrl.yaml


Based on kernel version 7.2. Page generated on 2026-08-20 08:41 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/aspeed,ast2700-soc0-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ASPEED AST2700 SoC0 Pin Controller

maintainers:
  - Billy Tsai <billy_tsai@aspeedtech.com>

description: >
  The AST2700 features a dual-SoC architecture with two interconnected SoCs,
  each having its own System Control Unit (SCU) for independent pin control.
  This pin controller manages the pin multiplexing for SoC0.
 
  The SoC0 pin controller manages pin functions including eMMC, VGA DDC,
  dual USB3/USB2 ports (A and B), JTAG, and PCIe root complex interfaces.

properties:
  compatible:
    const: aspeed,ast2700-soc0-pinctrl

  reg:
    maxItems: 1

patternProperties:
  '-state$':
    description: |
      Pin control state.
 
      If 'function' is present, the node describes a pinmux state and must
      specify 'groups'.
 
      For pin configuration, exactly one of 'groups' or 'pins' must be
      specified in each state node. Group-level configuration applies to all
      pins in the group. Pin-level configuration may be supplied in a
      separate state node for individual pins; when both group-level and
      pin-level configuration apply to the same pin, the pin-level
      configuration takes precedence.

    type: object
    allOf:
      - $ref: pinmux-node.yaml#
      - $ref: pincfg-node.yaml#
      - if:
          required:
            - function
        then:
          required:
            - groups
      - oneOf:
          - required:
              - groups
          - required:
              - pins

    additionalProperties: false

    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

      drive-strength:
        enum: [3, 6, 8, 11, 16, 18, 20, 23, 30, 32, 33, 35, 37, 38, 39, 41]

      bias-disable: true
      bias-pull-up: true
      bias-pull-down: true

required:
  - compatible
  - reg

allOf:
  - $ref: pinctrl.yaml#

additionalProperties: false

examples:
  - |
    pinctrl@400 {
        compatible = "aspeed,ast2700-soc0-pinctrl";
        reg = <0x400 0x318>;
        emmc-state {
            function = "EMMC";
            groups = "EMMCG1";
        };
    };