-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dt-bindings: pinctrl: Add bindings for BCM21664 pin controller
Add device tree bindings for the pin controller included in the BCM21664 chip. The bindings are based off brcm,bcm11351-pinctrl.yaml; both chips use the same driver, but have different pins, and the BCM21664 has 6 alt modes instead of 4. Signed-off-by: Artur Weber <aweber.kernel@gmail.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://lore.kernel.org/20250303-bcm21664-pinctrl-v3-1-5f8b80e4ab51@gmail.com Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
- Loading branch information
Artur Weber
authored and
Linus Walleij
committed
Mar 5, 2025
1 parent
e97435a
commit df3a388
Showing
1 changed file
with
152 additions
and
0 deletions.
There are no files selected for viewing
152 changes: 152 additions & 0 deletions
152
Documentation/devicetree/bindings/pinctrl/brcm,bcm21664-pinctrl.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/pinctrl/brcm,bcm21664-pinctrl.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: Broadcom BCM21664 pin controller | ||
|
||
maintainers: | ||
- Florian Fainelli <florian.fainelli@broadcom.com> | ||
- Ray Jui <rjui@broadcom.com> | ||
- Scott Branden <sbranden@broadcom.com> | ||
|
||
allOf: | ||
- $ref: pinctrl.yaml# | ||
|
||
properties: | ||
compatible: | ||
const: brcm,bcm21664-pinctrl | ||
|
||
reg: | ||
maxItems: 1 | ||
|
||
patternProperties: | ||
'-pins$': | ||
type: object | ||
additionalProperties: false | ||
|
||
patternProperties: | ||
'-grp[0-9]$': | ||
type: object | ||
|
||
properties: | ||
pins: | ||
description: | ||
Specifies the name(s) of one or more pins to be configured by | ||
this node. | ||
items: | ||
enum: [ adcsyn, batrm, bsc1clk, bsc1dat, camcs0, camcs1, clk32k, | ||
clk_cx8, dclk1, dclk4, dclkreq1, dclkreq4, dmic0clk, | ||
dmic0dq, dsi0te, gpio00, gpio01, gpio02, gpio03, gpio04, | ||
gpio05, gpio06, gpio07, gpio08, gpio09, gpio10, gpio11, | ||
gpio12, gpio13, gpio14, gpio15, gpio16, gpio17, gpio18, | ||
gpio19, gpio20, gpio21, gpio22, gpio23, gpio24, gpio25, | ||
gpio26, gpio27, gpio28, gpio32, gpio33, gpio34, gpio93, | ||
gpio94, gps_calreq, gps_hostreq, gps_pablank, gps_tmark, | ||
icusbdm, icusbdp, lcdcs0, lcdres, lcdscl, lcdsda, lcdte, | ||
mdmgpio00, mdmgpio01, mdmgpio02, mdmgpio03, mdmgpio04, | ||
mdmgpio05, mdmgpio06, mdmgpio07, mdmgpio08, mmc0ck, | ||
mmc0cmd, mmc0dat0, mmc0dat1, mmc0dat2, mmc0dat3, mmc0dat4, | ||
mmc0dat5, mmc0dat6, mmc0dat7, mmc0rst, mmc1ck, mmc1cmd, | ||
mmc1dat0, mmc1dat1, mmc1dat2, mmc1dat3, mmc1dat4, | ||
mmc1dat5, mmc1dat6, mmc1dat7, mmc1rst, pc1, pc2, pmbscclk, | ||
pmbscdat, pmuint, resetn, rfst2g_mtsloten3g, | ||
rtxdata2g_txdata3g1, rtxen2g_txdata3g2, rxdata3g0, | ||
rxdata3g1, rxdata3g2, sdck, sdcmd, sddat0, sddat1, sddat2, | ||
sddat3, simclk, simdat, simdet, simrst, spi0clk, spi0fss, | ||
spi0rxd, spi0txd, sri_c, sri_d, sri_e, sspck, sspdi, | ||
sspdo, sspsyn, stat1, stat2, swclktck, swdiotms, sysclken, | ||
tdi, tdo, testmode, traceclk, tracedt00, tracedt01, | ||
tracedt02, tracedt03, tracedt04, tracedt05, tracedt06, | ||
tracedt07, tracedt08, tracedt09, tracedt10, tracedt11, | ||
tracedt12, tracedt13, tracedt14, tracedt15, trstb, | ||
txdata3g0, ubctsn, ubrtsn, ubrx, ubtx ] | ||
|
||
function: | ||
description: | ||
Specifies the pin mux selection. | ||
enum: [ alt1, alt2, alt3, alt4, alt5, alt6 ] | ||
|
||
bias-disable: true | ||
|
||
bias-pull-up: | ||
type: boolean | ||
|
||
bias-pull-down: | ||
type: boolean | ||
|
||
slew-rate: | ||
description: | | ||
Meaning depends on configured pin mux: | ||
bsc*clk/pmbscclk or bsc*dat/pmbscdat or gpio16/gpio17: | ||
0: Standard (100 kbps) & Fast (400 kbps) mode | ||
1: Highspeed (3.4 Mbps) mode | ||
Otherwise: | ||
0: fast slew rate | ||
1: normal slew rate | ||
drive-strength: | ||
enum: [ 2, 4, 6, 8, 10, 12, 14, 16 ] | ||
|
||
input-enable: true | ||
input-disable: true | ||
|
||
input-schmitt-enable: true | ||
input-schmitt-disable: true | ||
|
||
required: | ||
- pins | ||
|
||
additionalProperties: false | ||
|
||
allOf: | ||
- $ref: pincfg-node.yaml# | ||
# Limitations for I2C pins | ||
- if: | ||
properties: | ||
pins: | ||
contains: | ||
enum: [ bsc1clk, bsc1dat, gpio16, gpio17, pmbscclk, | ||
pmbscdat ] | ||
then: | ||
properties: | ||
drive-strength: false | ||
bias-pull-down: false | ||
input-schmitt-enable: false | ||
input-schmitt-disable: false | ||
|
||
|
||
required: | ||
- compatible | ||
- reg | ||
|
||
unevaluatedProperties: false | ||
|
||
examples: | ||
- | | ||
pinctrl@35004800 { | ||
compatible = "brcm,bcm21664-pinctrl"; | ||
reg = <0x35004800 0x7f0>; | ||
dev-a-active-pins { | ||
/* group node defining 1 standard pin */ | ||
std-grp0 { | ||
pins = "gpio00"; | ||
function = "alt1"; | ||
input-schmitt-enable; | ||
bias-disable; | ||
slew-rate = <1>; | ||
drive-strength = <4>; | ||
}; | ||
/* group node defining 2 I2C pins */ | ||
i2c-grp0 { | ||
pins = "bsc1clk", "bsc1dat"; | ||
function = "alt2"; | ||
bias-pull-up; | ||
input-enable; | ||
}; | ||
}; | ||
}; | ||
... |