1*71007147SMark Kettenis# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*71007147SMark Kettenis%YAML 1.2 3*71007147SMark Kettenis--- 4*71007147SMark Kettenis$id: http://devicetree.org/schemas/pinctrl/apple,pinctrl.yaml# 5*71007147SMark Kettenis$schema: http://devicetree.org/meta-schemas/core.yaml# 6*71007147SMark Kettenis 7*71007147SMark Kettenistitle: Apple GPIO controller 8*71007147SMark Kettenis 9*71007147SMark Kettenismaintainers: 10*71007147SMark Kettenis - Mark Kettenis <kettenis@openbsd.org> 11*71007147SMark Kettenis 12*71007147SMark Kettenisdescription: | 13*71007147SMark Kettenis The Apple GPIO controller is a simple combined pin and GPIO 14*71007147SMark Kettenis controller present on Apple ARM SoC platforms, including various 15*71007147SMark Kettenis iPhone and iPad devices and the "Apple Silicon" Macs. 16*71007147SMark Kettenis 17*71007147SMark Kettenisproperties: 18*71007147SMark Kettenis compatible: 19*71007147SMark Kettenis items: 20*71007147SMark Kettenis - const: apple,t8103-pinctrl 21*71007147SMark Kettenis - const: apple,pinctrl 22*71007147SMark Kettenis 23*71007147SMark Kettenis reg: 24*71007147SMark Kettenis maxItems: 1 25*71007147SMark Kettenis 26*71007147SMark Kettenis clocks: 27*71007147SMark Kettenis maxItems: 1 28*71007147SMark Kettenis 29*71007147SMark Kettenis gpio-controller: true 30*71007147SMark Kettenis 31*71007147SMark Kettenis '#gpio-cells': 32*71007147SMark Kettenis const: 2 33*71007147SMark Kettenis 34*71007147SMark Kettenis gpio-ranges: 35*71007147SMark Kettenis maxItems: 1 36*71007147SMark Kettenis 37*71007147SMark Kettenis interrupts: 38*71007147SMark Kettenis description: One interrupt for each of the (up to 7) interrupt 39*71007147SMark Kettenis groups supported by the controller sorted by interrupt group 40*71007147SMark Kettenis number in ascending order. 41*71007147SMark Kettenis minItems: 1 42*71007147SMark Kettenis maxItems: 7 43*71007147SMark Kettenis 44*71007147SMark Kettenis interrupt-controller: true 45*71007147SMark Kettenis 46*71007147SMark KettenispatternProperties: 47*71007147SMark Kettenis '-pins$': 48*71007147SMark Kettenis type: object 49*71007147SMark Kettenis $ref: pinmux-node.yaml# 50*71007147SMark Kettenis 51*71007147SMark Kettenis properties: 52*71007147SMark Kettenis pinmux: 53*71007147SMark Kettenis description: 54*71007147SMark Kettenis Values are constructed from pin number and alternate function 55*71007147SMark Kettenis configuration number using the APPLE_PINMUX() helper macro 56*71007147SMark Kettenis defined in include/dt-bindings/pinctrl/apple.h. 57*71007147SMark Kettenis 58*71007147SMark Kettenis required: 59*71007147SMark Kettenis - pinmux 60*71007147SMark Kettenis 61*71007147SMark Kettenis additionalProperties: false 62*71007147SMark Kettenis 63*71007147SMark Kettenisrequired: 64*71007147SMark Kettenis - compatible 65*71007147SMark Kettenis - reg 66*71007147SMark Kettenis - gpio-controller 67*71007147SMark Kettenis - '#gpio-cells' 68*71007147SMark Kettenis - gpio-ranges 69*71007147SMark Kettenis 70*71007147SMark KettenisadditionalProperties: false 71*71007147SMark Kettenis 72*71007147SMark Kettenisexamples: 73*71007147SMark Kettenis - | 74*71007147SMark Kettenis #include <dt-bindings/interrupt-controller/apple-aic.h> 75*71007147SMark Kettenis #include <dt-bindings/pinctrl/apple.h> 76*71007147SMark Kettenis 77*71007147SMark Kettenis soc { 78*71007147SMark Kettenis #address-cells = <2>; 79*71007147SMark Kettenis #size-cells = <2>; 80*71007147SMark Kettenis 81*71007147SMark Kettenis pinctrl: pinctrl@23c100000 { 82*71007147SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 83*71007147SMark Kettenis reg = <0x2 0x3c100000 0x0 0x100000>; 84*71007147SMark Kettenis clocks = <&gpio_clk>; 85*71007147SMark Kettenis 86*71007147SMark Kettenis gpio-controller; 87*71007147SMark Kettenis #gpio-cells = <2>; 88*71007147SMark Kettenis gpio-ranges = <&pinctrl 0 0 212>; 89*71007147SMark Kettenis 90*71007147SMark Kettenis interrupt-controller; 91*71007147SMark Kettenis interrupt-parent = <&aic>; 92*71007147SMark Kettenis interrupts = <AIC_IRQ 16 IRQ_TYPE_LEVEL_HIGH>, 93*71007147SMark Kettenis <AIC_IRQ 17 IRQ_TYPE_LEVEL_HIGH>, 94*71007147SMark Kettenis <AIC_IRQ 18 IRQ_TYPE_LEVEL_HIGH>, 95*71007147SMark Kettenis <AIC_IRQ 19 IRQ_TYPE_LEVEL_HIGH>, 96*71007147SMark Kettenis <AIC_IRQ 20 IRQ_TYPE_LEVEL_HIGH>, 97*71007147SMark Kettenis <AIC_IRQ 21 IRQ_TYPE_LEVEL_HIGH>, 98*71007147SMark Kettenis <AIC_IRQ 22 IRQ_TYPE_LEVEL_HIGH>; 99*71007147SMark Kettenis 100*71007147SMark Kettenis pcie_pins: pcie-pins { 101*71007147SMark Kettenis pinmux = <APPLE_PINMUX(150, 1)>, 102*71007147SMark Kettenis <APPLE_PINMUX(151, 1)>, 103*71007147SMark Kettenis <APPLE_PINMUX(32, 1)>; 104*71007147SMark Kettenis }; 105*71007147SMark Kettenis }; 106*71007147SMark Kettenis }; 107