194 lines
4.9 KiB
YAML
194 lines
4.9 KiB
YAML
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: http://devicetree.org/schemas/pinctrl/ingenic,pinctrl.yaml#
|
||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
|
||
|
title: Ingenic SoCs pin controller devicetree bindings
|
||
|
|
||
|
description: >
|
||
|
Please refer to pinctrl-bindings.txt in this directory for details of the
|
||
|
common pinctrl bindings used by client devices, including the meaning of the
|
||
|
phrase "pin configuration node".
|
||
|
|
||
|
For the Ingenic SoCs, pin control is tightly bound with GPIO ports. All pins
|
||
|
may be used as GPIOs, multiplexed device functions are configured within the
|
||
|
GPIO port configuration registers and it is typical to refer to pins using the
|
||
|
naming scheme "PxN" where x is a character identifying the GPIO port with
|
||
|
which the pin is associated and N is an integer from 0 to 31 identifying the
|
||
|
pin within that GPIO port. For example PA0 is the first pin in GPIO port A,
|
||
|
and PB31 is the last pin in GPIO port B. The JZ4730, the JZ4740, the JZ4725B,
|
||
|
the X1000 and the X1830 contains 4 GPIO ports, PA to PD, for a total of 128
|
||
|
pins. The X2000 and the X2100 contains 5 GPIO ports, PA to PE, for a total of
|
||
|
160 pins. The JZ4750, the JZ4755 the JZ4760, the JZ4770 and the JZ4780 contains
|
||
|
6 GPIO ports, PA to PF, for a total of 192 pins. The JZ4775 contains 7 GPIO
|
||
|
ports, PA to PG, for a total of 224 pins.
|
||
|
|
||
|
maintainers:
|
||
|
- Paul Cercueil <paul@crapouillou.net>
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
oneOf:
|
||
|
- enum:
|
||
|
- ingenic,jz4730-pinctrl
|
||
|
- ingenic,jz4740-pinctrl
|
||
|
- ingenic,jz4725b-pinctrl
|
||
|
- ingenic,jz4750-pinctrl
|
||
|
- ingenic,jz4755-pinctrl
|
||
|
- ingenic,jz4760-pinctrl
|
||
|
- ingenic,jz4770-pinctrl
|
||
|
- ingenic,jz4775-pinctrl
|
||
|
- ingenic,jz4780-pinctrl
|
||
|
- ingenic,x1000-pinctrl
|
||
|
- ingenic,x1500-pinctrl
|
||
|
- ingenic,x1830-pinctrl
|
||
|
- ingenic,x2000-pinctrl
|
||
|
- ingenic,x2100-pinctrl
|
||
|
- items:
|
||
|
- const: ingenic,jz4760b-pinctrl
|
||
|
- const: ingenic,jz4760-pinctrl
|
||
|
- items:
|
||
|
- const: ingenic,x1000e-pinctrl
|
||
|
- const: ingenic,x1000-pinctrl
|
||
|
- items:
|
||
|
- const: ingenic,x2000e-pinctrl
|
||
|
- const: ingenic,x2000-pinctrl
|
||
|
|
||
|
reg:
|
||
|
maxItems: 1
|
||
|
|
||
|
"#address-cells":
|
||
|
const: 1
|
||
|
|
||
|
"#size-cells":
|
||
|
const: 0
|
||
|
|
||
|
patternProperties:
|
||
|
"^gpio@[0-9]$":
|
||
|
type: object
|
||
|
properties:
|
||
|
compatible:
|
||
|
enum:
|
||
|
- ingenic,jz4730-gpio
|
||
|
- ingenic,jz4740-gpio
|
||
|
- ingenic,jz4725b-gpio
|
||
|
- ingenic,jz4750-gpio
|
||
|
- ingenic,jz4755-gpio
|
||
|
- ingenic,jz4760-gpio
|
||
|
- ingenic,jz4770-gpio
|
||
|
- ingenic,jz4775-gpio
|
||
|
- ingenic,jz4780-gpio
|
||
|
- ingenic,x1000-gpio
|
||
|
- ingenic,x1500-gpio
|
||
|
- ingenic,x1830-gpio
|
||
|
- ingenic,x2000-gpio
|
||
|
- ingenic,x2100-gpio
|
||
|
|
||
|
reg:
|
||
|
items:
|
||
|
- description: The GPIO bank number
|
||
|
|
||
|
gpio-controller: true
|
||
|
|
||
|
"#gpio-cells":
|
||
|
const: 2
|
||
|
|
||
|
gpio-ranges:
|
||
|
maxItems: 1
|
||
|
|
||
|
interrupt-controller: true
|
||
|
|
||
|
"#interrupt-cells":
|
||
|
const: 2
|
||
|
description:
|
||
|
Refer to ../interrupt-controller/interrupts.txt for more details.
|
||
|
|
||
|
interrupts:
|
||
|
maxItems: 1
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- gpio-controller
|
||
|
- "#gpio-cells"
|
||
|
- interrupts
|
||
|
- interrupt-controller
|
||
|
- "#interrupt-cells"
|
||
|
|
||
|
additionalProperties: false
|
||
|
|
||
|
allOf:
|
||
|
- $ref: "pinctrl.yaml#"
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- "#address-cells"
|
||
|
- "#size-cells"
|
||
|
|
||
|
additionalProperties:
|
||
|
anyOf:
|
||
|
- type: object
|
||
|
allOf:
|
||
|
- $ref: pincfg-node.yaml#
|
||
|
- $ref: pinmux-node.yaml#
|
||
|
|
||
|
properties:
|
||
|
phandle: true
|
||
|
function: true
|
||
|
groups: true
|
||
|
pins: true
|
||
|
bias-disable: true
|
||
|
bias-pull-up: true
|
||
|
bias-pull-down: true
|
||
|
output-low: true
|
||
|
output-high: true
|
||
|
additionalProperties: false
|
||
|
|
||
|
- type: object
|
||
|
properties:
|
||
|
phandle: true
|
||
|
additionalProperties:
|
||
|
type: object
|
||
|
allOf:
|
||
|
- $ref: pincfg-node.yaml#
|
||
|
- $ref: pinmux-node.yaml#
|
||
|
|
||
|
properties:
|
||
|
phandle: true
|
||
|
function: true
|
||
|
groups: true
|
||
|
pins: true
|
||
|
bias-disable: true
|
||
|
bias-pull-up: true
|
||
|
bias-pull-down: true
|
||
|
output-low: true
|
||
|
output-high: true
|
||
|
additionalProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
pinctrl@10010000 {
|
||
|
compatible = "ingenic,jz4770-pinctrl";
|
||
|
reg = <0x10010000 0x600>;
|
||
|
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
gpio@0 {
|
||
|
compatible = "ingenic,jz4770-gpio";
|
||
|
reg = <0>;
|
||
|
|
||
|
gpio-controller;
|
||
|
gpio-ranges = <&pinctrl 0 0 32>;
|
||
|
#gpio-cells = <2>;
|
||
|
|
||
|
interrupt-controller;
|
||
|
#interrupt-cells = <2>;
|
||
|
|
||
|
interrupt-parent = <&intc>;
|
||
|
interrupts = <17>;
|
||
|
};
|
||
|
};
|