0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/gpio/gpio-mxs.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Freescale MXS GPIO controller
0008
0009 maintainers:
0010 - Shawn Guo <shawnguo@kernel.org>
0011 - Anson Huang <Anson.Huang@nxp.com>
0012
0013 description: |
0014 The Freescale MXS GPIO controller is part of MXS PIN controller.
0015 The GPIOs are organized in port/bank, each port consists of 32 GPIOs.
0016 As the GPIO controller is embedded in the PIN controller and all the
0017 GPIO ports share the same IO space with PIN controller, the GPIO node
0018 will be represented as sub-nodes of MXS pinctrl node.
0019
0020 properties:
0021 compatible:
0022 enum:
0023 - fsl,imx23-pinctrl
0024 - fsl,imx28-pinctrl
0025
0026 '#address-cells':
0027 const: 1
0028 '#size-cells':
0029 const: 0
0030
0031 reg:
0032 maxItems: 1
0033
0034 patternProperties:
0035 "gpio@[0-9]+$":
0036 type: object
0037 properties:
0038 compatible:
0039 enum:
0040 - fsl,imx23-gpio
0041 - fsl,imx28-gpio
0042
0043 reg:
0044 maxItems: 1
0045
0046 interrupts:
0047 description: Should be the port interrupt shared by all 32 pins.
0048 maxItems: 1
0049
0050 interrupt-controller: true
0051
0052 "#interrupt-cells":
0053 const: 2
0054
0055 "#gpio-cells":
0056 const: 2
0057
0058 gpio-controller: true
0059
0060 required:
0061 - compatible
0062 - reg
0063 - interrupts
0064 - interrupt-controller
0065 - "#interrupt-cells"
0066 - "#gpio-cells"
0067 - gpio-controller
0068
0069 additionalProperties: false
0070
0071 required:
0072 - compatible
0073 - reg
0074 - '#address-cells'
0075 - '#size-cells'
0076
0077 additionalProperties: false
0078
0079 examples:
0080 - |
0081 pinctrl@80018000 {
0082 #address-cells = <1>;
0083 #size-cells = <0>;
0084 compatible = "fsl,imx28-pinctrl";
0085 reg = <0x80018000 0x2000>;
0086
0087 gpio@0 {
0088 compatible = "fsl,imx28-gpio";
0089 reg = <0>;
0090 interrupts = <127>;
0091 gpio-controller;
0092 #gpio-cells = <2>;
0093 interrupt-controller;
0094 #interrupt-cells = <2>;
0095 };
0096
0097 gpio@1 {
0098 compatible = "fsl,imx28-gpio";
0099 reg = <1>;
0100 interrupts = <126>;
0101 gpio-controller;
0102 #gpio-cells = <2>;
0103 interrupt-controller;
0104 #interrupt-cells = <2>;
0105 };
0106
0107 gpio@2 {
0108 compatible = "fsl,imx28-gpio";
0109 reg = <2>;
0110 interrupts = <125>;
0111 gpio-controller;
0112 #gpio-cells = <2>;
0113 interrupt-controller;
0114 #interrupt-cells = <2>;
0115 };
0116
0117 gpio@3 {
0118 compatible = "fsl,imx28-gpio";
0119 reg = <3>;
0120 interrupts = <124>;
0121 gpio-controller;
0122 #gpio-cells = <2>;
0123 interrupt-controller;
0124 #interrupt-cells = <2>;
0125 };
0126
0127 gpio@4 {
0128 compatible = "fsl,imx28-gpio";
0129 reg = <4>;
0130 interrupts = <123>;
0131 gpio-controller;
0132 #gpio-cells = <2>;
0133 interrupt-controller;
0134 #interrupt-cells = <2>;
0135 };
0136 };