mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
dt-bindings: pinctrl: Add starfive,jhb100-sys2-pinctrl
Add pinctrl bindings for StarFive JHB100 SoC System-2(sys2) pinctrl controller. Signed-off-by: Changhuang Liang <changhuang.liang@starfivetech.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Linus Walleij <linusw@kernel.org>
This commit is contained in:
parent
1d5c139909
commit
941cc8022c
|
|
@ -0,0 +1,165 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/pinctrl/starfive,jhb100-sys2-pinctrl.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: StarFive JHB100 System-2 Pin Controller
|
||||
|
||||
description: |
|
||||
Pinctrl bindings for JHB100 RISC-V SoC from StarFive Technology Ltd.
|
||||
|
||||
The JHB100 SoC has 13 pinctrl domains - sys0, sys0h, sys1, sys2, per0, per1,
|
||||
per2, per2pok, per3, adc0, adc1, emmc, and vga.
|
||||
This document provides an overview of the "sys2" pinctrl domain.
|
||||
|
||||
The "sys2" domain has a pin controller which provides
|
||||
- function selection for GPIO pads.
|
||||
- GPIO pad configuration.
|
||||
- GPIO interrupt handling.
|
||||
|
||||
In the SYS2 Pin Controller, there are 37 multi-function GPIO_PADs. Each of
|
||||
them can be multiplexed to different hardware blocks through function
|
||||
selection. Each iopad has a maximum of up to 4 functions - 0, 1, 2, and 3.
|
||||
Function 0 is the default function which is the GPIO function.
|
||||
Function 1, 2, and 3 are the alternate functions or peripheral signals that
|
||||
can be routed to the iopad. The function selection can be carried out by
|
||||
writing the function number to the iopad function select register.
|
||||
|
||||
Each iopad is configurable with parameters such as input-enable, internal
|
||||
pull-up/pull-down bias, drive strength, schmitt trigger, slew rate, input
|
||||
debounce nanoseconds, power source.
|
||||
|
||||
maintainers:
|
||||
- Changhuang Liang <changhuang.liang@starfivetech.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- const: starfive,jhb100-sys2-pinctrl
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-controller: true
|
||||
|
||||
'#interrupt-cells':
|
||||
const: 2
|
||||
|
||||
gpio-controller: true
|
||||
|
||||
'#gpio-cells':
|
||||
const: 2
|
||||
|
||||
gpio-ranges: true
|
||||
|
||||
gpio-line-names: true
|
||||
|
||||
patternProperties:
|
||||
'-grp$':
|
||||
type: object
|
||||
additionalProperties: false
|
||||
patternProperties:
|
||||
'-pins$':
|
||||
type: object
|
||||
description: |
|
||||
A pinctrl node should contain at least one subnode representing the
|
||||
pinctrl groups available in the domain. Each subnode will list the
|
||||
pins it needs, and how they should be configured, with regard to
|
||||
function selection, bias, input enable/disable, input schmitt
|
||||
trigger enable/disable, slew-rate, input debounce nanoseconds,
|
||||
power-source and drive-strength.
|
||||
allOf:
|
||||
- $ref: /schemas/pinctrl/pincfg-node.yaml
|
||||
- $ref: /schemas/pinctrl/pinmux-node.yaml
|
||||
additionalProperties: false
|
||||
|
||||
properties:
|
||||
pins:
|
||||
description:
|
||||
The list of IOs that properties in the pincfg node apply to.
|
||||
|
||||
function:
|
||||
description:
|
||||
A string containing the name of the function to mux for these
|
||||
pins.
|
||||
enum: [ gpio, host0_port80, host1_port80, jtag, smbalert, uart ]
|
||||
|
||||
bias-disable: true
|
||||
|
||||
bias-pull-down:
|
||||
type: boolean
|
||||
|
||||
bias-pull-up:
|
||||
type: boolean
|
||||
|
||||
drive-strength:
|
||||
enum: [ 2, 4, 8, 12 ]
|
||||
|
||||
drive-strength-microamp:
|
||||
enum: [ 2000, 4000, 8000, 12000 ]
|
||||
|
||||
input-debounce-ns:
|
||||
minimum: 0
|
||||
maximum: 10485680
|
||||
description:
|
||||
Debounce time in nanoseconds. The hardware counts in 80 ns
|
||||
stages with a 17-bit counter, so the maximum is 10485680 ns.
|
||||
|
||||
input-disable: true
|
||||
|
||||
input-enable: true
|
||||
|
||||
input-schmitt-enable: true
|
||||
|
||||
input-schmitt-disable: true
|
||||
|
||||
power-source:
|
||||
enum: [ 1800, 3300 ]
|
||||
description: I/O voltage in millivolt.
|
||||
|
||||
slew-rate:
|
||||
enum: [ 0, 1 ]
|
||||
default: 0
|
||||
description: |
|
||||
0: slow
|
||||
1: fast
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- interrupt-controller
|
||||
- '#interrupt-cells'
|
||||
- gpio-controller
|
||||
- '#gpio-cells'
|
||||
- gpio-ranges
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
pinctrl_sys2: pinctrl@13082000 {
|
||||
compatible = "starfive,jhb100-sys2-pinctrl";
|
||||
reg = <0x0 0x13082000 0x0 0x1000>;
|
||||
interrupts = <59>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <2>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
gpio-ranges = <&pinctrl_sys2 0 0 37>;
|
||||
};
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user