^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) $id: http://devicetree.org/schemas/gpio/mrvl-gpio.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) title: Marvell PXA GPIO controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) - Linus Walleij <linus.walleij@linaro.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) - Bartosz Golaszewski <bgolaszewski@baylibre.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) - Rob Herring <robh+dt@kernel.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) allOf:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) - if:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) contains:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) - intel,pxa25x-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) - intel,pxa26x-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) - intel,pxa27x-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) - intel,pxa3xx-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) then:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) interrupts:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) minItems: 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) maxItems: 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) interrupt-names:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) - const: gpio0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - const: gpio1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) - const: gpio_mux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) - if:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) contains:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) - marvell,mmp-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) - marvell,mmp2-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) then:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) interrupts:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) interrupt-names:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) - const: gpio_mux
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) $nodename:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) pattern: '^gpio@[0-9a-f]+$'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) - intel,pxa25x-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) - intel,pxa26x-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) - intel,pxa27x-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) - intel,pxa3xx-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) - marvell,mmp-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) - marvell,mmp2-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) - marvell,pxa93x-gpio
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) reg:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) clocks:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) resets:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) ranges: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) '#address-cells':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) const: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) '#size-cells':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) const: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) gpio-controller: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) '#gpio-cells':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) const: 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) gpio-ranges:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) interrupts: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) interrupt-names: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) interrupt-controller: true
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) '#interrupt-cells':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) const: 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) patternProperties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) '^gpio@[0-9a-f]*$':
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) type: object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) reg:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) - reg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) - compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) - '#address-cells'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) - '#size-cells'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) - reg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) - gpio-controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) - '#gpio-cells'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) - interrupts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) - interrupt-names
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) - interrupt-controller
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) - '#interrupt-cells'
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) #include <dt-bindings/clock/pxa-clock.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) gpio@40e00000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) compatible = "intel,pxa3xx-gpio";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) #size-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) reg = <0x40e00000 0x10000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) gpio-controller;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) #gpio-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) interrupts = <8>, <9>, <10>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) interrupt-names = "gpio0", "gpio1", "gpio_mux";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) clocks = <&clks CLK_GPIO>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) interrupt-controller;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) #interrupt-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) #include <dt-bindings/clock/marvell,pxa910.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) gpio@d4019000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) compatible = "marvell,mmp-gpio";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) #address-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) #size-cells = <1>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) reg = <0xd4019000 0x1000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) gpio-controller;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) #gpio-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) interrupts = <49>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) interrupt-names = "gpio_mux";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) clocks = <&soc_clocks PXA910_CLK_GPIO>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) resets = <&soc_clocks PXA910_CLK_GPIO>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) interrupt-controller;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) #interrupt-cells = <2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) ranges;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) gpio@d4019000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) reg = <0xd4019000 0x4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) gpio@d4019004 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) reg = <0xd4019004 0x4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) gpio@d4019008 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) reg = <0xd4019008 0x4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) gpio@d4019100 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) reg = <0xd4019100 0x4>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) ...