xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/intel,pinctrl-keembay.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1354d7675SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2354d7675SEmmanuel Vadot%YAML 1.2
3354d7675SEmmanuel Vadot---
4354d7675SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/intel,pinctrl-keembay.yaml#
5354d7675SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6354d7675SEmmanuel Vadot
7*7ef62cebSEmmanuel Vadottitle: Intel Keem Bay pin controller
8354d7675SEmmanuel Vadot
9354d7675SEmmanuel Vadotmaintainers:
10354d7675SEmmanuel Vadot  - Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
11354d7675SEmmanuel Vadot
12354d7675SEmmanuel Vadotdescription: |
13354d7675SEmmanuel Vadot  Intel Keem Bay SoC integrates a pin controller which enables control
14354d7675SEmmanuel Vadot  of pin directions, input/output values and configuration
15354d7675SEmmanuel Vadot  for a total of 80 pins.
16354d7675SEmmanuel Vadot
17354d7675SEmmanuel Vadotproperties:
18354d7675SEmmanuel Vadot  compatible:
19354d7675SEmmanuel Vadot    const: intel,keembay-pinctrl
20354d7675SEmmanuel Vadot
21354d7675SEmmanuel Vadot  reg:
22354d7675SEmmanuel Vadot    maxItems: 2
23354d7675SEmmanuel Vadot
24354d7675SEmmanuel Vadot  gpio-controller: true
25354d7675SEmmanuel Vadot
26354d7675SEmmanuel Vadot  '#gpio-cells':
27354d7675SEmmanuel Vadot    const: 2
28354d7675SEmmanuel Vadot
29354d7675SEmmanuel Vadot  ngpios:
30354d7675SEmmanuel Vadot    description: The number of GPIOs exposed.
31354d7675SEmmanuel Vadot    const: 80
32354d7675SEmmanuel Vadot
33354d7675SEmmanuel Vadot  interrupts:
34354d7675SEmmanuel Vadot    description:
35354d7675SEmmanuel Vadot      Specifies the interrupt lines to be used by the controller.
36354d7675SEmmanuel Vadot      Each interrupt line is shared by upto 4 GPIO lines.
37354d7675SEmmanuel Vadot    maxItems: 8
38354d7675SEmmanuel Vadot
39354d7675SEmmanuel Vadot  interrupt-controller: true
40354d7675SEmmanuel Vadot
41354d7675SEmmanuel Vadot  '#interrupt-cells':
42354d7675SEmmanuel Vadot    const: 2
43354d7675SEmmanuel Vadot
44354d7675SEmmanuel VadotpatternProperties:
45354d7675SEmmanuel Vadot  '^gpio@[0-9a-f]*$':
46354d7675SEmmanuel Vadot    type: object
47*7ef62cebSEmmanuel Vadot    additionalProperties: false
48354d7675SEmmanuel Vadot
49354d7675SEmmanuel Vadot    description:
50354d7675SEmmanuel Vadot      Child nodes can be specified to contain pin configuration information,
51354d7675SEmmanuel Vadot      which can then be utilized by pinctrl client devices.
52354d7675SEmmanuel Vadot      The following properties are supported.
53354d7675SEmmanuel Vadot
54354d7675SEmmanuel Vadot    properties:
55354d7675SEmmanuel Vadot      pins:
56354d7675SEmmanuel Vadot        description: |
57354d7675SEmmanuel Vadot          The name(s) of the pins to be configured in the child node.
58354d7675SEmmanuel Vadot          Supported pin names are "GPIO0" up to "GPIO79".
59354d7675SEmmanuel Vadot
60354d7675SEmmanuel Vadot      bias-disable: true
61354d7675SEmmanuel Vadot
62354d7675SEmmanuel Vadot      bias-pull-down: true
63354d7675SEmmanuel Vadot
64354d7675SEmmanuel Vadot      bias-pull-up: true
65354d7675SEmmanuel Vadot
66354d7675SEmmanuel Vadot      drive-strength:
67354d7675SEmmanuel Vadot        description: IO pads drive strength in milli Ampere.
68354d7675SEmmanuel Vadot        enum: [2, 4, 8, 12]
69354d7675SEmmanuel Vadot
70354d7675SEmmanuel Vadot      bias-bus-hold:
71354d7675SEmmanuel Vadot        type: boolean
72354d7675SEmmanuel Vadot
73354d7675SEmmanuel Vadot      input-schmitt-enable:
74354d7675SEmmanuel Vadot        type: boolean
75354d7675SEmmanuel Vadot
76354d7675SEmmanuel Vadot      slew-rate:
77354d7675SEmmanuel Vadot        description: GPIO slew rate control.
78354d7675SEmmanuel Vadot                      0 - Fast(~100MHz)
79354d7675SEmmanuel Vadot                      1 - Slow(~50MHz)
80354d7675SEmmanuel Vadot        enum: [0, 1]
81354d7675SEmmanuel Vadot
82354d7675SEmmanuel VadotadditionalProperties: false
83354d7675SEmmanuel Vadot
84354d7675SEmmanuel Vadotrequired:
85354d7675SEmmanuel Vadot  - compatible
86354d7675SEmmanuel Vadot  - reg
87354d7675SEmmanuel Vadot  - gpio-controller
88354d7675SEmmanuel Vadot  - ngpios
89354d7675SEmmanuel Vadot  - '#gpio-cells'
90354d7675SEmmanuel Vadot  - interrupts
91354d7675SEmmanuel Vadot  - interrupt-controller
92354d7675SEmmanuel Vadot  - '#interrupt-cells'
93354d7675SEmmanuel Vadot
94354d7675SEmmanuel Vadotexamples:
95354d7675SEmmanuel Vadot  - |
96354d7675SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
97354d7675SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
98354d7675SEmmanuel Vadot    // Example 1
99354d7675SEmmanuel Vadot    gpio@0 {
100354d7675SEmmanuel Vadot        compatible = "intel,keembay-pinctrl";
101354d7675SEmmanuel Vadot        reg = <0x600b0000 0x88>,
102354d7675SEmmanuel Vadot              <0x600b0190 0x1ac>;
103354d7675SEmmanuel Vadot        gpio-controller;
104354d7675SEmmanuel Vadot        ngpios = <0x50>;
105354d7675SEmmanuel Vadot        #gpio-cells = <0x2>;
106354d7675SEmmanuel Vadot        interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
107354d7675SEmmanuel Vadot                     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
108354d7675SEmmanuel Vadot                     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
109354d7675SEmmanuel Vadot                     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
110354d7675SEmmanuel Vadot                     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
111354d7675SEmmanuel Vadot                     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
112354d7675SEmmanuel Vadot                     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
113354d7675SEmmanuel Vadot                     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
114354d7675SEmmanuel Vadot        interrupt-controller;
115354d7675SEmmanuel Vadot        #interrupt-cells = <2>;
116354d7675SEmmanuel Vadot    };
117354d7675SEmmanuel Vadot
118354d7675SEmmanuel Vadot    // Example 2
119354d7675SEmmanuel Vadot    gpio@1 {
120354d7675SEmmanuel Vadot        compatible = "intel,keembay-pinctrl";
121354d7675SEmmanuel Vadot        reg = <0x600c0000 0x88>,
122354d7675SEmmanuel Vadot              <0x600c0190 0x1ac>;
123354d7675SEmmanuel Vadot        gpio-controller;
124354d7675SEmmanuel Vadot        ngpios = <0x50>;
125354d7675SEmmanuel Vadot        #gpio-cells = <0x2>;
126354d7675SEmmanuel Vadot        interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
127354d7675SEmmanuel Vadot                     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
128354d7675SEmmanuel Vadot                     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
129354d7675SEmmanuel Vadot                     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
130354d7675SEmmanuel Vadot                     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
131354d7675SEmmanuel Vadot                     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
132354d7675SEmmanuel Vadot                     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
133354d7675SEmmanuel Vadot                     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
134354d7675SEmmanuel Vadot        interrupt-controller;
135354d7675SEmmanuel Vadot        #interrupt-cells = <2>;
136354d7675SEmmanuel Vadot    };
137