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