171007147SMark Kettenis# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 271007147SMark Kettenis%YAML 1.2 371007147SMark Kettenis--- 471007147SMark Kettenis$id: http://devicetree.org/schemas/pinctrl/apple,pinctrl.yaml# 571007147SMark Kettenis$schema: http://devicetree.org/meta-schemas/core.yaml# 671007147SMark Kettenis 771007147SMark Kettenistitle: Apple GPIO controller 871007147SMark Kettenis 971007147SMark Kettenismaintainers: 1071007147SMark Kettenis - Mark Kettenis <kettenis@openbsd.org> 1171007147SMark Kettenis 1271007147SMark Kettenisdescription: | 1371007147SMark Kettenis The Apple GPIO controller is a simple combined pin and GPIO 1471007147SMark Kettenis controller present on Apple ARM SoC platforms, including various 1571007147SMark Kettenis iPhone and iPad devices and the "Apple Silicon" Macs. 1671007147SMark Kettenis 1771007147SMark Kettenisproperties: 1871007147SMark Kettenis compatible: 1971007147SMark Kettenis items: 20cba9c615SHector Martin - enum: 21cba9c615SHector Martin - apple,t8103-pinctrl 2243145cfeSJanne Grunau - apple,t8112-pinctrl 23cba9c615SHector Martin - apple,t6000-pinctrl 2471007147SMark Kettenis - const: apple,pinctrl 2571007147SMark Kettenis 2671007147SMark Kettenis reg: 2771007147SMark Kettenis maxItems: 1 2871007147SMark Kettenis 2971007147SMark Kettenis clocks: 3071007147SMark Kettenis maxItems: 1 3171007147SMark Kettenis 3271007147SMark Kettenis gpio-controller: true 3371007147SMark Kettenis 3471007147SMark Kettenis '#gpio-cells': 3571007147SMark Kettenis const: 2 3671007147SMark Kettenis 3771007147SMark Kettenis gpio-ranges: 3871007147SMark Kettenis maxItems: 1 3971007147SMark Kettenis 40aa68e1b8SJoey Gouly apple,npins: 41aa68e1b8SJoey Gouly $ref: /schemas/types.yaml#/definitions/uint32 42aa68e1b8SJoey Gouly description: The number of pins in this GPIO controller. 43aa68e1b8SJoey Gouly 4471007147SMark Kettenis interrupts: 4571007147SMark Kettenis description: One interrupt for each of the (up to 7) interrupt 4671007147SMark Kettenis groups supported by the controller sorted by interrupt group 4771007147SMark Kettenis number in ascending order. 4871007147SMark Kettenis minItems: 1 4971007147SMark Kettenis maxItems: 7 5071007147SMark Kettenis 5171007147SMark Kettenis interrupt-controller: true 5271007147SMark Kettenis 5369533cd3SJoey Gouly '#interrupt-cells': 5469533cd3SJoey Gouly const: 2 5569533cd3SJoey Gouly 561ed162b5SHector Martin power-domains: 571ed162b5SHector Martin maxItems: 1 581ed162b5SHector Martin 5971007147SMark KettenispatternProperties: 6071007147SMark Kettenis '-pins$': 6171007147SMark Kettenis type: object 6271007147SMark Kettenis $ref: pinmux-node.yaml# 6371007147SMark Kettenis 6471007147SMark Kettenis properties: 6571007147SMark Kettenis pinmux: 6671007147SMark Kettenis description: 6771007147SMark Kettenis Values are constructed from pin number and alternate function 6871007147SMark Kettenis configuration number using the APPLE_PINMUX() helper macro 6971007147SMark Kettenis defined in include/dt-bindings/pinctrl/apple.h. 7071007147SMark Kettenis 7171007147SMark Kettenis required: 7271007147SMark Kettenis - pinmux 7371007147SMark Kettenis 7471007147SMark Kettenis additionalProperties: false 7571007147SMark Kettenis 76c09acbc4SRafał MiłeckiallOf: 77*49cd1dd1SRob Herring - $ref: pinctrl.yaml# 78c09acbc4SRafał Miłecki 7971007147SMark Kettenisrequired: 8071007147SMark Kettenis - compatible 8171007147SMark Kettenis - reg 8271007147SMark Kettenis - gpio-controller 8371007147SMark Kettenis - '#gpio-cells' 8471007147SMark Kettenis - gpio-ranges 85aa68e1b8SJoey Gouly - apple,npins 8671007147SMark Kettenis 8771007147SMark KettenisadditionalProperties: false 8871007147SMark Kettenis 8971007147SMark Kettenisexamples: 9071007147SMark Kettenis - | 9171007147SMark Kettenis #include <dt-bindings/interrupt-controller/apple-aic.h> 9271007147SMark Kettenis #include <dt-bindings/pinctrl/apple.h> 9371007147SMark Kettenis 9471007147SMark Kettenis soc { 9571007147SMark Kettenis #address-cells = <2>; 9671007147SMark Kettenis #size-cells = <2>; 9771007147SMark Kettenis 9871007147SMark Kettenis pinctrl: pinctrl@23c100000 { 9971007147SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 10071007147SMark Kettenis reg = <0x2 0x3c100000 0x0 0x100000>; 10171007147SMark Kettenis clocks = <&gpio_clk>; 10271007147SMark Kettenis 10371007147SMark Kettenis gpio-controller; 10471007147SMark Kettenis #gpio-cells = <2>; 10571007147SMark Kettenis gpio-ranges = <&pinctrl 0 0 212>; 106aa68e1b8SJoey Gouly apple,npins = <212>; 10771007147SMark Kettenis 10871007147SMark Kettenis interrupt-controller; 10969533cd3SJoey Gouly #interrupt-cells = <2>; 11071007147SMark Kettenis interrupt-parent = <&aic>; 11171007147SMark Kettenis interrupts = <AIC_IRQ 16 IRQ_TYPE_LEVEL_HIGH>, 11271007147SMark Kettenis <AIC_IRQ 17 IRQ_TYPE_LEVEL_HIGH>, 11371007147SMark Kettenis <AIC_IRQ 18 IRQ_TYPE_LEVEL_HIGH>, 11471007147SMark Kettenis <AIC_IRQ 19 IRQ_TYPE_LEVEL_HIGH>, 11571007147SMark Kettenis <AIC_IRQ 20 IRQ_TYPE_LEVEL_HIGH>, 11671007147SMark Kettenis <AIC_IRQ 21 IRQ_TYPE_LEVEL_HIGH>, 11771007147SMark Kettenis <AIC_IRQ 22 IRQ_TYPE_LEVEL_HIGH>; 11871007147SMark Kettenis 11971007147SMark Kettenis pcie_pins: pcie-pins { 12071007147SMark Kettenis pinmux = <APPLE_PINMUX(150, 1)>, 12171007147SMark Kettenis <APPLE_PINMUX(151, 1)>, 12271007147SMark Kettenis <APPLE_PINMUX(32, 1)>; 12371007147SMark Kettenis }; 12471007147SMark Kettenis }; 12571007147SMark Kettenis }; 126