Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dt-bindings: pinctrl: Add support for Broadcom STB pin controller

The STB pin controller represents a family whose silicon instances
are found e.g. on BCM2712 SoC.

In particular, on RaspberryPi 5, there are two separate instantiations
of the same IP block which differ in the number of pins that are
associated and the pinmux functions for each of those pins. The
-aon- variant stands for 'Always On'.

Depending on the revision of the BCM2712 (CO or D0), the pin
controller instance has slight differences in the register layout.

Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
Signed-off-by: Andrea della Porta <andrea.porta@suse.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
[linusw: Dropped extranous label and fixed whitespace]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

Ivan T. Ivanov and committed by
Linus Walleij
07333899 cc85cb96

+137
+137
Documentation/devicetree/bindings/pinctrl/brcm,bcm2712c0-pinctrl.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/pinctrl/brcm,bcm2712c0-pinctrl.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Broadcom STB family pin controller 8 + 9 + maintainers: 10 + - Ivan T. Ivanov <iivanov@suse.de> 11 + - A. della Porta <andrea.porta@suse.com> 12 + 13 + description: > 14 + Broadcom's STB family of memory-mapped pin controllers. 15 + 16 + This includes the pin controllers inside the BCM2712 SoC which 17 + are instances of the STB family and has two silicon variants, 18 + C0 and D0, which differs slightly in terms of registers layout. 19 + 20 + The -aon- (Always On) variant is the same IP block but differs 21 + in the number of pins that are associated and the pinmux functions 22 + for each of those pins. 23 + 24 + allOf: 25 + - $ref: pinctrl.yaml# 26 + 27 + properties: 28 + compatible: 29 + enum: 30 + - brcm,bcm2712c0-pinctrl 31 + - brcm,bcm2712c0-aon-pinctrl 32 + - brcm,bcm2712d0-pinctrl 33 + - brcm,bcm2712d0-aon-pinctrl 34 + 35 + reg: 36 + maxItems: 1 37 + 38 + patternProperties: 39 + '-state$': 40 + oneOf: 41 + - $ref: '#/$defs/brcmstb-pinctrl-state' 42 + - patternProperties: 43 + '-pins$': 44 + $ref: '#/$defs/brcmstb-pinctrl-state' 45 + additionalProperties: false 46 + 47 + $defs: 48 + brcmstb-pinctrl-state: 49 + allOf: 50 + - $ref: pincfg-node.yaml# 51 + - $ref: pinmux-node.yaml# 52 + 53 + description: > 54 + Pin controller client devices use pin configuration subnodes (children 55 + and grandchildren) for desired pin configuration. 56 + 57 + Client device subnodes use below standard properties. 58 + 59 + properties: 60 + pins: 61 + description: 62 + List of gpio pins affected by the properties specified in this 63 + subnode (either this or "groups" must be specified). 64 + items: 65 + pattern: '^((aon_)?s?gpio[0-6]?[0-9])|(emmc_(clk|cmd|dat[0-7]|ds))$' 66 + 67 + function: 68 + description: 69 + Specify the alternative function to be configured for the specified 70 + pins. 71 + enum: [ gpio, alt1, alt2, alt3, alt4, alt5, alt6, alt7, alt8, 72 + aon_cpu_standbyb, aon_fp_4sec_resetb, aon_gpclk, aon_pwm, 73 + arm_jtag, aud_fs_clk0, avs_pmu_bsc, bsc_m0, bsc_m1, bsc_m2, 74 + bsc_m3, clk_observe, ctl_hdmi_5v, enet0, enet0_mii, enet0_rgmii, 75 + ext_sc_clk, fl0, fl1, gpclk0, gpclk1, gpclk2, hdmi_tx0_auto_i2c, 76 + hdmi_tx0_bsc, hdmi_tx1_auto_i2c, hdmi_tx1_bsc, i2s_in, i2s_out, 77 + ir_in, mtsif, mtsif_alt, mtsif_alt1, pdm, pkt, pm_led_out, sc0, 78 + sd0, sd2, sd_card_a, sd_card_b, sd_card_c, sd_card_d, sd_card_e, 79 + sd_card_f, sd_card_g, spdif_out, spi_m, spi_s, sr_edm_sense, te0, 80 + te1, tsio, uart0, uart1, uart2, usb_pwr, usb_vbus, uui, vc_i2c0, 81 + vc_i2c3, vc_i2c4, vc_i2c5, vc_i2csl, vc_pcm, vc_pwm0, vc_pwm1, 82 + vc_spi0, vc_spi3, vc_spi4, vc_spi5, vc_uart0, vc_uart2, vc_uart3, 83 + vc_uart4 ] 84 + 85 + bias-disable: true 86 + bias-pull-down: true 87 + bias-pull-up: true 88 + 89 + required: 90 + - pins 91 + 92 + if: 93 + properties: 94 + pins: 95 + not: 96 + contains: 97 + pattern: "^emmc_(clk|cmd|dat[0-7]|ds)$" 98 + then: 99 + required: 100 + - function 101 + else: 102 + properties: 103 + function: false 104 + 105 + additionalProperties: false 106 + 107 + required: 108 + - compatible 109 + - reg 110 + 111 + unevaluatedProperties: false 112 + 113 + examples: 114 + - | 115 + pinctrl@7d504100 { 116 + compatible = "brcm,bcm2712c0-pinctrl"; 117 + reg = <0x7d504100 0x30>; 118 + 119 + bt-shutdown-default-state { 120 + function = "gpio"; 121 + pins = "gpio29"; 122 + }; 123 + 124 + uarta-default-state { 125 + rts-tx-pins { 126 + function = "uart0"; 127 + pins = "gpio24", "gpio26"; 128 + bias-disable; 129 + }; 130 + 131 + cts-rx-pins { 132 + function = "uart0"; 133 + pins = "gpio25", "gpio27"; 134 + bias-pull-up; 135 + }; 136 + }; 137 + };