WIP: device tree MVP

This commit is contained in:
Daniel Agar
2022-01-06 17:20:17 -05:00
parent 07d75d85cf
commit 1f39b42525
1395 changed files with 68755 additions and 0 deletions
@@ -0,0 +1,39 @@
# Copyright (c) 2020 Richard Osterloh
# SPDX-License-Identifier: Apache-2.0
description: |
GPIO pins exposed on Adafruit Feather headers.
The Feather layout provides two headers, one each along
opposite edges of the board.
Proceeding counter-clockwise:
* A 16-pin header. 12 pins on this header are exposed
by this binding.
* A 12-pin header. 9 pins on this header are exposed
by this binding.
This binding provides a nexus mapping for 21 pins where parent pins 0
through 5 correspond to A0 through A5, and parent pins 6 through 20
correspond as depicted below:
- RESET
- 3V3
- 3V3
- GND
0 A0 - VBAT
1 A1 - EN
2 A2 - VBUS
3 A3 D13 20
4 A4 D12 19
5 A5 D11 18
6 SCK D10 17
7 MOSI D9 16
8 MISO D6 15
9 RX D5 14
10 TX SCL 13
11 D4 SDA 12
compatible: "adafruit-feather-header"
include: [gpio-nexus.yaml, base.yaml]
@@ -0,0 +1,27 @@
# Copyright (c) 2021, Andes Technology Corporation.
# SPDX-License-Identifier: Apache-2.0
description:
This is a representation of Andes Technology atcgpio100 GPIO node
compatible: "andestech,atcgpio100"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
interrupts:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+50
View File
@@ -0,0 +1,50 @@
# Copyright (c) 2019 Foundries.io
# Copyright (C) 2019 Peter Bigot Consulting, LLC
# SPDX-License-Identifier: Apache-2.0
description: |
GPIO pins exposed on Arduino Uno (R3) headers.
The Arduino Uno layout provides four headers, two each along
opposite edges of the board.
Proceeding counter-clockwise:
* An 8-pin Power Supply header. No pins on this header are exposed
by this binding.
* A 6-pin Analog Input header. This has analog input signals
labeled from A0 at the top through A5 at the bottom.
* An 8-pin header (opposite Analog Input). This has digital input
signals labeled from D0 at the bottom D7 at the top;
* A 10-pin header (opposite Power Supply). This has six additional
digital input signals labelled from D8 at the bottom through D13
towards the top, skipping two pins, then finishing with D14 and
D15 at the top.
This binding provides a nexus mapping for 20 pins where parent pins 0
through 5 correspond to A0 through A5, and parent pins 6 through 21
correspond to D0 through D15, as depicted below:
D15 21
D14 20
AREF -
GND -
- N/C D13 19
- IOREF D12 18
- RESET D11 17
- 3V3 D10 16
- 5V D9 15
- GND D8 14
- GND
- VIN D7 13
D6 12
0 A0 D5 11
1 A1 D4 10
2 A2 D3 9
3 A3 D2 8
4 A4 D1 7
5 A5 D0 6
compatible: "arduino-header-r3"
include: [gpio-nexus.yaml, base.yaml]
+22
View File
@@ -0,0 +1,22 @@
description: ARM CMSDK GPIO
compatible: "arm,cmsdk-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
@@ -0,0 +1,18 @@
description: GPIO controller on ARM MPS2 FPGA
compatible: "arm,mps2-fpgaio-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
ngpios:
required: true
"#gpio-cells":
const: 1
gpio-cells:
- pin
@@ -0,0 +1,18 @@
description: GPIO controller on ARM MPS3 FPGA
compatible: "arm,mps3-fpgaio-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
ngpios:
required: true
"#gpio-cells":
const: 1
gpio-cells:
- pin
+38
View File
@@ -0,0 +1,38 @@
description: SAM GPIO PORT node
compatible: "atmel,sam-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
peripheral-id:
type: int
description: peripheral ID
required: true
"#gpio-cells":
const: 2
"#atmel,pin-cells":
type: int
required: true
const: 2
description: Number of items to expect in a atmel,pins specifier
gpio-cells:
- pin
- flags
atmel,pin-cells:
- pin
- peripheral
+29
View File
@@ -0,0 +1,29 @@
description: SAM0 GPIO PORT node
compatible: "atmel,sam0-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#gpio-cells":
const: 2
"#atmel,pin-cells":
type: int
required: true
const: 2
description: Number of items to expect in a atmel,pins specifier
gpio-cells:
- pin
- flags
atmel,pin-cells:
- pin
- peripheral
+5
View File
@@ -0,0 +1,5 @@
description: SAM4L GPIO PORT node
compatible: "atmel,sam4l-gpio"
include: ["atmel,sam-gpio.yaml"]
@@ -0,0 +1,45 @@
# Copyright (C) 2020 Gerson Fernando Budke <nandojve@gmail.com>
# SPDX-License-Identifier: Apache-2.0
description: |
GPIO pins exposed on Atmel Xplained headers.
The Xplained layout provide a standard 10 pin header. A board can have
one or more headers and can share pins. This connector was developed to
match with Atmel AVR XMEGA devices GPIO port plus power signals. The Atmel
Xplained Pro standard connector keep compatibility with this header and it
can be defined on every board with an Xplained Pro Connector extension and
every pin can be defined as general purpose GPIO.
The AVR XMEGA port was designed as:
Signal Main Function
Px0 SDA
Px1 SCL
Px2 RX
Px3 TX
Px4 SS
Px5 MOSI
Px6 MISO
Px7 SCK
GND
VDD
Documentation:
* https://www.microchip.com/development-tools/xplained-boards
* http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42091-Atmel-Xplained-Pro-Hardware-Development-Kit_User%20Guide.pdf
This binding provides a nexus mapping for 10 pins where pins are disposed
to have a even and odd column:
Connector
Bind Pin Name Pin Pin Pin Name Bind
0 I2C(SDA) 1 2 I2C(SCL) 1
2 UART(RX) 3 4 UART(TX) 3
4 SPI(CS0) 5 6 SPI(MOSI) 5
6 SPI(MISO) 7 8 SPI(SCK) 7
GND 9 10 VDD(+3.3V)
compatible: "atmel-xplained-header"
include: [gpio-nexus.yaml, base.yaml]
@@ -0,0 +1,49 @@
# Copyright (C) 2020 Gerson Fernando Budke <nandojve@gmail.com>
# SPDX-License-Identifier: Apache-2.0
description: |
GPIO pins exposed on Atmel Xplained Pro headers.
The Xplained Pro layout provide a standard 20 pin header. A board can have
one or more headers and can share pins. The extension headers are given
names EXTn where n ϵ [1…7], n is determined by which ID pin is connected
to the embedded debugger. A header with ID7 signal from the embedded
debugger connected should be called EXT7. PWR, EXT1, EXT2 and EXT3 are
standard extension headers that have a predefined position according to the
list below:
* PWR is right angled at the top right hand side of the board. This
header must always be implemented.
* EXT1 is right angled at the top right hand side of the board, located
below the PWR header. This header must always be present.
* EXT2 is right angled and at the bottom right hand side of the board.
This header is mandatory for medium and large boards and should not be
implemented on small boards.
* EXT3 is right angled pointing downwards
All MCU boards have to implement at least PWR, EXT1, EXT2 (on medium and
large boards), and EXT3. EXT4 to EXT7 can be placed differently depending
on the board design. EXT4 to EXT7 can either be standard extension headers
or application specific headers.
Documentation:
* https://www.microchip.com/development-tools/xplained-boards
* http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-42091-Atmel-Xplained-Pro-Hardware-Development-Kit_User%20Guide.pdf
This binding provides a nexus mapping for 20 pins where pins are disposed
to have a even and odd column:
Connector
Bind Pin Name Pin Pin Pin Name Bind
ID 1 2 GND
0 ADC(+) 3 4 ADC(-) 1
2 UART(RTS)/GPIO1 5 6 UART(CTS)/GPIO2 3
4 PWM(+) 7 8 PWM(-) 5
6 IRQ/GPIO3 9 10 SPI(CS1)/GPIO4 7
8 I2C(SDA) 11 12 I2C(SCL) 9
10 UART(RX) 13 14 UART(TX) 11
12 SPI(CS0) 15 16 SPI(MOSI) 13
14 SPI(MISO) 17 18 SPI(SCK) 15
GND 19 20 VDD(+3.3V)
compatible: "atmel-xplained-pro-header"
include: [gpio-nexus.yaml, base.yaml]
@@ -0,0 +1,26 @@
# Copyright (c) 2021 Synopsys
# SPDX-License-Identifier: Apache-2.0
description: Cypress cy8c95xx GPIO port node
compatible: "cypress,cy8c95xx-gpio-port"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#gpio-cells":
const: 2
ngpios:
required: true
const: 8
gpio-cells:
- pin
- flags
@@ -0,0 +1,15 @@
# Copyright (c) 2021 Synopsys
# SPDX-License-Identifier: Apache-2.0
description: Cypress cy8c95xx GPIO node
compatible: "cypress,cy8c95xx-gpio"
include: base.yaml
properties:
reg:
required: true
label:
required: true
+35
View File
@@ -0,0 +1,35 @@
# Copyright (c) 2020-2021 ATL Electronics
# SPDX-License-Identifier: Apache-2.0
description: Cypress GPIO PORT node
compatible: "cypress,psoc6-gpio"
include: ["gpio-controller.yaml", "base.yaml"]
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
"#gpio-cells":
const: 2
"#cypress,pin-cells":
type: int
required: true
const: 2
description: Number of items to expect in a cypress,pins specifier
gpio-cells:
- pin
- flags
cypress,pin-cells:
- pin
- hsiom
@@ -0,0 +1,18 @@
# Copyright (c) 2020 ATL Electronics
# SPDX-License-Identifier: Apache-2.0
description: Cypress High Speed I/O Matrix
compatible: "cypress,psoc6-hsiom"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
@@ -0,0 +1,22 @@
# Copyright (c) 2019, Yannis Damigos
# SPDX-License-Identifier: Apache-2.0
description: ESP32 GPIO controller
compatible: "espressif,esp32-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+19
View File
@@ -0,0 +1,19 @@
# Copyright (c) 2021 Abel Sensors
# SPDX-License-Identifier: Apache-2.0
description: FXL6408 I2C-based GPIO expander
compatible: "fcs,fxl6408"
include: [gpio-controller.yaml, i2c-device.yaml]
properties:
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+27
View File
@@ -0,0 +1,27 @@
# Copyright (c) 2021 Teslabs Engineering S.L.
# SPDX-License-Identifier: Apache-2.0
description: GD32 GPIO node
compatible: "gd,gd32-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
rcu-periph-clock:
type: int
description: Reset Control Unit Peripheral Clock ID
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+45
View File
@@ -0,0 +1,45 @@
# Copyright (c) 2019, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
# Common fields for GPIO controllers
properties:
"gpio-controller":
type: boolean
required: true
description: Convey's this node is a GPIO controller
"#gpio-cells":
type: int
required: true
description: Number of items to expect in a GPIO specifier
ngpios:
type: int
required: false
default: 32
description: |
This property indicates the number of in-use slots of available slots
for GPIOs. The typical example is something like this: the hardware
register is 32 bits wide, but only 18 of the bits have a physical
counterpart. The driver is generally written so that all 32 bits can
be used, but the IP block is reused in a lot of designs, some using
all 32 bits, some using 18 and some using 12. In this case, setting
"ngpios = <18>;" informs the driver that only the first 18 GPIOs, at
local offset 0 .. 17, are in use. For cases in which there might be
holes in the slot range, this value should be the max slot number-1.
gpio-reserved-ranges:
type: array
required: false
description: |
If not all the GPIOs at offsets 0...N-1 are usable for ngpios = <N>, then
this property contains an additional set of tuples which specify which GPIOs
are unusable. This property indicates the start and size of the GPIOs
that can't be used.
For example, setting "gpio-reserved-ranges = <3 2>, <10 1>;" means that
GPIO offsets 3, 4, and 10 are not usable, even if ngpios = <18>.
gpio-line-names:
type: string-array
required: false
description: |
This is an array of strings defining the names of the GPIO lines
going out of the GPIO controller
+17
View File
@@ -0,0 +1,17 @@
# Copyright (c) 2018, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: GPIO KEYS parent node
compatible: "gpio-keys"
child-binding:
description: GPIO KEYS child node
properties:
gpios:
type: phandle-array
required: true
label:
required: true
type: string
description: Human readable string describing the device (used as device_get_binding() argument)
+32
View File
@@ -0,0 +1,32 @@
# Copyright (c) 2018, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: GPIO LEDs parent node
compatible: "gpio-leds"
include:
- name: base.yaml
property-allowlist: [label]
properties:
label:
description: |
Human readable string describing the device and used to set the device
name. It can be passed as argument to device_get_binding() to retrieve
the device. If this property is omitted, then the device name is set
from the node full name.
child-binding:
description: GPIO LED child node
properties:
gpios:
type: phandle-array
required: true
label:
required: false
type: string
description: |
Human readable string describing the LED. It can be used by an
application to identify this LED or to retrieve its number/index
(i.e. child node number) on the parent device.
+22
View File
@@ -0,0 +1,22 @@
# Copyright (c) 2019, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
# Common fields for GPIO nexus nodes
properties:
gpio-map:
type: compound
required: true
gpio-map-mask:
type: compound
required: false
gpio-map-pass-thru:
type: compound
required: false
"#gpio-cells":
type: int
required: true
description: Number of items to expect in a GPIO specifier
+38
View File
@@ -0,0 +1,38 @@
# Copyright (c) 2018-2019 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
description: Intel GPIO node
compatible: "intel,gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
group-index:
type: int
description: Group number for this GPIO entry
interrupts:
required: true
ngpios:
required: true
description: Number of pins for this GPIO entry
pin-offset:
type: int
required: true
description: Pin offset of this GPIO entry
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+19
View File
@@ -0,0 +1,19 @@
# Copyright (c) 2020 ITE Corporation. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
description: This binding gives a base representation of the ITE gpio
compatible: "ite,it8xxx2-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
gpio-cells:
- pin
- flags
@@ -0,0 +1,8 @@
# Copyright (c) 2019 Linaro Ltd.
# SPDX-License-Identifier: Apache-2.0
description: Represents GPIO pin nodes exposed on the 96Boards 1.8v low-speed header
compatible: "linaro,96b-lscon-1v8"
include: [gpio-nexus.yaml, base.yaml]
@@ -0,0 +1,9 @@
# Copyright (c) 2019 Linaro Ltd.
# SPDX-License-Identifier: Apache-2.0
description: |
Represents GPIO pin nodes exposed on the 96Boards 3.3v low-speed header
compatible: "linaro,96b-lscon-3v3"
include: [gpio-nexus.yaml, base.yaml]
+32
View File
@@ -0,0 +1,32 @@
#
# Copyright (c) 2019 Antmicro <www.antmicro.com>
#
# SPDX-License-Identifier: Apache-2.0
#
description: Litex GPIO
compatible: "litex,gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
port-is-output:
type: boolean
description: Indicates if the port is an output port
reg:
required: true
label:
required: true
ngpios:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
@@ -0,0 +1,25 @@
# Copyright (c) 2020 Micro:bit Educational Foundation
# SPDX-License-Identifier: Apache-2.0
description: |
GPIO pins exposed on BBC MicroBit headers.
The edge connector on the micro:bit is used to connect to external
circuits and components.
There are 25 strips/pins including 5 rings for using with 4mm banana
plugs or crocodile clips. 3 of these rings are for general purpose
input and output (GPIO) and are also capable of analog, PWM and touch
sensing, and two are connected to the micro:bit power supply.
The smaller strips spaced at 1.27mm on the edge connector have additional
signals, some of which are used by the micro:bit, and others that are free
for you to use. There are a number of external PCB connectors for purchase
with an 80w 1.27mm pitch that can be used to easily access these extra pins.
Only the pins on the front are connected to signals. The back rings are
connected to the front rings, but the back small strips are unconnected.
compatible: "microbit,edge-connector"
include: [gpio-nexus.yaml, base.yaml]
+29
View File
@@ -0,0 +1,29 @@
#
# Copyright (c) 2021 metraTec GmbH
#
# SPDX-License-Identifier: Apache-2.0
#
description: |
This is a representation of the Microchip MCP230xx I2C Gpio Expander.
compatible: "microchip,mcp230xx"
include: [gpio-controller.yaml, i2c-device.yaml]
properties:
label:
required: true
ngpios:
type: int
enum:
- 8
- 16
required: true
description: |
Number of gpios supported by the chip.
gpio-cells:
- pin
- flags
+29
View File
@@ -0,0 +1,29 @@
#
# Copyright (c) 2020 Geanix ApS
#
# SPDX-License-Identifier: Apache-2.0
#
description: |
This is a representation of the Microchip MCP23S17 SPI Gpio Expander.
compatible: "microchip,mcp23s17"
include: [gpio-controller.yaml, spi-device.yaml]
properties:
label:
required: true
"#gpio-cells":
const: 2
ngpios:
type: int
required: true
const: 16
description: Number of gpios supported
gpio-cells:
- pin
- flags
+32
View File
@@ -0,0 +1,32 @@
#
# Copyright (c) 2020 Geanix ApS
# Copyright (c) 2021 Peter Johanson
#
# SPDX-License-Identifier: Apache-2.0
#
description: |
This is a representation of the Microchip MCP23SXX SPI Gpio Expander.
compatible: "microchip,mcp23sxx"
include: [gpio-controller.yaml, spi-device.yaml]
properties:
label:
required: true
"#gpio-cells":
const: 2
ngpios:
type: int
required: true
enum:
- 8
- 16
description: Number of gpios supported
gpio-cells:
- pin
- flags
@@ -0,0 +1,35 @@
# Copyright (c) 2019, Intel Corporation
# SPDX-License-Identifier: Apache-2.0
description: Microchip CEC/MEC GPIO V2 node
compatible: "microchip,xec-gpio-v2"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
interrupts:
required: false
label:
required: true
port-id:
type: int
required: true
description: Zero based GPIO port number
girq-id:
type: int
required: true
description: Aggregated GIRQ number for this bank of 32 GPIO pins.
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+25
View File
@@ -0,0 +1,25 @@
# Copyright (c) 2019, Intel Corporation
# SPDX-License-Identifier: Apache-2.0
description: Microchip CEC/MEC GPIO node
compatible: "microchip,xec-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
interrupts:
required: false
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+33
View File
@@ -0,0 +1,33 @@
# Copyright (C) 2020 Linaro
# SPDX-License-Identifier: Apache-2.0
description: |
GPIO pins exposed on Mikro BUS headers.
The Mikro BUS layout provides two headers, aligned on the opposite
edges of the board.
Documentation:
* https://www.mikroe.com/mikrobus
* https://download.mikroe.com/documents/standards/mikrobus/mikrobus-standard-specification-v200.pdf
This binding provides a nexus mapping for 10 pins, left side pins are
numbered 0 - 5 (AN - MOSI), the right side pins are numbered 6 - 10
(PWM - SDA). The bottom 2 pins on each side are used for input voltage
and ground, they are not mapped in the nexus.
Analog - AN PWM - PWM output
Reset - RST INT - Hardware Interrupt
SPI Chip Select - CS RX - UART Receive
SPI Clock - SCK TX - UART Transmit
SPI Master Input Slave Output - MISO SCL - I2C Clock
SPI Master Output Slave Input - MOSI SDA - I2C Data
VCC-3.3V power - +3.3V +5V - VCC-5V power
Reference Ground - GND GND - Reference Ground
Board's silkscreen may vary depending you board, but coherent with
the description above as it's according to the standard's specification.
compatible: "mikro-bus"
include: [gpio-nexus.yaml, base.yaml]
+25
View File
@@ -0,0 +1,25 @@
description: NEORV32 GPIO
compatible: "neorv32-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
reg-names:
required: true
syscon:
type: phandle
required: true
description: |
phandle to syscon (NEORV32 SYSINFO) node.
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+41
View File
@@ -0,0 +1,41 @@
# Copyright (c) 2018, marc-cpdesign
# SPDX-License-Identifier: Apache-2.0
description: NRF5 GPIO node
compatible: "nordic,nrf-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#gpio-cells":
const: 2
sense-edge-mask:
required: false
type: int
description: |
Mask of pins that use the GPIO sense mechanism for edge detection.
Pins not included in the mask use GPIOTE channels in the event mode.
port:
type: int
required: true
description: |
The GPIO port number. GPIO port P0 has:
port = <0>;
And P1 has:
port = <1>;
gpio-cells:
- pin
- flags
+18
View File
@@ -0,0 +1,18 @@
# Copyright (c) 2018, marc-cpdesign
# SPDX-License-Identifier: Apache-2.0
description: NRF5 GPIOTE node
compatible: "nordic,nrf-gpiote"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
@@ -0,0 +1,32 @@
# Copyright (c) 2021 Nuvoton Technology Corporation.
# SPDX-License-Identifier: Apache-2.0
description: |
Nuvoton NCT38XX series I2C-based GPIO expander alert handler
Example:
nct3807_alert_1 {
compatible = "nuvoton,nct38xx-gpio-alert";
irq-gpios = <&gpiod 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
nct38xx-dev = <&nct3808_0_P1 &nct3808_0_P2>;
label = "NCT3808_ALERT_0";
};
compatible: "nuvoton,nct38xx-gpio-alert"
include: [base.yaml]
properties:
label:
required: true
irq-gpios:
type: phandle-array
required: true
description: Interrupt GPIO pin
nct38xx-dev:
type: phandles
required: true
description: |
NCT38XX devices which alert are handled by this alert handler.
@@ -0,0 +1,44 @@
# Copyright (c) 2021 Nuvoton Technology Corporation.
# SPDX-License-Identifier: Apache-2.0
description: Nuvoton NCT38XX series I2C-based GPIO expander port
compatible: "nuvoton,nct38xx-gpio-port"
include: [gpio-controller.yaml, base.yaml]
properties:
label:
required: true
reg:
required: true
pin_mask:
type: int
required: true
description: |
Not every GPIOs are usable for different NCT38XX series. This property
indicates the usable GPIO mask.
NCT3808: <0xdc>
others: <0xff>
pinmux_mask:
type: int
required: false
description: |
NCT38XX series port 0 has Pin Multiplexing functionality. However, not
every GPIOs have pinmux controller functionality. This property
indicates the usable GPIO pinmux mask. For port 1, this property is
ignored.
NCT3807 port 0: <0xf7>
others: <0xff>
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
@@ -0,0 +1,83 @@
# Copyright (c) 2021 Nuvoton Technology Corporation.
# SPDX-License-Identifier: Apache-2.0
description: |
Nuvoton NCT38XX series I2C-based GPIO expander
Example:
&i2c0_0 {
nct3807@70 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "nuvoton,nct38xx-gpio";
reg = <0x70>;
label = "NCT3807_0";
gpio@0 {
compatible = "nuvoton,nct38xx-gpio-port";
reg = <0x0>;
label = "NCT3807_0_GPIO0";
gpio-controller;
#gpio-cells = <2>;
ngpios = <8>;
pin_mask = <0xff>;
pinmux_mask = <0xf7>;
};
gpio@1 {
compatible = "nuvoton,nct38xx-gpio-port";
reg = <0x1>;
label = "NCT3807_0_GPIO1";
gpio-controller;
#gpio-cells = <2>;
ngpios = <8>;
pin_mask = <0xff>;
};
};
nct3808_0_P1@71 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "nuvoton,nct38xx-gpio";
reg = <0x71>;
label = "NCT3808_0_P1";
gpio@0 {
compatible = "nuvoton,nct38xx-gpio-port";
reg = <0x0>;
label = "NCT3808_0_P1_GPIO0";
gpio-controller;
#gpio-cells = <2>;
ngpios = <8>;
pin_mask = <0xdc>;
pinmux_mask = <0xff>;
};
};
nct3808_0_P2@75 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "nuvoton,nct38xx-gpio";
reg = <0x75>;
label = "NCT3808_0_P2";
gpio@0 {
compatible = "nuvoton,nct38xx-gpio-port";
reg = <0x0>;
label = "NCT3808_0_P2_GPIO0";
gpio-controller;
#gpio-cells = <2>;
ngpios = <8>;
pin_mask = <0xdc>;
pinmux_mask = <0xff>;
};
};
};
compatible: "nuvoton,nct38xx-gpio"
include: [i2c-device.yaml]
properties:
label:
required: true
+39
View File
@@ -0,0 +1,39 @@
# Copyright (c) 2020 Nuvoton Technology Corporation.
# SPDX-License-Identifier: Apache-2.0
description: Nuvoton, NPCX-GPIO node
compatible: "nuvoton,npcx-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
index:
type: int
required: true
description: index of gpio device
wui-maps:
type: phandles
required: true
description: |
Mapping table between Wake-Up Input (WUI) and 8 IOs belong to this device.
Please notice not all IOs connect to WUIs.
In this case, it will be presented by wui_none.
For example the WUI mapping on NPCX7 GPIO8 would be
wui-maps = <&wui_io80 &wui_io81 &wui_io82 &wui_io83
&wui_none &wui_none &wui_io86 &wui_io87>;
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
@@ -0,0 +1,19 @@
# Copyright (c) 2021 Nuvoton Technology Corporation.
# SPDX-License-Identifier: Apache-2.0
description: Nuvoton, NPCX-PSL (Power Switch Logic) Output node
compatible: "nuvoton,npcx-psl-out"
include: [base.yaml]
properties:
controller:
type: phandle
required: true
description: gpio controller to handle PSL output pad.
pin:
type: int
required: true
description: pin in gpio controller for PSL output.
+30
View File
@@ -0,0 +1,30 @@
# Copyright (c) 2017, NXP
# SPDX-License-Identifier: Apache-2.0
description: i.MX GPIO node
compatible: "nxp,imx-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
interrupts:
required: false
label:
required: true
rdc:
type: int
required: false
description: Set the RDC permission for this peripheral
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+26
View File
@@ -0,0 +1,26 @@
description: Kinetis GPIO node
compatible: "nxp,kinetis-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#gpio-cells":
const: 2
nxp,kinetis-port:
required: true
type: phandle
description: |
A phandle reference to the device tree node that contains the pinmux
port associated with this GPIO controller.
gpio-cells:
- pin
- flags
+31
View File
@@ -0,0 +1,31 @@
# Copyright (c) 2019, NXP
# SPDX-License-Identifier: Apache-2.0
description: LPC GPIO node
compatible: "nxp,lpc-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#gpio-cells":
const: 2
port:
type: int
required: true
description: The GPIO port this node describes
enum:
- 0
- 1
- 2
gpio-cells:
- pin
- flags
+41
View File
@@ -0,0 +1,41 @@
# Copyright (c) 2020 Seagate Technology LLC
# SPDX-License-Identifier: Apache-2.0
description: NXP LPC11U6X GPIO node
compatible: "nxp,lpc11u6x-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
interrupts:
required: true
"#gpio-cells":
const: 2
base:
type: int
required: false
default: 0
description: index of the first GPIO for this port.
clocks:
required: true
pinmux-port:
required: true
type: phandle
description: |
a phandle reference to the device tree node that contains the pinmux
port associated with this GPIO controller.
gpio-cells:
- pin
- flags
+29
View File
@@ -0,0 +1,29 @@
# Copyright (c) 2019 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
description: PCA95xx series I2C-based GPIO expander
compatible: "nxp,pca95xx"
include: [gpio-controller.yaml, i2c-device.yaml]
properties:
label:
required: true
has-pud:
type: boolean
required: false
description: Supports pull-up/pull-down
interrupt-gpios:
type: phandle-array
required: false
description: Interrupt GPIO pin (active-low open-drain)
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+35
View File
@@ -0,0 +1,35 @@
# Copyright (c) 2021 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
description: PCAL6408A 8-bit I2C-based I/O expander
compatible: "nxp,pcal6408a"
include: [i2c-device.yaml, gpio-controller.yaml]
properties:
label:
required: true
ngpios:
required: true
const: 8
int-gpios:
type: phandle-array
required: false
description: |
GPIO connected to the controller INT pin. This pin is active-low.
reset-gpios:
type: phandle-array
required: false
description: |
GPIO connected to the controller RESET pin. This pin is active-low.
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
@@ -0,0 +1,29 @@
description: OpenISA GPIO node
compatible: "openisa,rv32m1-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
"#gpio-cells":
const: 2
openisa,rv32m1-port:
required: true
type: phandle
description: |
A phandle reference to the device tree node that contains the pinmux
port associated with this GPIO controller.
gpio-cells:
- pin
- flags
@@ -0,0 +1,43 @@
# Copyright (C) 2020 Peter Bigot Consulting, LLC
# SPDX-License-Identifier: Apache-2.0
description: |
GPIO pins exposed on Particle Gen3 (Feather) headers.
The Particle Gen3 boards are compatible with the Adafruit Feather
"shields" but use a different orientation and pin numbering scheme.
With the board oriented with the micro USB at the top:
* A 12-pin header on the right. 9 pins on this header are exposed
by this binding
* A 16-pin header. 13 pins on this header are exposed by this
binding.
This binding provides a nexus mapping for 22 pins where parent pins
0 through 8 correspond to the pins on the 12-pin header, starting
from the bottom; and pins 9 through 21 correspond to pins on the
16-pin header, skipping the bottom pin then assigning 9 through 19,
skipping over GND, and replacing the lower 3V3 with pin 20. The
physical layout is depicted below.
21 RESETn
- 3V3
20 MODEn
- GND
19 ADC0 LiPo+ -
18 ADC1 ENABLE -
17 ADC2 VBUS -
16 ADC3 PWM1 8
15 ADC4 PWM0 7
14 SS PWM1 6
13 SCK PWM1 5
12 MOSI PWM1 4
11 MISO PWM3 3
10 RX PWM3 2
9 TX SCL 1
- n/c SDA 0
compatible: "particle-gen3-header"
include: [gpio-nexus.yaml, base.yaml]
@@ -0,0 +1,39 @@
description: EOS S3 GPIO node
compatible: "quicklogic,eos-s3-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
label:
required: true
interrupts:
required: true
"#gpio-cells":
const: 2
pin-secondary-config:
type: int
required: true
description: |
This property is used to preconfigure the GPIOs and connect them to
a primary(0) or a secondary(1) pin. EOS S3 supports up to 8 GPIOs
which can be configured as follows
"GPIO_NUM : primary_pin_num / secondary_pin_num"
"0 : 6 / 24"
"1 : 9 / 26"
"2 : 11 / 28"
"3 : 14 / 30"
"4 : 18 / 31"
"5 : 21 / 36"
"6 : 22 / 38"
"7 : 23 / 45"
E.g. configuring GPIO 2 as secondary results in controlling pin 28,
to do so set the bit on the 2nd index of this property
"pin-secondary-config = <0x04>;"
gpio-cells:
- pin
- flags
+28
View File
@@ -0,0 +1,28 @@
#
# Copyright (c) 2020 IoT.bzh
#
# SPDX-License-Identifier: Apache-2.0
#
description: Renesas RCAR GPIO
compatible: "renesas,rcar-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
interrupts:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+33
View File
@@ -0,0 +1,33 @@
# Copyright (c) 2019 Foundries.io
# Copyright (C) 2019 Peter Bigot Consulting, LLC
# Copyright (C) 2021 Peter Johanson
# SPDX-License-Identifier: Apache-2.0
description: |
GPIO pins exposed on Seeeduino Xiao (and compatible devices) headers.
The Seeeeduino Xiao layout provides two headers, along opposite
edges of the board.
Proceeding counter-clockwise:
* A 7-pin Digital/Analog Input header. This has input signals
labeled from 0 at the top through 6 at the bottom.
* An 7-pin header Power and Digital/Analog Input header. This
has three power pins, followed by four inputs labeled 10 at the
top through 7 at the bottom.
This binding provides a nexus mapping for 10 pins where parent pins 0
through 10 correspond to D0 through D10, as depicted below:
0 D0 5V -
1 D1 GND -
2 D2 3V3 -
3 D3 D10 10
4 A4 D9 9
5 D5 D8 8
6 D6 D7 7
compatible: "seeed,xiao-gpio"
include: [gpio-nexus.yaml, base.yaml]
+46
View File
@@ -0,0 +1,46 @@
# Copyright (c) 2018, Aapo Vienamo
# SPDX-License-Identifier: Apache-2.0
description: SX1509B GPIO node
compatible: "semtech,sx1509b"
include: [i2c-device.yaml, gpio-controller.yaml]
properties:
label:
required: true
"#gpio-cells":
const: 2
ngpios:
required: true
const: 16
nint-gpios:
type: phandle-array
required: false
description: |
Connection for the NINT signal. This signal is active-low when
produced by sx1509b GPIO node.
init-out-low:
type: int
required: false
default: 0
description: |
Bit mask identifying pins that should be initialized as outputs
driven low.
init-out-high:
type: int
required: false
default: 0
description: |
Bit mask identifying pins that should be initialized as outputs
driven high.
gpio-cells:
- pin
- flags
+25
View File
@@ -0,0 +1,25 @@
# Copyright (c) 2018, SiFive Inc.
# SPDX-License-Identifier: Apache-2.0
description: SiFive GPIO node
compatible: "sifive,gpio0"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
interrupts:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
@@ -0,0 +1,24 @@
description: SiLabs Gecko GPIO port node
compatible: "silabs,gecko-gpio-port"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
peripheral-id:
type: int
required: true
description: peripheral ID
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+20
View File
@@ -0,0 +1,20 @@
description: SiLabs Gecko GPIO node
compatible: "silabs,gecko-gpio"
include: base.yaml
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
location-swo:
type: int
required: false
description: Serial Wire Output (SWO) PIN location
+34
View File
@@ -0,0 +1,34 @@
# Copyright (c) 2021 Synopsys, Inc. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
description: Synopsys CREG GPIO node
compatible: "snps,creg-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
bit_per_gpio:
type: int
required: true
off_val:
type: int
required: true
on_val:
type: int
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
@@ -0,0 +1,25 @@
# Copyright (c) 2018 Synopsys, Inc. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
description: Synopsys DesignWare GPIO node
compatible: "snps,designware-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+25
View File
@@ -0,0 +1,25 @@
# Copyright (c) 2018, Linaro Limited
# SPDX-License-Identifier: Apache-2.0
description: STM32 GPIO node
compatible: "st,stm32-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
clocks:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+19
View File
@@ -0,0 +1,19 @@
# Copyright (c) 2021 Titouan Christophe
# SPDX-License-Identifier: Apache-2.0
description: STMPE1600 I2C-based GPIO expander
compatible: "st,stmpe1600"
include: [gpio-controller.yaml, i2c-device.yaml]
properties:
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+22
View File
@@ -0,0 +1,22 @@
# Copyright (c) 2021, Telink Semiconductor
# SPDX-License-Identifier: Apache-2.0
description: Telink B91 GPIO node
compatible: "telink,b91-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
@@ -0,0 +1,34 @@
# Copyright (c) 2019 Brett Witherspoon
# SPDX-License-Identifier: Apache-2.0
description: |
TI BoosterPack GPIO header
GPIO pins exposed as BoosterPack headers on TI LaunchPads.
BoosterPack plug-in modules are available in 20 and 40 pin variants. The
20 pin variant has two 10 x 1 pin headers and the 40 pin variant has two
10 x 2 pin headers. Both variants are compatible and stackable.
The pins of the 20 pin variant and the outer row of the 40 pin variant are
numbered 1 through 20. The inner rows of the 40 pin variant are numbered 21
through 40. The BoosterPack pinout is depicted below:
1 3.3V 21 5V 40 GPIO 20 GND
2 Analog 22 GND 39 GPIO 19 GPIO / SPI CS
3 UART RXD 23 Analog 38 GPIO 18 GPIO
4 UART TXD 24 Analog 37 GPIO 17 GPIO
5 GPIO 25 Analog 36 GPIO 16 RESET
6 Analog 26 Analog 35 GPIO 15 SPI MOSI
7 SPI CLK 27 Analog 34 GPIO 14 SPI MISO
8 GPIO 28 Analog 33 GPIO 13 GPIO / SPI CS
9 I2C SCL 29 32 GPIO 12 GPIO / SPI CS
10 I2C SDA 30 31 GPIO 11 GPIO
Additional information about the BoosterPack pinout can be found at
http://processors.wiki.ti.com/index.php/BYOB or in the documentation for
a TI LaunchPad development kit,
compatible: "ti,boosterpack-header"
include: [gpio-nexus.yaml, base.yaml]
@@ -0,0 +1,25 @@
# Copyright (c) 2019 Brett Witherspoon
# SPDX-License-Identifier: Apache-2.0
description: TI SimpleLink CC13xx / CC26xx GPIO node
compatible: "ti,cc13xx-cc26xx-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+23
View File
@@ -0,0 +1,23 @@
# SPDX-License-Identifier: Apache-2.0
description: TI CC32XX GPIO node
compatible: "ti,cc32xx-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
interrupts:
required: true
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+18
View File
@@ -0,0 +1,18 @@
description: TI LMP90xxx GPIO controller binding
compatible: "ti,lmp90xxx-gpio"
include: [gpio-controller.yaml, base.yaml]
on-bus: lmp90xxx
properties:
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+24
View File
@@ -0,0 +1,24 @@
# SPDX-License-Identifier: Apache-2.0
description: TI Stellaris GPIO node
compatible: "ti,stellaris-gpio"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
interrupts:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+33
View File
@@ -0,0 +1,33 @@
# Copyright (c) 2018, Aapo Vienamo
# Copyright (c) 2021, Laird Connectivity
# SPDX-License-Identifier: Apache-2.0
description: TCA9538 GPIO node
compatible: "ti,tca9538"
include: [i2c-device.yaml, gpio-controller.yaml]
properties:
label:
required: true
"#gpio-cells":
const: 2
ngpios:
required: true
const: 8
description: |
Number of GPIOs available on port expander.
nint-gpios:
type: phandle-array
required: false
description: |
Connection for the NINT signal. This signal is active-low when
produced by tca9538 GPIO node.
gpio-cells:
- pin
- flags
@@ -0,0 +1,18 @@
description: Xilinx AXI GPIO IP GPIO2 node
compatible: "xlnx,xps-gpio-1.00.a-gpio2"
include: [gpio-controller.yaml, base.yaml]
on-bus: xlnx,xps-gpio-1.00.a
properties:
label:
required: true
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
@@ -0,0 +1,79 @@
description: Xilinx AXI GPIO IP node
compatible: "xlnx,xps-gpio-1.00.a"
include: [gpio-controller.yaml, base.yaml]
bus: xlnx,xps-gpio-1.00.a
# Property names correspond to a subset of those generated by
# https://github.com/Xilinx/device-tree-xlnx
properties:
reg:
required: true
label:
required: true
xlnx,all-inputs:
type: int
description: |
1 if all GPIOs are inputs, 0 otherwise
xlnx,all-outputs:
type: int
description: |
1 if all GPIOs are outputs, 0 otherwise
xlnx,dout-default:
type: int
description: |
Default output value. If n-th bit is 1, GPIO-n default value is 1.
xlnx,gpio-width:
type: int
description: |
Number of GPIOs supported
xlnx,tri-default:
type: int
description: |
Default tristate register value. If n-th bit is 1, GPIO-n is an input.
xlnx,is-dual:
type: int
description: |
1 if controller has GPIO2 enabled, 0 otherwise
xlnx,all-inputs-2:
type: int
description: |
1 if all GPIO2s are inputs, 0 otherwise
xlnx,all-outputs-2:
type: int
description: |
1 if all GPIO2s are outputs, 0 otherwise
xlnx,dout-default-2:
type: int
description: |
Default output value. If n-th bit is 1, GPIO2-n default value is 1.
xlnx,gpio2-width:
type: int
description: |
Number of GPIO2s supported
xlnx,tri-default-2:
type: int
description: |
Default tristate register value. If n-th bit is 1, GPIO2-n is an input.
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags
+38
View File
@@ -0,0 +1,38 @@
# Copyright 2020, Friedt Professional Engineering Services, Inc
# SPDX-License-Identifier: Apache-2.0
description: GPIO Emulator
compatible: "zephyr,gpio-emul"
include: [gpio-controller.yaml, base.yaml]
properties:
reg:
required: true
label:
required: true
rising-edge:
description: Enables support for rising edge interrupt detection
type: boolean
falling-edge:
description: Enables support for falling edge interrupt detection
type: boolean
high-level:
description: Enables support for high level interrupt detection
type: boolean
low-level:
description: Enables support for low level interrupt detection
type: boolean
"#gpio-cells":
const: 2
gpio-cells:
- pin
- flags