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