138 lines
3.8 KiB
YAML
138 lines
3.8 KiB
YAML
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/pinctrl/brcm,bcm2712c0-pinctrl.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Broadcom STB family pin controller
|
|
|
|
maintainers:
|
|
- Ivan T. Ivanov <iivanov@suse.de>
|
|
- A. della Porta <andrea.porta@suse.com>
|
|
|
|
description: >
|
|
Broadcom's STB family of memory-mapped pin controllers.
|
|
|
|
This includes the pin controllers inside the BCM2712 SoC which
|
|
are instances of the STB family and has two silicon variants,
|
|
C0 and D0, which differs slightly in terms of registers layout.
|
|
|
|
The -aon- (Always On) variant is the same IP block but differs
|
|
in the number of pins that are associated and the pinmux functions
|
|
for each of those pins.
|
|
|
|
allOf:
|
|
- $ref: pinctrl.yaml#
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- brcm,bcm2712c0-pinctrl
|
|
- brcm,bcm2712c0-aon-pinctrl
|
|
- brcm,bcm2712d0-pinctrl
|
|
- brcm,bcm2712d0-aon-pinctrl
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
patternProperties:
|
|
'-state$':
|
|
oneOf:
|
|
- $ref: '#/$defs/brcmstb-pinctrl-state'
|
|
- patternProperties:
|
|
'-pins$':
|
|
$ref: '#/$defs/brcmstb-pinctrl-state'
|
|
additionalProperties: false
|
|
|
|
$defs:
|
|
brcmstb-pinctrl-state:
|
|
allOf:
|
|
- $ref: pincfg-node.yaml#
|
|
- $ref: pinmux-node.yaml#
|
|
|
|
description: >
|
|
Pin controller client devices use pin configuration subnodes (children
|
|
and grandchildren) for desired pin configuration.
|
|
|
|
Client device subnodes use below standard properties.
|
|
|
|
properties:
|
|
pins:
|
|
description:
|
|
List of gpio pins affected by the properties specified in this
|
|
subnode (either this or "groups" must be specified).
|
|
items:
|
|
pattern: '^((aon_)?s?gpio[0-6]?[0-9])|(emmc_(clk|cmd|dat[0-7]|ds))$'
|
|
|
|
function:
|
|
description:
|
|
Specify the alternative function to be configured for the specified
|
|
pins.
|
|
enum: [ gpio, alt1, alt2, alt3, alt4, alt5, alt6, alt7, alt8,
|
|
aon_cpu_standbyb, aon_fp_4sec_resetb, aon_gpclk, aon_pwm,
|
|
arm_jtag, aud_fs_clk0, avs_pmu_bsc, bsc_m0, bsc_m1, bsc_m2,
|
|
bsc_m3, clk_observe, ctl_hdmi_5v, enet0, enet0_mii, enet0_rgmii,
|
|
ext_sc_clk, fl0, fl1, gpclk0, gpclk1, gpclk2, hdmi_tx0_auto_i2c,
|
|
hdmi_tx0_bsc, hdmi_tx1_auto_i2c, hdmi_tx1_bsc, i2s_in, i2s_out,
|
|
ir_in, mtsif, mtsif_alt, mtsif_alt1, pdm, pkt, pm_led_out, sc0,
|
|
sd0, sd2, sd_card_a, sd_card_b, sd_card_c, sd_card_d, sd_card_e,
|
|
sd_card_f, sd_card_g, spdif_out, spi_m, spi_s, sr_edm_sense, te0,
|
|
te1, tsio, uart0, uart1, uart2, usb_pwr, usb_vbus, uui, vc_i2c0,
|
|
vc_i2c3, vc_i2c4, vc_i2c5, vc_i2csl, vc_pcm, vc_pwm0, vc_pwm1,
|
|
vc_spi0, vc_spi3, vc_spi4, vc_spi5, vc_uart0, vc_uart2, vc_uart3,
|
|
vc_uart4 ]
|
|
|
|
bias-disable: true
|
|
bias-pull-down: true
|
|
bias-pull-up: true
|
|
|
|
required:
|
|
- pins
|
|
|
|
if:
|
|
properties:
|
|
pins:
|
|
not:
|
|
contains:
|
|
pattern: "^emmc_(clk|cmd|dat[0-7]|ds)$"
|
|
then:
|
|
required:
|
|
- function
|
|
else:
|
|
properties:
|
|
function: false
|
|
|
|
additionalProperties: false
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
pinctrl@7d504100 {
|
|
compatible = "brcm,bcm2712c0-pinctrl";
|
|
reg = <0x7d504100 0x30>;
|
|
|
|
bt-shutdown-default-state {
|
|
function = "gpio";
|
|
pins = "gpio29";
|
|
};
|
|
|
|
uarta-default-state {
|
|
rts-tx-pins {
|
|
function = "uart0";
|
|
pins = "gpio24", "gpio26";
|
|
bias-disable;
|
|
};
|
|
|
|
cts-rx-pins {
|
|
function = "uart0";
|
|
pins = "gpio25", "gpio27";
|
|
bias-pull-up;
|
|
};
|
|
};
|
|
};
|