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 7title: Broadcom STB family pin controller 8 9maintainers: 10 - Ivan T. Ivanov <iivanov@suse.de> 11 - A. della Porta <andrea.porta@suse.com> 12 13description: > 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 24allOf: 25 - $ref: pinctrl.yaml# 26 27properties: 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 38patternProperties: 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 107required: 108 - compatible 109 - reg 110 111unevaluatedProperties: false 112 113examples: 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 }; 138