1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/brcm,iproc-gpio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Broadcom iProc GPIO/PINCONF Controller
maintainers:
- Ray Jui <rjui@broadcom.com>
- Scott Branden <sbranden@broadcom.com>
properties:
compatible:
oneOf:
- enum:
- brcm,cygnus-asiu-gpio
- brcm,cygnus-ccm-gpio
- brcm,cygnus-crmu-gpio
- brcm,iproc-gpio
- brcm,iproc-stingray-gpio
- items:
- enum:
- brcm,iproc-hr2-gpio
- brcm,iproc-nsp-gpio
- const: brcm,iproc-gpio
reg:
minItems: 1
items:
- description: GPIO Bank registers
- description: IO Ctrl registers
"#gpio-cells":
const: 2
gpio-controller: true
gpio-ranges: true
ngpios: true
"#interrupt-cells":
const: 2
interrupts:
maxItems: 1
interrupt-controller: true
required:
- compatible
- reg
- "#gpio-cells"
- gpio-controller
- ngpios
patternProperties:
'-pins$':
type: object
additionalProperties:
description: Pin configuration child nodes.
allOf:
- $ref: pincfg-node.yaml#
- $ref: pinmux-node.yaml#
additionalProperties: false
properties:
pins:
items:
pattern: '^gpio-'
bias-disable: true
bias-pull-up: true
bias-pull-down: true
drive-strength:
enum: [ 2, 4, 6, 8, 10, 12, 14, 16 ]
required:
- pins
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
gpio@1800a000 {
compatible = "brcm,cygnus-ccm-gpio";
reg = <0x1800a000 0x50>,
<0x0301d164 0x20>;
ngpios = <24>;
#gpio-cells = <2>;
gpio-controller;
#interrupt-cells = <2>;
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
interrupt-controller;
touch-pins {
pwr {
pins = "gpio-0";
drive-strength = <16>;
};
event {
pins = "gpio-1";
bias-pull-up;
};
};
};
|