xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/semtech,sx1501q.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
18bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28bab661aSEmmanuel Vadot# Copyright 2022 Linaro Ltd.
38bab661aSEmmanuel Vadot%YAML 1.2
48bab661aSEmmanuel Vadot---
58bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/semtech,sx1501q.yaml#
68bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
78bab661aSEmmanuel Vadot
88bab661aSEmmanuel Vadottitle: Semtech SX150x GPIO expander
98bab661aSEmmanuel Vadot
108bab661aSEmmanuel Vadotmaintainers:
118bab661aSEmmanuel Vadot  - Neil Armstrong <neil.armstrong@linaro.org>
128bab661aSEmmanuel Vadot
138bab661aSEmmanuel Vadotproperties:
148bab661aSEmmanuel Vadot  compatible:
158bab661aSEmmanuel Vadot    enum:
168bab661aSEmmanuel Vadot      - semtech,sx1501q
178bab661aSEmmanuel Vadot      - semtech,sx1502q
188bab661aSEmmanuel Vadot      - semtech,sx1503q
198bab661aSEmmanuel Vadot      - semtech,sx1504q
208bab661aSEmmanuel Vadot      - semtech,sx1505q
218bab661aSEmmanuel Vadot      - semtech,sx1506q
228bab661aSEmmanuel Vadot      - semtech,sx1507q
238bab661aSEmmanuel Vadot      - semtech,sx1508q
248bab661aSEmmanuel Vadot      - semtech,sx1509q
258bab661aSEmmanuel Vadot
268bab661aSEmmanuel Vadot  reg:
278bab661aSEmmanuel Vadot    maxItems: 1
288bab661aSEmmanuel Vadot
298bab661aSEmmanuel Vadot  interrupts:
308bab661aSEmmanuel Vadot    maxItems: 1
318bab661aSEmmanuel Vadot
328bab661aSEmmanuel Vadot  '#interrupt-cells':
338bab661aSEmmanuel Vadot    const: 2
348bab661aSEmmanuel Vadot
358bab661aSEmmanuel Vadot  interrupt-controller: true
368bab661aSEmmanuel Vadot
378bab661aSEmmanuel Vadot  '#gpio-cells':
388bab661aSEmmanuel Vadot    const: 2
398bab661aSEmmanuel Vadot
408bab661aSEmmanuel Vadot  gpio-controller: true
418bab661aSEmmanuel Vadot
428bab661aSEmmanuel Vadot  semtech,probe-reset:
438bab661aSEmmanuel Vadot    description: Will trigger a reset of the GPIO expander on probe
448bab661aSEmmanuel Vadot    type: boolean
458bab661aSEmmanuel Vadot
468bab661aSEmmanuel VadotpatternProperties:
478bab661aSEmmanuel Vadot  '-cfg$':
488bab661aSEmmanuel Vadot    type: object
498bab661aSEmmanuel Vadot    properties:
508bab661aSEmmanuel Vadot      pins: true
518bab661aSEmmanuel Vadot
528bab661aSEmmanuel Vadot      bias-disable: true
538bab661aSEmmanuel Vadot      bias-pull-up: true
548bab661aSEmmanuel Vadot      bias-pull-down: true
558bab661aSEmmanuel Vadot      bias-pull-pin-default: true
568bab661aSEmmanuel Vadot      drive-push-pull: true
578bab661aSEmmanuel Vadot      output-low: true
588bab661aSEmmanuel Vadot      output-high: true
598bab661aSEmmanuel Vadot      drive-open-drain: true
608bab661aSEmmanuel Vadot
618bab661aSEmmanuel Vadot    required:
628bab661aSEmmanuel Vadot      - pins
638bab661aSEmmanuel Vadot
648bab661aSEmmanuel Vadot    allOf:
65*fac71e4eSEmmanuel Vadot      - $ref: pincfg-node.yaml#
66*fac71e4eSEmmanuel Vadot      - $ref: pinmux-node.yaml#
678bab661aSEmmanuel Vadot      - if:
688bab661aSEmmanuel Vadot          properties:
698bab661aSEmmanuel Vadot            pins:
708bab661aSEmmanuel Vadot              contains:
718bab661aSEmmanuel Vadot                const: oscio
728bab661aSEmmanuel Vadot        then:
738bab661aSEmmanuel Vadot          properties:
748bab661aSEmmanuel Vadot            bias-disable: false
758bab661aSEmmanuel Vadot            bias-pull-up: false
768bab661aSEmmanuel Vadot            bias-pull-down: false
778bab661aSEmmanuel Vadot            bias-pull-pin-default: false
788bab661aSEmmanuel Vadot            drive-open-drain: false
798bab661aSEmmanuel Vadot
808bab661aSEmmanuel Vadot    additionalProperties: false
818bab661aSEmmanuel Vadot
828bab661aSEmmanuel Vadotrequired:
838bab661aSEmmanuel Vadot  - compatible
848bab661aSEmmanuel Vadot  - reg
858bab661aSEmmanuel Vadot  - '#gpio-cells'
868bab661aSEmmanuel Vadot  - gpio-controller
878bab661aSEmmanuel Vadot
888bab661aSEmmanuel VadotallOf:
89*fac71e4eSEmmanuel Vadot  - $ref: pinctrl.yaml#
908bab661aSEmmanuel Vadot  - if:
918bab661aSEmmanuel Vadot      not:
928bab661aSEmmanuel Vadot        properties:
938bab661aSEmmanuel Vadot          compatible:
948bab661aSEmmanuel Vadot            contains:
958bab661aSEmmanuel Vadot              enum:
968bab661aSEmmanuel Vadot                - semtech,sx1507q
978bab661aSEmmanuel Vadot                - semtech,sx1508q
988bab661aSEmmanuel Vadot                - semtech,sx1509q
998bab661aSEmmanuel Vadot    then:
1008bab661aSEmmanuel Vadot      properties:
1018bab661aSEmmanuel Vadot        semtech,probe-reset: false
1028bab661aSEmmanuel Vadot  - if:
1038bab661aSEmmanuel Vadot      properties:
1048bab661aSEmmanuel Vadot        compatible:
1058bab661aSEmmanuel Vadot          contains:
1068bab661aSEmmanuel Vadot            enum:
1078bab661aSEmmanuel Vadot              - semtech,sx1501q
1088bab661aSEmmanuel Vadot              - semtech,sx1504q
1098bab661aSEmmanuel Vadot    then:
1108bab661aSEmmanuel Vadot      patternProperties:
1118bab661aSEmmanuel Vadot        '-cfg$':
1128bab661aSEmmanuel Vadot          properties:
1138bab661aSEmmanuel Vadot            pins:
1148bab661aSEmmanuel Vadot              items:
1158bab661aSEmmanuel Vadot                pattern: '^gpio[0-3]$'
1168bab661aSEmmanuel Vadot  - if:
1178bab661aSEmmanuel Vadot      properties:
1188bab661aSEmmanuel Vadot        compatible:
1198bab661aSEmmanuel Vadot          contains:
1208bab661aSEmmanuel Vadot            enum:
1218bab661aSEmmanuel Vadot              - semtech,sx1502q
1228bab661aSEmmanuel Vadot              - semtech,sx1505q
1238bab661aSEmmanuel Vadot    then:
1248bab661aSEmmanuel Vadot      patternProperties:
1258bab661aSEmmanuel Vadot        '-cfg$':
1268bab661aSEmmanuel Vadot          properties:
1278bab661aSEmmanuel Vadot            pins:
1288bab661aSEmmanuel Vadot              items:
1298bab661aSEmmanuel Vadot                pattern: '^gpio[0-7]$'
1308bab661aSEmmanuel Vadot  - if:
1318bab661aSEmmanuel Vadot      properties:
1328bab661aSEmmanuel Vadot        compatible:
1338bab661aSEmmanuel Vadot          contains:
1348bab661aSEmmanuel Vadot            enum:
1358bab661aSEmmanuel Vadot              - semtech,sx1503q
1368bab661aSEmmanuel Vadot              - semtech,sx1506q
1378bab661aSEmmanuel Vadot    then:
1388bab661aSEmmanuel Vadot      patternProperties:
1398bab661aSEmmanuel Vadot        '-cfg$':
1408bab661aSEmmanuel Vadot          properties:
1418bab661aSEmmanuel Vadot            pins:
1428bab661aSEmmanuel Vadot              items:
1438bab661aSEmmanuel Vadot                pattern: '^(gpio[0-9]|gpio1[0-5])$'
1448bab661aSEmmanuel Vadot  - if:
1458bab661aSEmmanuel Vadot      properties:
1468bab661aSEmmanuel Vadot        compatible:
1478bab661aSEmmanuel Vadot          contains:
1488bab661aSEmmanuel Vadot            const: semtech,sx1507q
1498bab661aSEmmanuel Vadot    then:
1508bab661aSEmmanuel Vadot      patternProperties:
1518bab661aSEmmanuel Vadot        '-cfg$':
1528bab661aSEmmanuel Vadot          properties:
1538bab661aSEmmanuel Vadot            pins:
1548bab661aSEmmanuel Vadot              items:
1558bab661aSEmmanuel Vadot                pattern: '^(oscio|gpio[0-3])$'
1568bab661aSEmmanuel Vadot  - if:
1578bab661aSEmmanuel Vadot      properties:
1588bab661aSEmmanuel Vadot        compatible:
1598bab661aSEmmanuel Vadot          contains:
1608bab661aSEmmanuel Vadot            const: semtech,sx1508q
1618bab661aSEmmanuel Vadot    then:
1628bab661aSEmmanuel Vadot      patternProperties:
1638bab661aSEmmanuel Vadot        '-cfg$':
1648bab661aSEmmanuel Vadot          properties:
1658bab661aSEmmanuel Vadot            pins:
1668bab661aSEmmanuel Vadot              items:
1678bab661aSEmmanuel Vadot                pattern: '^(oscio|gpio[0-7])$'
1688bab661aSEmmanuel Vadot  - if:
1698bab661aSEmmanuel Vadot      properties:
1708bab661aSEmmanuel Vadot        compatible:
1718bab661aSEmmanuel Vadot          contains:
1728bab661aSEmmanuel Vadot            const: semtech,sx1509q
1738bab661aSEmmanuel Vadot    then:
1748bab661aSEmmanuel Vadot      patternProperties:
1758bab661aSEmmanuel Vadot        '-cfg$':
1768bab661aSEmmanuel Vadot          properties:
1778bab661aSEmmanuel Vadot            pins:
1788bab661aSEmmanuel Vadot              items:
1798bab661aSEmmanuel Vadot                pattern: '^(oscio|gpio[0-9]|gpio1[0-5])$'
1808bab661aSEmmanuel Vadot
1818bab661aSEmmanuel VadotadditionalProperties: false
1828bab661aSEmmanuel Vadot
1838bab661aSEmmanuel Vadotexamples:
1848bab661aSEmmanuel Vadot  - |
1858bab661aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
1868bab661aSEmmanuel Vadot    i2c@1000 {
1878bab661aSEmmanuel Vadot        reg = <0x1000 0x80>;
1888bab661aSEmmanuel Vadot        #address-cells = <1>;
1898bab661aSEmmanuel Vadot        #size-cells = <0>;
1908bab661aSEmmanuel Vadot
1918bab661aSEmmanuel Vadot        pinctrl@20 {
1928bab661aSEmmanuel Vadot            compatible = "semtech,sx1501q";
1938bab661aSEmmanuel Vadot            reg = <0x20>;
1948bab661aSEmmanuel Vadot
1958bab661aSEmmanuel Vadot            #gpio-cells = <2>;
1968bab661aSEmmanuel Vadot            #interrupt-cells = <2>;
1978bab661aSEmmanuel Vadot
1988bab661aSEmmanuel Vadot            interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
1998bab661aSEmmanuel Vadot
2008bab661aSEmmanuel Vadot            gpio-controller;
2018bab661aSEmmanuel Vadot            interrupt-controller;
2028bab661aSEmmanuel Vadot
2038bab661aSEmmanuel Vadot            gpio1-cfg {
2048bab661aSEmmanuel Vadot                  pins = "gpio1";
2058bab661aSEmmanuel Vadot                  bias-pull-up;
2068bab661aSEmmanuel Vadot            };
2078bab661aSEmmanuel Vadot        };
2088bab661aSEmmanuel Vadot    };
209