xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/cypress,cy8c95x0.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1*7ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*7ef62cebSEmmanuel Vadot%YAML 1.2
3*7ef62cebSEmmanuel Vadot---
4*7ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/cypress,cy8c95x0.yaml#
5*7ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7ef62cebSEmmanuel Vadot
7*7ef62cebSEmmanuel Vadottitle: Cypress CY8C95X0 I2C GPIO expander
8*7ef62cebSEmmanuel Vadot
9*7ef62cebSEmmanuel Vadotmaintainers:
10*7ef62cebSEmmanuel Vadot  - Patrick Rudolph <patrick.rudolph@9elements.com>
11*7ef62cebSEmmanuel Vadot
12*7ef62cebSEmmanuel Vadotdescription: |
13*7ef62cebSEmmanuel Vadot  This supports the 20/40/60 pin Cypress CYC95x0 GPIO I2C expanders.
14*7ef62cebSEmmanuel Vadot  Pin function configuration is performed on a per-pin basis.
15*7ef62cebSEmmanuel Vadot
16*7ef62cebSEmmanuel Vadotproperties:
17*7ef62cebSEmmanuel Vadot  compatible:
18*7ef62cebSEmmanuel Vadot    enum:
19*7ef62cebSEmmanuel Vadot      - cypress,cy8c9520
20*7ef62cebSEmmanuel Vadot      - cypress,cy8c9540
21*7ef62cebSEmmanuel Vadot      - cypress,cy8c9560
22*7ef62cebSEmmanuel Vadot
23*7ef62cebSEmmanuel Vadot  reg:
24*7ef62cebSEmmanuel Vadot    maxItems: 1
25*7ef62cebSEmmanuel Vadot
26*7ef62cebSEmmanuel Vadot  gpio-controller: true
27*7ef62cebSEmmanuel Vadot
28*7ef62cebSEmmanuel Vadot  '#gpio-cells':
29*7ef62cebSEmmanuel Vadot    description:
30*7ef62cebSEmmanuel Vadot      The first cell is the GPIO number and the second cell specifies GPIO
31*7ef62cebSEmmanuel Vadot      flags, as defined in <dt-bindings/gpio/gpio.h>.
32*7ef62cebSEmmanuel Vadot    const: 2
33*7ef62cebSEmmanuel Vadot
34*7ef62cebSEmmanuel Vadot  interrupts:
35*7ef62cebSEmmanuel Vadot    maxItems: 1
36*7ef62cebSEmmanuel Vadot
37*7ef62cebSEmmanuel Vadot  interrupt-controller: true
38*7ef62cebSEmmanuel Vadot
39*7ef62cebSEmmanuel Vadot  '#interrupt-cells':
40*7ef62cebSEmmanuel Vadot    const: 2
41*7ef62cebSEmmanuel Vadot
42*7ef62cebSEmmanuel Vadot  gpio-line-names: true
43*7ef62cebSEmmanuel Vadot
44*7ef62cebSEmmanuel Vadot  gpio-ranges:
45*7ef62cebSEmmanuel Vadot    maxItems: 1
46*7ef62cebSEmmanuel Vadot
47*7ef62cebSEmmanuel Vadot  gpio-reserved-ranges:
48*7ef62cebSEmmanuel Vadot    maxItems: 1
49*7ef62cebSEmmanuel Vadot
50*7ef62cebSEmmanuel Vadot  vdd-supply:
51*7ef62cebSEmmanuel Vadot    description:
52*7ef62cebSEmmanuel Vadot      Optional power supply.
53*7ef62cebSEmmanuel Vadot
54*7ef62cebSEmmanuel VadotpatternProperties:
55*7ef62cebSEmmanuel Vadot  '-pins$':
56*7ef62cebSEmmanuel Vadot    type: object
57*7ef62cebSEmmanuel Vadot    description:
58*7ef62cebSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
59*7ef62cebSEmmanuel Vadot      Client device subnodes use below standard properties.
60*7ef62cebSEmmanuel Vadot    $ref: pincfg-node.yaml#
61*7ef62cebSEmmanuel Vadot
62*7ef62cebSEmmanuel Vadot    properties:
63*7ef62cebSEmmanuel Vadot      pins:
64*7ef62cebSEmmanuel Vadot        description:
65*7ef62cebSEmmanuel Vadot          List of gpio pins affected by the properties specified in this
66*7ef62cebSEmmanuel Vadot          subnode.
67*7ef62cebSEmmanuel Vadot        items:
68*7ef62cebSEmmanuel Vadot          pattern: '^gp([0-7][0-7])$'
69*7ef62cebSEmmanuel Vadot        minItems: 1
70*7ef62cebSEmmanuel Vadot        maxItems: 60
71*7ef62cebSEmmanuel Vadot
72*7ef62cebSEmmanuel Vadot      function:
73*7ef62cebSEmmanuel Vadot        description:
74*7ef62cebSEmmanuel Vadot          Specify the alternative function to be configured for the specified
75*7ef62cebSEmmanuel Vadot          pins.
76*7ef62cebSEmmanuel Vadot        enum: [ gpio, pwm ]
77*7ef62cebSEmmanuel Vadot
78*7ef62cebSEmmanuel Vadot      bias-pull-down: true
79*7ef62cebSEmmanuel Vadot
80*7ef62cebSEmmanuel Vadot      bias-pull-up: true
81*7ef62cebSEmmanuel Vadot
82*7ef62cebSEmmanuel Vadot      bias-disable: true
83*7ef62cebSEmmanuel Vadot
84*7ef62cebSEmmanuel Vadot      output-high: true
85*7ef62cebSEmmanuel Vadot
86*7ef62cebSEmmanuel Vadot      output-low: true
87*7ef62cebSEmmanuel Vadot
88*7ef62cebSEmmanuel Vadot      drive-push-pull: true
89*7ef62cebSEmmanuel Vadot
90*7ef62cebSEmmanuel Vadot      drive-open-drain: true
91*7ef62cebSEmmanuel Vadot
92*7ef62cebSEmmanuel Vadot      drive-open-source: true
93*7ef62cebSEmmanuel Vadot
94*7ef62cebSEmmanuel Vadot    required:
95*7ef62cebSEmmanuel Vadot      - pins
96*7ef62cebSEmmanuel Vadot      - function
97*7ef62cebSEmmanuel Vadot
98*7ef62cebSEmmanuel Vadot    additionalProperties: false
99*7ef62cebSEmmanuel Vadot
100*7ef62cebSEmmanuel Vadotrequired:
101*7ef62cebSEmmanuel Vadot  - compatible
102*7ef62cebSEmmanuel Vadot  - reg
103*7ef62cebSEmmanuel Vadot  - interrupts
104*7ef62cebSEmmanuel Vadot  - interrupt-controller
105*7ef62cebSEmmanuel Vadot  - '#interrupt-cells'
106*7ef62cebSEmmanuel Vadot  - gpio-controller
107*7ef62cebSEmmanuel Vadot  - '#gpio-cells'
108*7ef62cebSEmmanuel Vadot
109*7ef62cebSEmmanuel VadotadditionalProperties: false
110*7ef62cebSEmmanuel Vadot
111*7ef62cebSEmmanuel VadotallOf:
112*7ef62cebSEmmanuel Vadot  - $ref: "pinctrl.yaml#"
113*7ef62cebSEmmanuel Vadot
114*7ef62cebSEmmanuel Vadotexamples:
115*7ef62cebSEmmanuel Vadot  - |
116*7ef62cebSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
117*7ef62cebSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
118*7ef62cebSEmmanuel Vadot
119*7ef62cebSEmmanuel Vadot    i2c {
120*7ef62cebSEmmanuel Vadot      #address-cells = <1>;
121*7ef62cebSEmmanuel Vadot      #size-cells = <0>;
122*7ef62cebSEmmanuel Vadot
123*7ef62cebSEmmanuel Vadot      pinctrl@20 {
124*7ef62cebSEmmanuel Vadot        compatible = "cypress,cy8c9520";
125*7ef62cebSEmmanuel Vadot        reg = <0x20>;
126*7ef62cebSEmmanuel Vadot        gpio-controller;
127*7ef62cebSEmmanuel Vadot        #gpio-cells = <2>;
128*7ef62cebSEmmanuel Vadot        #interrupt-cells = <2>;
129*7ef62cebSEmmanuel Vadot        interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
130*7ef62cebSEmmanuel Vadot        interrupt-controller;
131*7ef62cebSEmmanuel Vadot        vdd-supply = <&p3v3>;
132*7ef62cebSEmmanuel Vadot        gpio-reserved-ranges = <5 1>;
133*7ef62cebSEmmanuel Vadot      };
134*7ef62cebSEmmanuel Vadot    };
135