Message ID | 20210317143803.26127-18-noltari@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | pinctrl: add BCM63XX pincontrol support | expand |
On Wed, Mar 17, 2021 at 03:37:58PM +0100, Álvaro Fernández Rojas wrote: > Add binding documentation for the pincontrol core found in the BCM63268 > family SoCs. > > Co-developed-by: Jonas Gorski <jonas.gorski@gmail.com></jonas.gorski> checkpatch.pl highlights an error here. > Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > --- > v8: add changes suggested by Rob Herring > v7: add changes suggested by Rob Herring > v6: add changes suggested by Rob Herring > v5: change Documentation to dt-bindings in commit title > v4: no changes > v3: add new gpio node > v2: remove interrupts > > .../pinctrl/brcm,bcm63268-pinctrl.yaml | 166 ++++++++++++++++++ > 1 file changed, 166 insertions(+) > create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.yaml > > diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.yaml > new file mode 100644 > index 000000000000..1acd6ef38c5f > --- /dev/null > +++ b/Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.yaml > @@ -0,0 +1,166 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/pinctrl/brcm,bcm63268-pinctrl.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Broadcom BCM63268 pin controller > + > +maintainers: > + - Álvaro Fernández Rojas <noltari@gmail.com> > + - Jonas Gorski <jonas.gorski@gmail.com> > + > +description: > + Bindings for Broadcom's BCM63268 memory-mapped pin controller. > + > +properties: > + compatible: > + const: brcm,bcm63268-pinctrl > + > + reg: > + maxItems: 3 > + > +patternProperties: > + '-pins$': > + type: object > + $ref: pinmux-node.yaml# > + > + properties: > + function: > + $ref: "pinmux-node.yaml#/properties/function" Drop this. The previous $ref already does the same thing. > + enum: [ serial_led_clk, serial_led_data, hsspi_cs4, hsspi_cs5, > + hsspi_cs6, hsspi_cs7, adsl_spi_miso, adsl_spi_mosi, > + vreq_clk, pcie_clkreq_b, robosw_led_clk, robosw_led_data, > + nand, gpio35_alt, dectpd, vdsl_phy_override_0, > + vdsl_phy_override_1, vdsl_phy_override_2, > + vdsl_phy_override_3, dsl_gpio8, dsl_gpio9 ] > + > + pins: > + $ref: "pinmux-node.yaml#/properties/pins" And this. Same applies to the other pinctrl bindings. > + enum: [ gpio0, gpio1, gpio16, gpio17, gpio8, gpio9, gpio18, gpio19, > + gpio22, gpio23, gpio30, gpio31, nand_grp, gpio35 > + dectpd_grp, vdsl_phy_override_0_grp, > + vdsl_phy_override_1_grp, vdsl_phy_override_2_grp, > + vdsl_phy_override_3_grp, dsl_gpio8, dsl_gpio9 ] > + > +required: > + - compatible > + - reg > + > +additionalProperties: false > + > +examples: > + - | > + pinctrl@10 { > + compatible = "brcm,bcm63268-pinctrl"; > + reg = <0x10 0x4>, <0x18 0x8>, <0x38 0x4>; > + > + pinctrl_serial_led: serial_led-pins { > + pinctrl_serial_led_clk: serial_led_clk-pins { > + function = "serial_led_clk"; > + pins = "gpio0"; > + }; > + > + pinctrl_serial_led_data: serial_led_data-pins { > + function = "serial_led_data"; > + pins = "gpio1"; > + }; > + }; > + > + pinctrl_hsspi_cs4: hsspi_cs4-pins { > + function = "hsspi_cs4"; > + pins = "gpio16"; > + }; > + > + pinctrl_hsspi_cs5: hsspi_cs5-pins { > + function = "hsspi_cs5"; > + pins = "gpio17"; > + }; > + > + pinctrl_hsspi_cs6: hsspi_cs6-pins { > + function = "hsspi_cs6"; > + pins = "gpio8"; > + }; > + > + pinctrl_hsspi_cs7: hsspi_cs7-pins { > + function = "hsspi_cs7"; > + pins = "gpio9"; > + }; > + > + pinctrl_adsl_spi: adsl_spi-pins { > + pinctrl_adsl_spi_miso: adsl_spi_miso-pins { > + function = "adsl_spi_miso"; > + pins = "gpio18"; > + }; > + > + pinctrl_adsl_spi_mosi: adsl_spi_mosi-pins { > + function = "adsl_spi_mosi"; > + pins = "gpio19"; > + }; > + }; > + > + pinctrl_vreq_clk: vreq_clk-pins { > + function = "vreq_clk"; > + pins = "gpio22"; > + }; > + > + pinctrl_pcie_clkreq_b: pcie_clkreq_b-pins { > + function = "pcie_clkreq_b"; > + pins = "gpio23"; > + }; > + > + pinctrl_robosw_led_clk: robosw_led_clk-pins { > + function = "robosw_led_clk"; > + pins = "gpio30"; > + }; > + > + pinctrl_robosw_led_data: robosw_led_data-pins { > + function = "robosw_led_data"; > + pins = "gpio31"; > + }; > + > + pinctrl_nand: nand-pins { > + function = "nand"; > + group = "nand_grp"; > + }; > + > + pinctrl_gpio35_alt: gpio35_alt-pins { > + function = "gpio35_alt"; > + pin = "gpio35"; > + }; > + > + pinctrl_dectpd: dectpd-pins { > + function = "dectpd"; > + group = "dectpd_grp"; > + }; > + > + pinctrl_vdsl_phy_override_0: vdsl_phy_override_0-pins { > + function = "vdsl_phy_override_0"; > + group = "vdsl_phy_override_0_grp"; > + }; > + > + pinctrl_vdsl_phy_override_1: vdsl_phy_override_1-pins { > + function = "vdsl_phy_override_1"; > + group = "vdsl_phy_override_1_grp"; > + }; > + > + pinctrl_vdsl_phy_override_2: vdsl_phy_override_2-pins { > + function = "vdsl_phy_override_2"; > + group = "vdsl_phy_override_2_grp"; > + }; > + > + pinctrl_vdsl_phy_override_3: vdsl_phy_override_3-pins { > + function = "vdsl_phy_override_3"; > + group = "vdsl_phy_override_3_grp"; > + }; > + > + pinctrl_dsl_gpio8: dsl_gpio8-pins { > + function = "dsl_gpio8"; > + group = "dsl_gpio8"; > + }; > + > + pinctrl_dsl_gpio9: dsl_gpio9-pins { > + function = "dsl_gpio9"; > + group = "dsl_gpio9"; > + }; > + }; > -- > 2.20.1 >
diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.yaml new file mode 100644 index 000000000000..1acd6ef38c5f --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.yaml @@ -0,0 +1,166 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pinctrl/brcm,bcm63268-pinctrl.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Broadcom BCM63268 pin controller + +maintainers: + - Álvaro Fernández Rojas <noltari@gmail.com> + - Jonas Gorski <jonas.gorski@gmail.com> + +description: + Bindings for Broadcom's BCM63268 memory-mapped pin controller. + +properties: + compatible: + const: brcm,bcm63268-pinctrl + + reg: + maxItems: 3 + +patternProperties: + '-pins$': + type: object + $ref: pinmux-node.yaml# + + properties: + function: + $ref: "pinmux-node.yaml#/properties/function" + enum: [ serial_led_clk, serial_led_data, hsspi_cs4, hsspi_cs5, + hsspi_cs6, hsspi_cs7, adsl_spi_miso, adsl_spi_mosi, + vreq_clk, pcie_clkreq_b, robosw_led_clk, robosw_led_data, + nand, gpio35_alt, dectpd, vdsl_phy_override_0, + vdsl_phy_override_1, vdsl_phy_override_2, + vdsl_phy_override_3, dsl_gpio8, dsl_gpio9 ] + + pins: + $ref: "pinmux-node.yaml#/properties/pins" + enum: [ gpio0, gpio1, gpio16, gpio17, gpio8, gpio9, gpio18, gpio19, + gpio22, gpio23, gpio30, gpio31, nand_grp, gpio35 + dectpd_grp, vdsl_phy_override_0_grp, + vdsl_phy_override_1_grp, vdsl_phy_override_2_grp, + vdsl_phy_override_3_grp, dsl_gpio8, dsl_gpio9 ] + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + pinctrl@10 { + compatible = "brcm,bcm63268-pinctrl"; + reg = <0x10 0x4>, <0x18 0x8>, <0x38 0x4>; + + pinctrl_serial_led: serial_led-pins { + pinctrl_serial_led_clk: serial_led_clk-pins { + function = "serial_led_clk"; + pins = "gpio0"; + }; + + pinctrl_serial_led_data: serial_led_data-pins { + function = "serial_led_data"; + pins = "gpio1"; + }; + }; + + pinctrl_hsspi_cs4: hsspi_cs4-pins { + function = "hsspi_cs4"; + pins = "gpio16"; + }; + + pinctrl_hsspi_cs5: hsspi_cs5-pins { + function = "hsspi_cs5"; + pins = "gpio17"; + }; + + pinctrl_hsspi_cs6: hsspi_cs6-pins { + function = "hsspi_cs6"; + pins = "gpio8"; + }; + + pinctrl_hsspi_cs7: hsspi_cs7-pins { + function = "hsspi_cs7"; + pins = "gpio9"; + }; + + pinctrl_adsl_spi: adsl_spi-pins { + pinctrl_adsl_spi_miso: adsl_spi_miso-pins { + function = "adsl_spi_miso"; + pins = "gpio18"; + }; + + pinctrl_adsl_spi_mosi: adsl_spi_mosi-pins { + function = "adsl_spi_mosi"; + pins = "gpio19"; + }; + }; + + pinctrl_vreq_clk: vreq_clk-pins { + function = "vreq_clk"; + pins = "gpio22"; + }; + + pinctrl_pcie_clkreq_b: pcie_clkreq_b-pins { + function = "pcie_clkreq_b"; + pins = "gpio23"; + }; + + pinctrl_robosw_led_clk: robosw_led_clk-pins { + function = "robosw_led_clk"; + pins = "gpio30"; + }; + + pinctrl_robosw_led_data: robosw_led_data-pins { + function = "robosw_led_data"; + pins = "gpio31"; + }; + + pinctrl_nand: nand-pins { + function = "nand"; + group = "nand_grp"; + }; + + pinctrl_gpio35_alt: gpio35_alt-pins { + function = "gpio35_alt"; + pin = "gpio35"; + }; + + pinctrl_dectpd: dectpd-pins { + function = "dectpd"; + group = "dectpd_grp"; + }; + + pinctrl_vdsl_phy_override_0: vdsl_phy_override_0-pins { + function = "vdsl_phy_override_0"; + group = "vdsl_phy_override_0_grp"; + }; + + pinctrl_vdsl_phy_override_1: vdsl_phy_override_1-pins { + function = "vdsl_phy_override_1"; + group = "vdsl_phy_override_1_grp"; + }; + + pinctrl_vdsl_phy_override_2: vdsl_phy_override_2-pins { + function = "vdsl_phy_override_2"; + group = "vdsl_phy_override_2_grp"; + }; + + pinctrl_vdsl_phy_override_3: vdsl_phy_override_3-pins { + function = "vdsl_phy_override_3"; + group = "vdsl_phy_override_3_grp"; + }; + + pinctrl_dsl_gpio8: dsl_gpio8-pins { + function = "dsl_gpio8"; + group = "dsl_gpio8"; + }; + + pinctrl_dsl_gpio9: dsl_gpio9-pins { + function = "dsl_gpio9"; + group = "dsl_gpio9"; + }; + };