1d2083893SLakshmi Sowjanya D# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2d2083893SLakshmi Sowjanya D%YAML 1.2
3d2083893SLakshmi Sowjanya D---
4d2083893SLakshmi Sowjanya D$id: http://devicetree.org/schemas/pinctrl/intel,pinctrl-keembay.yaml#
5d2083893SLakshmi Sowjanya D$schema: http://devicetree.org/meta-schemas/core.yaml#
6d2083893SLakshmi Sowjanya D
7d2083893SLakshmi Sowjanya Dtitle: Intel Keem Bay pin controller
8d2083893SLakshmi Sowjanya D
9d2083893SLakshmi Sowjanya Dmaintainers:
10d2083893SLakshmi Sowjanya D  - Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
11d2083893SLakshmi Sowjanya D
12d2083893SLakshmi Sowjanya Ddescription: |
13d2083893SLakshmi Sowjanya D  Intel Keem Bay SoC integrates a pin controller which enables control
14d2083893SLakshmi Sowjanya D  of pin directions, input/output values and configuration
15d2083893SLakshmi Sowjanya D  for a total of 80 pins.
16d2083893SLakshmi Sowjanya D
17d2083893SLakshmi Sowjanya Dproperties:
18d2083893SLakshmi Sowjanya D  compatible:
19d2083893SLakshmi Sowjanya D    const: intel,keembay-pinctrl
20d2083893SLakshmi Sowjanya D
21d2083893SLakshmi Sowjanya D  reg:
22d2083893SLakshmi Sowjanya D    maxItems: 2
23d2083893SLakshmi Sowjanya D
24d2083893SLakshmi Sowjanya D  gpio-controller: true
25d2083893SLakshmi Sowjanya D
26d2083893SLakshmi Sowjanya D  '#gpio-cells':
27d2083893SLakshmi Sowjanya D    const: 2
28d2083893SLakshmi Sowjanya D
29d2083893SLakshmi Sowjanya D  ngpios:
30d2083893SLakshmi Sowjanya D    description: The number of GPIOs exposed.
31d2083893SLakshmi Sowjanya D    const: 80
32d2083893SLakshmi Sowjanya D
33d2083893SLakshmi Sowjanya D  interrupts:
34d2083893SLakshmi Sowjanya D    description:
35d2083893SLakshmi Sowjanya D      Specifies the interrupt lines to be used by the controller.
36d2083893SLakshmi Sowjanya D      Each interrupt line is shared by upto 4 GPIO lines.
37d2083893SLakshmi Sowjanya D    maxItems: 8
38d2083893SLakshmi Sowjanya D
39d2083893SLakshmi Sowjanya D  interrupt-controller: true
40d2083893SLakshmi Sowjanya D
41d2083893SLakshmi Sowjanya D  '#interrupt-cells':
42d2083893SLakshmi Sowjanya D    const: 2
43d2083893SLakshmi Sowjanya D
44d2083893SLakshmi Sowjanya DpatternProperties:
45d2083893SLakshmi Sowjanya D  '^gpio@[0-9a-f]*$':
46d2083893SLakshmi Sowjanya D    type: object
47*9194e0f8SRob Herring    additionalProperties: false
48d2083893SLakshmi Sowjanya D
49d2083893SLakshmi Sowjanya D    description:
50d2083893SLakshmi Sowjanya D      Child nodes can be specified to contain pin configuration information,
51d2083893SLakshmi Sowjanya D      which can then be utilized by pinctrl client devices.
52d2083893SLakshmi Sowjanya D      The following properties are supported.
53d2083893SLakshmi Sowjanya D
54d2083893SLakshmi Sowjanya D    properties:
55d2083893SLakshmi Sowjanya D      pins:
56d2083893SLakshmi Sowjanya D        description: |
57d2083893SLakshmi Sowjanya D          The name(s) of the pins to be configured in the child node.
58d2083893SLakshmi Sowjanya D          Supported pin names are "GPIO0" up to "GPIO79".
59d2083893SLakshmi Sowjanya D
60d2083893SLakshmi Sowjanya D      bias-disable: true
61d2083893SLakshmi Sowjanya D
62d2083893SLakshmi Sowjanya D      bias-pull-down: true
63d2083893SLakshmi Sowjanya D
64d2083893SLakshmi Sowjanya D      bias-pull-up: true
65d2083893SLakshmi Sowjanya D
66d2083893SLakshmi Sowjanya D      drive-strength:
67d2083893SLakshmi Sowjanya D        description: IO pads drive strength in milli Ampere.
68d2083893SLakshmi Sowjanya D        enum: [2, 4, 8, 12]
69d2083893SLakshmi Sowjanya D
70d2083893SLakshmi Sowjanya D      bias-bus-hold:
71d2083893SLakshmi Sowjanya D        type: boolean
72d2083893SLakshmi Sowjanya D
73d2083893SLakshmi Sowjanya D      input-schmitt-enable:
74d2083893SLakshmi Sowjanya D        type: boolean
75d2083893SLakshmi Sowjanya D
76d2083893SLakshmi Sowjanya D      slew-rate:
77d2083893SLakshmi Sowjanya D        description: GPIO slew rate control.
78d2083893SLakshmi Sowjanya D                      0 - Fast(~100MHz)
79d2083893SLakshmi Sowjanya D                      1 - Slow(~50MHz)
80d2083893SLakshmi Sowjanya D        enum: [0, 1]
81d2083893SLakshmi Sowjanya D
82d2083893SLakshmi Sowjanya DadditionalProperties: false
83d2083893SLakshmi Sowjanya D
84d2083893SLakshmi Sowjanya Drequired:
85d2083893SLakshmi Sowjanya D  - compatible
86d2083893SLakshmi Sowjanya D  - reg
87d2083893SLakshmi Sowjanya D  - gpio-controller
88d2083893SLakshmi Sowjanya D  - ngpios
89d2083893SLakshmi Sowjanya D  - '#gpio-cells'
90d2083893SLakshmi Sowjanya D  - interrupts
91d2083893SLakshmi Sowjanya D  - interrupt-controller
92d2083893SLakshmi Sowjanya D  - '#interrupt-cells'
93d2083893SLakshmi Sowjanya D
94d2083893SLakshmi Sowjanya Dexamples:
95d2083893SLakshmi Sowjanya D  - |
96d2083893SLakshmi Sowjanya D    #include <dt-bindings/interrupt-controller/arm-gic.h>
97d2083893SLakshmi Sowjanya D    #include <dt-bindings/interrupt-controller/irq.h>
98d2083893SLakshmi Sowjanya D    // Example 1
99d2083893SLakshmi Sowjanya D    gpio@0 {
100d2083893SLakshmi Sowjanya D        compatible = "intel,keembay-pinctrl";
101d2083893SLakshmi Sowjanya D        reg = <0x600b0000 0x88>,
102d2083893SLakshmi Sowjanya D              <0x600b0190 0x1ac>;
103d2083893SLakshmi Sowjanya D        gpio-controller;
104d2083893SLakshmi Sowjanya D        ngpios = <0x50>;
105d2083893SLakshmi Sowjanya D        #gpio-cells = <0x2>;
106d2083893SLakshmi Sowjanya D        interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
107d2083893SLakshmi Sowjanya D                     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
108d2083893SLakshmi Sowjanya D                     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
109d2083893SLakshmi Sowjanya D                     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
110d2083893SLakshmi Sowjanya D                     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
111d2083893SLakshmi Sowjanya D                     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
112d2083893SLakshmi Sowjanya D                     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
113d2083893SLakshmi Sowjanya D                     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
114d2083893SLakshmi Sowjanya D        interrupt-controller;
115d2083893SLakshmi Sowjanya D        #interrupt-cells = <2>;
116d2083893SLakshmi Sowjanya D    };
117d2083893SLakshmi Sowjanya D
118d2083893SLakshmi Sowjanya D    // Example 2
119d2083893SLakshmi Sowjanya D    gpio@1 {
120d2083893SLakshmi Sowjanya D        compatible = "intel,keembay-pinctrl";
121d2083893SLakshmi Sowjanya D        reg = <0x600c0000 0x88>,
122d2083893SLakshmi Sowjanya D              <0x600c0190 0x1ac>;
123d2083893SLakshmi Sowjanya D        gpio-controller;
124d2083893SLakshmi Sowjanya D        ngpios = <0x50>;
125d2083893SLakshmi Sowjanya D        #gpio-cells = <0x2>;
126d2083893SLakshmi Sowjanya D        interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
127d2083893SLakshmi Sowjanya D                     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
128d2083893SLakshmi Sowjanya D                     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
129d2083893SLakshmi Sowjanya D                     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
130d2083893SLakshmi Sowjanya D                     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
131d2083893SLakshmi Sowjanya D                     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
132d2083893SLakshmi Sowjanya D                     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
133d2083893SLakshmi Sowjanya D                     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
134d2083893SLakshmi Sowjanya D        interrupt-controller;
135d2083893SLakshmi Sowjanya D        #interrupt-cells = <2>;
136d2083893SLakshmi Sowjanya D    };
137