| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/pinctrl/intel,pinctrl-keembay.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Intel Keem Bay pin controller |
| |
| maintainers: |
| - Lakshmi Sowjanya D <lakshmi.sowjanya.d@intel.com> |
| |
| description: | |
| Intel Keem Bay SoC integrates a pin controller which enables control |
| of pin directions, input/output values and configuration |
| for a total of 80 pins. |
| |
| properties: |
| compatible: |
| const: intel,keembay-pinctrl |
| |
| reg: |
| maxItems: 2 |
| |
| gpio-controller: true |
| |
| '#gpio-cells': |
| const: 2 |
| |
| ngpios: |
| description: The number of GPIOs exposed. |
| const: 80 |
| |
| interrupts: |
| description: |
| Specifies the interrupt lines to be used by the controller. |
| Each interrupt line is shared by upto 4 GPIO lines. |
| maxItems: 8 |
| |
| interrupt-controller: true |
| |
| '#interrupt-cells': |
| const: 2 |
| |
| patternProperties: |
| '^gpio@[0-9a-f]*$': |
| type: object |
| additionalProperties: false |
| |
| description: |
| Child nodes can be specified to contain pin configuration information, |
| which can then be utilized by pinctrl client devices. |
| The following properties are supported. |
| |
| properties: |
| pins: |
| description: | |
| The name(s) of the pins to be configured in the child node. |
| Supported pin names are "GPIO0" up to "GPIO79". |
| |
| bias-disable: true |
| |
| bias-pull-down: true |
| |
| bias-pull-up: true |
| |
| drive-strength: |
| description: IO pads drive strength in milli Ampere. |
| enum: [2, 4, 8, 12] |
| |
| bias-bus-hold: |
| type: boolean |
| |
| input-schmitt-enable: |
| type: boolean |
| |
| slew-rate: |
| description: GPIO slew rate control. |
| 0 - Fast(~100MHz) |
| 1 - Slow(~50MHz) |
| enum: [0, 1] |
| |
| additionalProperties: false |
| |
| required: |
| - compatible |
| - reg |
| - gpio-controller |
| - ngpios |
| - '#gpio-cells' |
| - interrupts |
| - interrupt-controller |
| - '#interrupt-cells' |
| |
| examples: |
| - | |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| // Example 1 |
| gpio@0 { |
| compatible = "intel,keembay-pinctrl"; |
| reg = <0x600b0000 0x88>, |
| <0x600b0190 0x1ac>; |
| gpio-controller; |
| ngpios = <0x50>; |
| #gpio-cells = <0x2>; |
| interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| }; |
| |
| // Example 2 |
| gpio@1 { |
| compatible = "intel,keembay-pinctrl"; |
| reg = <0x600c0000 0x88>, |
| <0x600c0190 0x1ac>; |
| gpio-controller; |
| ngpios = <0x50>; |
| #gpio-cells = <0x2>; |
| interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, |
| <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| }; |