mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Convert the Broadcom BCM2835 GPIO (and pinmux) controller binding to DT schema format. The structure of the child nodes wasn't well defined. The schema is based on the .dts users. The legacy binding is a single level of child nodes while the standard binding is 2 levels of child nodes. The "all banks" interrupt is treated as optional following actual users. Signed-off-by: Rob Herring (Arm) <robh@kernel.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/20250812203337.731648-1-robh@kernel.org Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
121 lines
2.8 KiB
YAML
121 lines
2.8 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||
%YAML 1.2
|
||
---
|
||
$id: http://devicetree.org/schemas/pinctrl/brcm,bcm2835-gpio.yaml#
|
||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
||
title: Broadcom BCM2835 GPIO (and pinmux) controller
|
||
|
||
maintainers:
|
||
- Florian Fainelli <f.fainelli@gmail.com>
|
||
|
||
description: >
|
||
The BCM2835 GPIO module is a combined GPIO controller, (GPIO) interrupt
|
||
controller, and pinmux/control device.
|
||
|
||
properties:
|
||
compatible:
|
||
enum:
|
||
- brcm,bcm2835-gpio
|
||
- brcm,bcm2711-gpio
|
||
- brcm,bcm7211-gpio
|
||
|
||
reg:
|
||
maxItems: 1
|
||
|
||
'#gpio-cells':
|
||
const: 2
|
||
|
||
gpio-controller: true
|
||
gpio-ranges: true
|
||
gpio-line-names: true
|
||
|
||
interrupts:
|
||
description: >
|
||
Interrupt outputs: one per bank, then the combined “all banks” line.
|
||
BCM7211 may specify up to four per-bank wake-up lines and one combined
|
||
wake-up interrupt.
|
||
minItems: 4
|
||
maxItems: 10
|
||
|
||
'#interrupt-cells':
|
||
const: 2
|
||
|
||
interrupt-controller: true
|
||
|
||
additionalProperties:
|
||
oneOf:
|
||
- type: object
|
||
additionalProperties: false
|
||
|
||
patternProperties:
|
||
'^pins?-':
|
||
type: object
|
||
allOf:
|
||
- $ref: /schemas/pinctrl/pincfg-node.yaml#
|
||
- $ref: /schemas/pinctrl/pinmux-node.yaml#
|
||
additionalProperties: false
|
||
|
||
properties:
|
||
pins: true
|
||
function: true
|
||
bias-disable: true
|
||
bias-pull-up: true
|
||
bias-pull-down: true
|
||
output-high: true
|
||
output-low: true
|
||
|
||
required:
|
||
- pins
|
||
- function
|
||
|
||
- type: object
|
||
additionalProperties: false
|
||
deprecated: true
|
||
|
||
properties:
|
||
brcm,pins:
|
||
description:
|
||
GPIO pin numbers for legacy configuration.
|
||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||
|
||
brcm,function:
|
||
description:
|
||
Legacy mux function for the pins (0=input, 1=output, 2–7=alt functions).
|
||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||
maximum: 7
|
||
|
||
brcm,pull:
|
||
description: >
|
||
Legacy pull setting for the pins (0=none, 1=pull-down, 2=pull-up).
|
||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||
maximum: 2
|
||
|
||
required:
|
||
- brcm,pins
|
||
|
||
allOf:
|
||
- if:
|
||
properties:
|
||
compatible:
|
||
contains:
|
||
enum:
|
||
- brcm,bcm2835-gpio
|
||
- brcm,bcm2711-gpio
|
||
then:
|
||
properties:
|
||
interrupts:
|
||
maxItems: 5
|
||
|
||
examples:
|
||
- |
|
||
gpio@2200000 {
|
||
compatible = "brcm,bcm2835-gpio";
|
||
reg = <0x2200000 0xb4>;
|
||
interrupts = <2 17>, <2 19>, <2 18>, <2 20>, <2 21>;
|
||
#gpio-cells = <2>;
|
||
gpio-controller;
|
||
#interrupt-cells = <2>;
|
||
interrupt-controller;
|
||
};
|