File Index
Files and directories
Sign in
FILE

apple,pinctrl.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/pinctrl/apple,pinctrl.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Apple GPIO controller
  8
  9maintainers:
 10  - Mark Kettenis <kettenis@openbsd.org>
 11
 12description: |
 13  The Apple GPIO controller is a simple combined pin and GPIO
 14  controller present on Apple ARM SoC platforms, including various
 15  iPhone and iPad devices and the "Apple Silicon" Macs.
 16
 17properties:
 18  compatible:
 19    oneOf:
 20      - items:
 21          - const: apple,t6020-pinctrl
 22          - const: apple,t8103-pinctrl
 23      - items:
 24          # Do not add additional SoC to this list.
 25          - enum:
 26              - apple,s5l8960x-pinctrl
 27              - apple,t7000-pinctrl
 28              - apple,s8000-pinctrl
 29              - apple,t8010-pinctrl
 30              - apple,t8015-pinctrl
 31              - apple,t8103-pinctrl
 32              - apple,t8112-pinctrl
 33              - apple,t6000-pinctrl
 34          - const: apple,pinctrl
 35
 36  reg:
 37    maxItems: 1
 38
 39  clocks:
 40    maxItems: 1
 41
 42  gpio-controller: true
 43
 44  '#gpio-cells':
 45    const: 2
 46
 47  gpio-ranges:
 48    maxItems: 1
 49
 50  apple,npins:
 51    $ref: /schemas/types.yaml#/definitions/uint32
 52    description: The number of pins in this GPIO controller.
 53
 54  interrupts:
 55    description: One interrupt for each of the (up to 7) interrupt
 56      groups supported by the controller sorted by interrupt group
 57      number in ascending order.
 58    minItems: 1
 59    maxItems: 7
 60
 61  interrupt-controller: true
 62
 63  '#interrupt-cells':
 64    const: 2
 65
 66  power-domains:
 67    maxItems: 1
 68
 69patternProperties:
 70  '-pins$':
 71    type: object
 72    $ref: pinmux-node.yaml#
 73
 74    properties:
 75      pinmux:
 76        description:
 77          Values are constructed from pin number and alternate function
 78          configuration number using the APPLE_PINMUX() helper macro
 79          defined in include/dt-bindings/pinctrl/apple.h.
 80
 81    required:
 82      - pinmux
 83
 84    additionalProperties: false
 85
 86allOf:
 87  - $ref: pinctrl.yaml#
 88
 89required:
 90  - compatible
 91  - reg
 92  - gpio-controller
 93  - '#gpio-cells'
 94  - gpio-ranges
 95  - apple,npins
 96
 97additionalProperties: false
 98
 99examples:
100  - |
101    #include <dt-bindings/interrupt-controller/apple-aic.h>
102    #include <dt-bindings/pinctrl/apple.h>
103
104    soc {
105      #address-cells = <2>;
106      #size-cells = <2>;
107
108      pinctrl: pinctrl@23c100000 {
109        compatible = "apple,t8103-pinctrl", "apple,pinctrl";
110        reg = <0x2 0x3c100000 0x0 0x100000>;
111        clocks = <&gpio_clk>;
112
113        gpio-controller;
114        #gpio-cells = <2>;
115        gpio-ranges = <&pinctrl 0 0 212>;
116        apple,npins = <212>;
117
118        interrupt-controller;
119        #interrupt-cells = <2>;
120        interrupt-parent = <&aic>;
121        interrupts = <AIC_IRQ 16 IRQ_TYPE_LEVEL_HIGH>,
122                     <AIC_IRQ 17 IRQ_TYPE_LEVEL_HIGH>,
123                     <AIC_IRQ 18 IRQ_TYPE_LEVEL_HIGH>,
124                     <AIC_IRQ 19 IRQ_TYPE_LEVEL_HIGH>,
125                     <AIC_IRQ 20 IRQ_TYPE_LEVEL_HIGH>,
126                     <AIC_IRQ 21 IRQ_TYPE_LEVEL_HIGH>,
127                     <AIC_IRQ 22 IRQ_TYPE_LEVEL_HIGH>;
128
129        pcie_pins: pcie-pins {
130          pinmux = <APPLE_PINMUX(150, 1)>,
131                   <APPLE_PINMUX(151, 1)>,
132                   <APPLE_PINMUX(32, 1)>;
133        };
134      };
135    };
~/ Read-only file preview.