mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 23:22:31 +02:00
dt-bindings: pinctrl: Convert marvell,armada-3710-(sb|nb)-pinctrl to DT schema
Convert the marvell,armada3710-(sb|nb)-pinctrl binding to DT schema format. The binding includes the "marvell,armada-3700-xtal-clock" subnode which is simple enough to include here. Mark interrupt-controller/#interrupt-cells as required as the users have them and the h/w is either capable of interrupts or not. As this syscon has 2 register ranges, syscon-common.yaml needs to be updated to drop the restriction of 1 register entry. Signed-off-by: Rob Herring (Arm) <robh@kernel.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
d51093cf01
commit
c1c9641a04
|
|
@ -1,29 +0,0 @@
|
||||||
* Xtal Clock bindings for Marvell Armada 37xx SoCs
|
|
||||||
|
|
||||||
Marvell Armada 37xx SoCs allow to determine the xtal clock frequencies by
|
|
||||||
reading the gpio latch register.
|
|
||||||
|
|
||||||
This node must be a subnode of the node exposing the register address
|
|
||||||
of the GPIO block where the gpio latch is located.
|
|
||||||
See Documentation/devicetree/bindings/pinctrl/marvell,armada-37xx-pinctrl.txt
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible : shall be one of the following:
|
|
||||||
"marvell,armada-3700-xtal-clock"
|
|
||||||
- #clock-cells : from common clock binding; shall be set to 0
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- clock-output-names : from common clock binding; allows overwrite default clock
|
|
||||||
output names ("xtal")
|
|
||||||
|
|
||||||
Example:
|
|
||||||
pinctrl_nb: pinctrl-nb@13800 {
|
|
||||||
compatible = "armada3710-nb-pinctrl", "syscon", "simple-mfd";
|
|
||||||
reg = <0x13800 0x100>, <0x13C00 0x20>;
|
|
||||||
|
|
||||||
xtalclk: xtal-clk {
|
|
||||||
compatible = "marvell,armada-3700-xtal-clock";
|
|
||||||
clock-output-names = "xtal";
|
|
||||||
#clock-cells = <0>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
@ -35,9 +35,6 @@ properties:
|
||||||
minItems: 2
|
minItems: 2
|
||||||
maxItems: 5 # Should be enough
|
maxItems: 5 # Should be enough
|
||||||
|
|
||||||
reg:
|
|
||||||
maxItems: 1
|
|
||||||
|
|
||||||
reg-io-width:
|
reg-io-width:
|
||||||
description:
|
description:
|
||||||
The size (in bytes) of the IO accesses that should be performed
|
The size (in bytes) of the IO accesses that should be performed
|
||||||
|
|
|
||||||
|
|
@ -1,195 +0,0 @@
|
||||||
* Marvell Armada 37xx SoC pin and gpio controller
|
|
||||||
|
|
||||||
Each Armada 37xx SoC come with two pin and gpio controller one for the
|
|
||||||
south bridge and the other for the north bridge.
|
|
||||||
|
|
||||||
Inside this set of register the gpio latch allows exposing some
|
|
||||||
configuration of the SoC and especially the clock frequency of the
|
|
||||||
xtal. Hence, this node is a represent as syscon allowing sharing the
|
|
||||||
register between multiple hardware block.
|
|
||||||
|
|
||||||
GPIO and pin controller:
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
Main node:
|
|
||||||
|
|
||||||
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".
|
|
||||||
|
|
||||||
Required properties for pinctrl driver:
|
|
||||||
|
|
||||||
- compatible: "marvell,armada3710-sb-pinctrl", "syscon, "simple-mfd"
|
|
||||||
for the south bridge
|
|
||||||
"marvell,armada3710-nb-pinctrl", "syscon, "simple-mfd"
|
|
||||||
for the north bridge
|
|
||||||
- reg: The first set of register are for pinctrl/gpio and the second
|
|
||||||
set for the interrupt controller
|
|
||||||
- interrupts: list of the interrupt use by the gpio
|
|
||||||
|
|
||||||
Available groups and functions for the North bridge:
|
|
||||||
|
|
||||||
group: jtag
|
|
||||||
- pins 20-24
|
|
||||||
- functions jtag, gpio
|
|
||||||
|
|
||||||
group sdio0
|
|
||||||
- pins 8-10
|
|
||||||
- functions sdio, gpio
|
|
||||||
|
|
||||||
group emmc_nb
|
|
||||||
- pins 27-35
|
|
||||||
- functions emmc, gpio
|
|
||||||
|
|
||||||
group pwm0
|
|
||||||
- pin 11 (GPIO1-11)
|
|
||||||
- functions pwm, led, gpio
|
|
||||||
|
|
||||||
group pwm1
|
|
||||||
- pin 12
|
|
||||||
- functions pwm, led, gpio
|
|
||||||
|
|
||||||
group pwm2
|
|
||||||
- pin 13
|
|
||||||
- functions pwm, led, gpio
|
|
||||||
|
|
||||||
group pwm3
|
|
||||||
- pin 14
|
|
||||||
- functions pwm, led, gpio
|
|
||||||
|
|
||||||
group pmic1
|
|
||||||
- pin 7
|
|
||||||
- functions pmic, gpio
|
|
||||||
|
|
||||||
group pmic0
|
|
||||||
- pin 6
|
|
||||||
- functions pmic, gpio
|
|
||||||
|
|
||||||
group i2c2
|
|
||||||
- pins 2-3
|
|
||||||
- functions i2c, gpio
|
|
||||||
|
|
||||||
group i2c1
|
|
||||||
- pins 0-1
|
|
||||||
- functions i2c, gpio
|
|
||||||
|
|
||||||
group spi_cs1
|
|
||||||
- pin 17
|
|
||||||
- functions spi, gpio
|
|
||||||
|
|
||||||
group spi_cs2
|
|
||||||
- pin 18
|
|
||||||
- functions spi, gpio
|
|
||||||
|
|
||||||
group spi_cs3
|
|
||||||
- pin 19
|
|
||||||
- functions spi, gpio
|
|
||||||
|
|
||||||
group onewire
|
|
||||||
- pin 4
|
|
||||||
- functions onewire, gpio
|
|
||||||
|
|
||||||
group uart1
|
|
||||||
- pins 25-26
|
|
||||||
- functions uart, gpio
|
|
||||||
|
|
||||||
group spi_quad
|
|
||||||
- pins 15-16
|
|
||||||
- functions spi, gpio
|
|
||||||
|
|
||||||
group uart2
|
|
||||||
- pins 9-10 and 18-19
|
|
||||||
- functions uart, gpio
|
|
||||||
|
|
||||||
Available groups and functions for the South bridge:
|
|
||||||
|
|
||||||
group usb32_drvvbus0
|
|
||||||
- pin 36
|
|
||||||
- functions drvbus, gpio
|
|
||||||
|
|
||||||
group usb2_drvvbus1
|
|
||||||
- pin 37
|
|
||||||
- functions drvbus, gpio
|
|
||||||
|
|
||||||
group sdio_sb
|
|
||||||
- pins 60-65
|
|
||||||
- functions sdio, gpio
|
|
||||||
|
|
||||||
group rgmii
|
|
||||||
- pins 42-53
|
|
||||||
- functions mii, gpio
|
|
||||||
|
|
||||||
group pcie1
|
|
||||||
- pins 39
|
|
||||||
- functions pcie, gpio
|
|
||||||
|
|
||||||
group pcie1_clkreq
|
|
||||||
- pins 40
|
|
||||||
- functions pcie, gpio
|
|
||||||
|
|
||||||
group pcie1_wakeup
|
|
||||||
- pins 41
|
|
||||||
- functions pcie, gpio
|
|
||||||
|
|
||||||
group smi
|
|
||||||
- pins 54-55
|
|
||||||
- functions smi, gpio
|
|
||||||
|
|
||||||
group ptp
|
|
||||||
- pins 56
|
|
||||||
- functions ptp, gpio
|
|
||||||
|
|
||||||
group ptp_clk
|
|
||||||
- pin 57
|
|
||||||
- functions ptp, mii
|
|
||||||
|
|
||||||
group ptp_trig
|
|
||||||
- pin 58
|
|
||||||
- functions ptp, mii
|
|
||||||
|
|
||||||
group mii_col
|
|
||||||
- pin 59
|
|
||||||
- functions mii, mii_err
|
|
||||||
|
|
||||||
GPIO subnode:
|
|
||||||
|
|
||||||
Please refer to gpio.txt in this directory for details of gpio-ranges property
|
|
||||||
and the common GPIO bindings used by client devices.
|
|
||||||
|
|
||||||
Required properties for gpio driver under the gpio subnode:
|
|
||||||
- interrupts: List of interrupt specifier for the controllers interrupt.
|
|
||||||
- gpio-controller: Marks the device node as a gpio controller.
|
|
||||||
- #gpio-cells: Should be 2. The first cell is the GPIO number and the
|
|
||||||
second cell specifies GPIO flags, as defined in
|
|
||||||
<dt-bindings/gpio/gpio.h>. Only the GPIO_ACTIVE_HIGH and
|
|
||||||
GPIO_ACTIVE_LOW flags are supported.
|
|
||||||
- gpio-ranges: Range of pins managed by the GPIO controller.
|
|
||||||
|
|
||||||
Xtal Clock bindings for Marvell Armada 37xx SoCs
|
|
||||||
------------------------------------------------
|
|
||||||
|
|
||||||
see Documentation/devicetree/bindings/clock/armada3700-xtal-clock.txt
|
|
||||||
|
|
||||||
|
|
||||||
Example:
|
|
||||||
pinctrl_sb: pinctrl-sb@18800 {
|
|
||||||
compatible = "marvell,armada3710-sb-pinctrl", "syscon", "simple-mfd";
|
|
||||||
reg = <0x18800 0x100>, <0x18C00 0x20>;
|
|
||||||
gpio {
|
|
||||||
#gpio-cells = <2>;
|
|
||||||
gpio-ranges = <&pinctrl_sb 0 0 29>;
|
|
||||||
gpio-controller;
|
|
||||||
interrupts =
|
|
||||||
<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
|
|
||||||
<GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
};
|
|
||||||
|
|
||||||
rgmii_pins: mii-pins {
|
|
||||||
groups = "rgmii";
|
|
||||||
function = "mii";
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
@ -0,0 +1,124 @@
|
||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/pinctrl/marvell,armada3710-xb-pinctrl.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Marvell Armada 37xx SoC pin and gpio controller
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Gregory CLEMENT <gregory.clement@bootlin.com>
|
||||||
|
- Marek Behún <kabel@kernel.org>
|
||||||
|
- Miquel Raynal <miquel.raynal@bootlin.com>
|
||||||
|
|
||||||
|
description: >
|
||||||
|
Each Armada 37xx SoC come with two pin and gpio controller one for the south
|
||||||
|
bridge and the other for the north bridge.
|
||||||
|
|
||||||
|
Inside this set of register the gpio latch allows exposing some configuration
|
||||||
|
of the SoC and especially the clock frequency of the xtal. Hence, this node is
|
||||||
|
a represent as syscon allowing sharing the register between multiple hardware
|
||||||
|
block.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
items:
|
||||||
|
- enum:
|
||||||
|
- marvell,armada3710-sb-pinctrl
|
||||||
|
- marvell,armada3710-nb-pinctrl
|
||||||
|
- const: syscon
|
||||||
|
- const: simple-mfd
|
||||||
|
|
||||||
|
reg:
|
||||||
|
items:
|
||||||
|
- description: pinctrl and GPIO controller registers
|
||||||
|
- description: interrupt controller registers
|
||||||
|
|
||||||
|
gpio:
|
||||||
|
description: GPIO controller subnode
|
||||||
|
type: object
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
'#gpio-cells':
|
||||||
|
const: 2
|
||||||
|
|
||||||
|
gpio-controller: true
|
||||||
|
|
||||||
|
gpio-ranges:
|
||||||
|
description: Range of pins managed by the GPIO controller
|
||||||
|
|
||||||
|
'#interrupt-cells':
|
||||||
|
const: 2
|
||||||
|
|
||||||
|
interrupt-controller: true
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
description: List of interrupt specifiers for the GPIO controller
|
||||||
|
|
||||||
|
required:
|
||||||
|
- '#gpio-cells'
|
||||||
|
- gpio-ranges
|
||||||
|
- gpio-controller
|
||||||
|
- '#interrupt-cells'
|
||||||
|
- interrupt-controller
|
||||||
|
- interrupts
|
||||||
|
|
||||||
|
xtal-clk:
|
||||||
|
type: object
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: marvell,armada-3700-xtal-clock
|
||||||
|
|
||||||
|
'#clock-cells':
|
||||||
|
const: 0
|
||||||
|
|
||||||
|
clock-output-names: true
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
'-pins$':
|
||||||
|
$ref: pinmux-node.yaml#
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
properties:
|
||||||
|
groups:
|
||||||
|
enum: [ emmc_nb, i2c1, i2c2, jtag, mii_col, onewire, pcie1,
|
||||||
|
pcie1_clkreq, pcie1_wakeup, pmic0, pmic1, ptp, ptp_clk,
|
||||||
|
ptp_trig, pwm0, pwm1, pwm2, pwm3, rgmii, sdio0, sdio_sb, smi,
|
||||||
|
spi_cs1, spi_cs2, spi_cs3, spi_quad, uart1, uart2,
|
||||||
|
usb2_drvvbus1, usb32_drvvbus ]
|
||||||
|
|
||||||
|
function:
|
||||||
|
enum: [ drvbus, emmc, gpio, i2c, jtag, led, mii, mii_err, onewire,
|
||||||
|
pcie, pmic, ptp, pwm, sdio, smi, spi, uart ]
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||||
|
|
||||||
|
pinctrl_sb: pinctrl@18800 {
|
||||||
|
compatible = "marvell,armada3710-sb-pinctrl", "syscon", "simple-mfd";
|
||||||
|
reg = <0x18800 0x100>, <0x18C00 0x20>;
|
||||||
|
|
||||||
|
gpio {
|
||||||
|
#gpio-cells = <2>;
|
||||||
|
gpio-ranges = <&pinctrl_sb 0 0 29>;
|
||||||
|
gpio-controller;
|
||||||
|
#interrupt-cells = <2>;
|
||||||
|
interrupt-controller;
|
||||||
|
interrupts =
|
||||||
|
<GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
|
||||||
|
<GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
|
};
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue
Block a user