xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/intel,pinctrl-thunderbay.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2e67e8565SEmmanuel Vadot%YAML 1.2
3e67e8565SEmmanuel Vadot---
4e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/intel,pinctrl-thunderbay.yaml#
5e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6e67e8565SEmmanuel Vadot
7*7ef62cebSEmmanuel Vadottitle: Intel Thunder Bay pin controller
8e67e8565SEmmanuel Vadot
9e67e8565SEmmanuel Vadotmaintainers:
10e67e8565SEmmanuel Vadot  - Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com>
11e67e8565SEmmanuel Vadot
12e67e8565SEmmanuel Vadotdescription: |
13e67e8565SEmmanuel Vadot  Intel Thunder Bay SoC integrates a pin controller which enables control
14e67e8565SEmmanuel Vadot  of pin directions, input/output values and configuration
15e67e8565SEmmanuel Vadot  for a total of 67 pins.
16e67e8565SEmmanuel Vadot
17e67e8565SEmmanuel Vadotproperties:
18e67e8565SEmmanuel Vadot  compatible:
19e67e8565SEmmanuel Vadot    const: intel,thunderbay-pinctrl
20e67e8565SEmmanuel Vadot
21e67e8565SEmmanuel Vadot  reg:
22e67e8565SEmmanuel Vadot    maxItems: 1
23e67e8565SEmmanuel Vadot
24e67e8565SEmmanuel Vadot  gpio-controller: true
25e67e8565SEmmanuel Vadot
26e67e8565SEmmanuel Vadot  '#gpio-cells':
27e67e8565SEmmanuel Vadot    const: 2
28e67e8565SEmmanuel Vadot
29e67e8565SEmmanuel Vadot  gpio-ranges:
30e67e8565SEmmanuel Vadot    maxItems: 1
31e67e8565SEmmanuel Vadot
32e67e8565SEmmanuel Vadot  interrupts:
33e67e8565SEmmanuel Vadot    description:
34e67e8565SEmmanuel Vadot      Specifies the interrupt lines to be used by the controller.
35e67e8565SEmmanuel Vadot    maxItems: 2
36e67e8565SEmmanuel Vadot
37e67e8565SEmmanuel Vadot  interrupt-controller: true
38e67e8565SEmmanuel Vadot
39e67e8565SEmmanuel Vadot  '#interrupt-cells':
40e67e8565SEmmanuel Vadot    const: 2
41e67e8565SEmmanuel Vadot
42e67e8565SEmmanuel VadotpatternProperties:
43e67e8565SEmmanuel Vadot  '^gpio@[0-9a-f]*$':
44e67e8565SEmmanuel Vadot    type: object
45*7ef62cebSEmmanuel Vadot    additionalProperties: false
46e67e8565SEmmanuel Vadot
47e67e8565SEmmanuel Vadot    description:
48e67e8565SEmmanuel Vadot      Child nodes can be specified to contain pin configuration information,
49e67e8565SEmmanuel Vadot      which can then be utilized by pinctrl client devices.
50e67e8565SEmmanuel Vadot      The following properties are supported.
51e67e8565SEmmanuel Vadot
52e67e8565SEmmanuel Vadot    properties:
53e67e8565SEmmanuel Vadot      pins:
54e67e8565SEmmanuel Vadot        description: |
55e67e8565SEmmanuel Vadot          The name(s) of the pins to be configured in the child node.
56e67e8565SEmmanuel Vadot          Supported pin names are "GPIO0" up to "GPIO66".
57e67e8565SEmmanuel Vadot
58e67e8565SEmmanuel Vadot      bias-disable: true
59e67e8565SEmmanuel Vadot
60e67e8565SEmmanuel Vadot      bias-pull-down: true
61e67e8565SEmmanuel Vadot
62e67e8565SEmmanuel Vadot      bias-pull-up: true
63e67e8565SEmmanuel Vadot
64e67e8565SEmmanuel Vadot      drive-strength:
65e67e8565SEmmanuel Vadot        description: Drive strength for the pad.
66e67e8565SEmmanuel Vadot        enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
67e67e8565SEmmanuel Vadot
68e67e8565SEmmanuel Vadot      bias-bus-hold:
69e67e8565SEmmanuel Vadot        type: boolean
70e67e8565SEmmanuel Vadot
71e67e8565SEmmanuel Vadot      input-schmitt-enable:
72e67e8565SEmmanuel Vadot        type: boolean
73e67e8565SEmmanuel Vadot
74e67e8565SEmmanuel Vadot      slew-rate:
75e67e8565SEmmanuel Vadot        description: GPIO slew rate control.
76e67e8565SEmmanuel Vadot                      0 - Slow
77e67e8565SEmmanuel Vadot                      1 - Fast
78e67e8565SEmmanuel Vadot        enum: [0, 1]
79e67e8565SEmmanuel Vadot
80e67e8565SEmmanuel VadotadditionalProperties: false
81e67e8565SEmmanuel Vadot
82e67e8565SEmmanuel Vadotrequired:
83e67e8565SEmmanuel Vadot  - compatible
84e67e8565SEmmanuel Vadot  - reg
85e67e8565SEmmanuel Vadot  - gpio-controller
86e67e8565SEmmanuel Vadot  - '#gpio-cells'
87e67e8565SEmmanuel Vadot  - gpio-ranges
88e67e8565SEmmanuel Vadot  - interrupts
89e67e8565SEmmanuel Vadot  - interrupt-controller
90e67e8565SEmmanuel Vadot  - '#interrupt-cells'
91e67e8565SEmmanuel Vadot
92e67e8565SEmmanuel Vadotexamples:
93e67e8565SEmmanuel Vadot  - |
94e67e8565SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
95e67e8565SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
96e67e8565SEmmanuel Vadot    // Example 1
97e67e8565SEmmanuel Vadot    pinctrl0: gpio@0 {
98e67e8565SEmmanuel Vadot        compatible = "intel,thunderbay-pinctrl";
99e67e8565SEmmanuel Vadot        reg = <0x600b0000 0x88>;
100e67e8565SEmmanuel Vadot        gpio-controller;
101e67e8565SEmmanuel Vadot        #gpio-cells = <0x2>;
102e67e8565SEmmanuel Vadot        gpio-ranges = <&pinctrl0 0 0 67>;
103e67e8565SEmmanuel Vadot        interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
104e67e8565SEmmanuel Vadot                     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
105e67e8565SEmmanuel Vadot        interrupt-controller;
106e67e8565SEmmanuel Vadot        #interrupt-cells = <2>;
107e67e8565SEmmanuel Vadot    };
108e67e8565SEmmanuel Vadot
109e67e8565SEmmanuel Vadot    // Example 2
110e67e8565SEmmanuel Vadot    pinctrl1: gpio@1 {
111e67e8565SEmmanuel Vadot        compatible = "intel,thunderbay-pinctrl";
112e67e8565SEmmanuel Vadot        reg = <0x600c0000 0x88>;
113e67e8565SEmmanuel Vadot        gpio-controller;
114e67e8565SEmmanuel Vadot        #gpio-cells = <0x2>;
115e67e8565SEmmanuel Vadot        gpio-ranges = <&pinctrl1 0 0 53>;
116e67e8565SEmmanuel Vadot        interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
117e67e8565SEmmanuel Vadot                     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
118e67e8565SEmmanuel Vadot        interrupt-controller;
119e67e8565SEmmanuel Vadot        #interrupt-cells = <2>;
120e67e8565SEmmanuel Vadot    };
121