18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/gpio/snps,dw-apb-gpio.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Synopsys DesignWare APB GPIO controller
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cidescription: |
108c2ecf20Sopenharmony_ci  Synopsys DesignWare GPIO controllers have a configurable number of ports,
118c2ecf20Sopenharmony_ci  each of which are intended to be represented as child nodes with the generic
128c2ecf20Sopenharmony_ci  GPIO-controller properties as desribed in this bindings file.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_cimaintainers:
158c2ecf20Sopenharmony_ci  - Hoan Tran <hoan@os.amperecomputing.com>
168c2ecf20Sopenharmony_ci  - Serge Semin <fancer.lancer@gmail.com>
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciproperties:
198c2ecf20Sopenharmony_ci  $nodename:
208c2ecf20Sopenharmony_ci    pattern: "^gpio@[0-9a-f]+$"
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci  compatible:
238c2ecf20Sopenharmony_ci    const: snps,dw-apb-gpio
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ci  "#address-cells":
268c2ecf20Sopenharmony_ci    const: 1
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci  "#size-cells":
298c2ecf20Sopenharmony_ci    const: 0
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci  reg:
328c2ecf20Sopenharmony_ci    maxItems: 1
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci  clocks:
358c2ecf20Sopenharmony_ci    minItems: 1
368c2ecf20Sopenharmony_ci    items:
378c2ecf20Sopenharmony_ci      - description: APB interface clock source
388c2ecf20Sopenharmony_ci      - description: DW GPIO debounce reference clock source
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci  clock-names:
418c2ecf20Sopenharmony_ci    minItems: 1
428c2ecf20Sopenharmony_ci    items:
438c2ecf20Sopenharmony_ci      - const: bus
448c2ecf20Sopenharmony_ci      - const: db
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci  resets:
478c2ecf20Sopenharmony_ci    maxItems: 1
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_cipatternProperties:
508c2ecf20Sopenharmony_ci  "^gpio-(port|controller)@[0-9a-f]+$":
518c2ecf20Sopenharmony_ci    type: object
528c2ecf20Sopenharmony_ci    properties:
538c2ecf20Sopenharmony_ci      compatible:
548c2ecf20Sopenharmony_ci        const: snps,dw-apb-gpio-port
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci      reg:
578c2ecf20Sopenharmony_ci        maxItems: 1
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci      gpio-controller: true
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci      '#gpio-cells':
628c2ecf20Sopenharmony_ci        const: 2
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci      ngpios:
658c2ecf20Sopenharmony_ci        default: 32
668c2ecf20Sopenharmony_ci        minimum: 1
678c2ecf20Sopenharmony_ci        maximum: 32
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci      snps,nr-gpios:
708c2ecf20Sopenharmony_ci        description: The number of GPIO pins exported by the port.
718c2ecf20Sopenharmony_ci        deprecated: true
728c2ecf20Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
738c2ecf20Sopenharmony_ci        default: 32
748c2ecf20Sopenharmony_ci        minimum: 1
758c2ecf20Sopenharmony_ci        maximum: 32
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci      interrupts:
788c2ecf20Sopenharmony_ci        description: |
798c2ecf20Sopenharmony_ci          The interrupts to the parent controller raised when GPIOs generate
808c2ecf20Sopenharmony_ci          the interrupts. If the controller provides one combined interrupt
818c2ecf20Sopenharmony_ci          for all GPIOs, specify a single interrupt. If the controller provides
828c2ecf20Sopenharmony_ci          one interrupt for each GPIO, provide a list of interrupts that
838c2ecf20Sopenharmony_ci          correspond to each of the GPIO pins.
848c2ecf20Sopenharmony_ci        minItems: 1
858c2ecf20Sopenharmony_ci        maxItems: 32
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci      interrupt-controller: true
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci      '#interrupt-cells':
908c2ecf20Sopenharmony_ci        const: 2
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci    required:
938c2ecf20Sopenharmony_ci      - compatible
948c2ecf20Sopenharmony_ci      - reg
958c2ecf20Sopenharmony_ci      - gpio-controller
968c2ecf20Sopenharmony_ci      - '#gpio-cells'
978c2ecf20Sopenharmony_ci
988c2ecf20Sopenharmony_ci    dependencies:
998c2ecf20Sopenharmony_ci      interrupt-controller: [ interrupts ]
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci    additionalProperties: false
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ciadditionalProperties: false
1048c2ecf20Sopenharmony_ci
1058c2ecf20Sopenharmony_cirequired:
1068c2ecf20Sopenharmony_ci  - compatible
1078c2ecf20Sopenharmony_ci  - reg
1088c2ecf20Sopenharmony_ci  - "#address-cells"
1098c2ecf20Sopenharmony_ci  - "#size-cells"
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ciexamples:
1128c2ecf20Sopenharmony_ci  - |
1138c2ecf20Sopenharmony_ci    gpio: gpio@20000 {
1148c2ecf20Sopenharmony_ci      compatible = "snps,dw-apb-gpio";
1158c2ecf20Sopenharmony_ci      reg = <0x20000 0x1000>;
1168c2ecf20Sopenharmony_ci      #address-cells = <1>;
1178c2ecf20Sopenharmony_ci      #size-cells = <0>;
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci      porta: gpio-port@0 {
1208c2ecf20Sopenharmony_ci        compatible = "snps,dw-apb-gpio-port";
1218c2ecf20Sopenharmony_ci        reg = <0>;
1228c2ecf20Sopenharmony_ci        gpio-controller;
1238c2ecf20Sopenharmony_ci        #gpio-cells = <2>;
1248c2ecf20Sopenharmony_ci        snps,nr-gpios = <8>;
1258c2ecf20Sopenharmony_ci        interrupt-controller;
1268c2ecf20Sopenharmony_ci        #interrupt-cells = <2>;
1278c2ecf20Sopenharmony_ci        interrupt-parent = <&vic1>;
1288c2ecf20Sopenharmony_ci        interrupts = <0>;
1298c2ecf20Sopenharmony_ci      };
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci      portb: gpio-port@1 {
1328c2ecf20Sopenharmony_ci        compatible = "snps,dw-apb-gpio-port";
1338c2ecf20Sopenharmony_ci        reg = <1>;
1348c2ecf20Sopenharmony_ci        gpio-controller;
1358c2ecf20Sopenharmony_ci        #gpio-cells = <2>;
1368c2ecf20Sopenharmony_ci        snps,nr-gpios = <8>;
1378c2ecf20Sopenharmony_ci      };
1388c2ecf20Sopenharmony_ci    };
1398c2ecf20Sopenharmony_ci...
140