Message ID | 20240731062814.215833-1-iivanov@suse.de (mailing list archive) |
---|---|
Headers | show |
Series | Add pin control driver for BCM2712 SoC | expand |
On Wed, 31 Jul 2024 09:28:07 +0300, Ivan T. Ivanov wrote: > Hi, > > The following patches add a pin control driver for the BCM2712 SoC and few > pin/gpio Devicetree nodes for Raspberry Pi 5. > > Device driver is follow up version on what Andrea posted in April [1]. > > It is based on sources from here [2]. I just made few cosmetic changes > and addressed review comments from earlier submission. I don't have > documentation for this controller. > > Patch 3 was already posted by Andrea and it is in Broadcom integration tree[3]. > Unfortunately it is still not in the Linus tree[4]. So I added it here as base > for my changes and to easy building and testing. > > Patch 5 wire up power button on RPi5 > > Patch 6 adds WiFi Devicetree node for RPi5 > > Patch 7 adds Bluetooth Devicetree node for RPi5 > > They are few complaints from checkpatch.pl. Like few lines over 100 columns, > which I keep that way for better readability or usage of EOPNOTSUPP, > but it is according pin control API document. > > All this have been tested as kernel was directly booted RPi5 via > kernel= config.txt option and cmdline.txt file with following content > (Note I am using Tumbleweed RPi raw images) > > # cat /boot/efi/cmdline.txt > root=/dev/mmcblk0p3 rootwait rw systemd.show_status=1 console=tty ignore_loglevel earlycon console=ttyAMA10,115200 > > With all these patches Bluetooth and Wifi are working fine (tm) with > firmware files provided by openSUSE Tumbleweed. > > All comments and suggestions are welcome! > > Happy hacking! > Ivan > > [1] https://lore.kernel.org/lkml/f6601f73-cb22-4ba3-88c5-241be8421fc3@broadcom.com/ > [2] https://github.com/raspberrypi/linux/blob/rpi-6.6.y/drivers/pinctrl/bcm/pinctrl-bcm2712.c > [3] https://lore.kernel.org/lkml/20240605120712.3523290-1-florian.fainelli@broadcom.com/#t > [4] https://lore.kernel.org/all/bfc60a7e-54d2-48a6-a288-4fe76d66507a@gmx.net/ > > > Andrea della Porta (1): > arm64: dts: broadcom: Add support for BCM2712 > > Ivan T. Ivanov (6): > dt-bindings: pinctrl: Add support for Broadcom STB pin controller > pinctrl: bcm: Add STB family pin controller driver > arm64: dts: broadcom: bcm2712: Add pin controller nodes > arm64: dts: broadcom: bcm2712: Add one more GPIO node > arm64: dts: broadcom: bcm2712: Add second SDHCI controller node > arm64: dts: broadcom: bcm2712: Add UARTA controller node. > > .../pinctrl/brcm,brcmstb-pinctrl.yaml | 73 + > arch/arm64/boot/dts/broadcom/Makefile | 1 + > .../boot/dts/broadcom/bcm2712-rpi-5-b.dts | 203 +++ > arch/arm64/boot/dts/broadcom/bcm2712.dtsi | 357 +++++ > drivers/pinctrl/bcm/Kconfig | 13 + > drivers/pinctrl/bcm/Makefile | 1 + > drivers/pinctrl/bcm/pinctrl-brcmstb.c | 1217 +++++++++++++++++ > 7 files changed, 1865 insertions(+) > create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,brcmstb-pinctrl.yaml > create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts > create mode 100644 arch/arm64/boot/dts/broadcom/bcm2712.dtsi > create mode 100644 drivers/pinctrl/bcm/pinctrl-brcmstb.c > > > base-commit: dc1c8034e31b14a2e5e212104ec508aec44ce1b9 > -- > 2.43.0 > > > My bot found new DTB warnings on the .dts files added or changed in this series. Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings are fixed by another series. Ultimately, it is up to the platform maintainer whether these warnings are acceptable or not. No need to reply unless the platform maintainer has comments. If you already ran DT checks and didn't see these error(s), then make sure dt-schema is up to date: pip3 install dtschema --upgrade New warnings running 'make CHECK_DTBS=y broadcom/bcm2712-rpi-5-b.dtb' for 20240731062814.215833-1-iivanov@suse.de: arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: mmc@1001100000: compatible: 'oneOf' conditional failed, one must be fixed: ['brcm,bcm2712-sdhci'] is too short 'brcm,bcm2712-sdhci' is not one of ['brcm,bcm7216-sdhci'] from schema $id: http://devicetree.org/schemas/mmc/brcm,sdhci-brcmstb.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: mmc@1001100000: 'clock-frequency' is a required property from schema $id: http://devicetree.org/schemas/mmc/brcm,sdhci-brcmstb.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: mmc@1001100000: 'clock-names' is a required property from schema $id: http://devicetree.org/schemas/mmc/brcm,sdhci-brcmstb.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: mmc@1001100000: Unevaluated properties are not allowed ('compatible', 'sdhci-caps', 'sdhci-caps-mask' were unexpected) from schema $id: http://devicetree.org/schemas/mmc/brcm,sdhci-brcmstb.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: wifi@1: Unevaluated properties are not allowed ('local-mac-address' was unexpected) from schema $id: http://devicetree.org/schemas/net/wireless/brcm,bcm4329-fmac.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: /soc@107c000000/timer@7c003000: failed to match any schema with compatible: ['brcm,bcm2835-system-timer'] arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: /soc@107c000000/local-intc@7cd00000: failed to match any schema with compatible: ['brcm,bcm2836-l1-intc'] arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: intc@7d508400: $nodename:0: 'intc@7d508400' does not match '^interrupt-controller(@[0-9a-f,]+)*$' from schema $id: http://devicetree.org/schemas/interrupt-controller/brcm,l2-intc.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: gpio@7d508500: compatible:0: 'brcm,brcmstb-gpio' is not one of ['brcm,bcm7445-gpio'] from schema $id: http://devicetree.org/schemas/gpio/brcm,brcmstb-gpio.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: gpio@7d508500: compatible: ['brcm,brcmstb-gpio'] is too short from schema $id: http://devicetree.org/schemas/gpio/brcm,brcmstb-gpio.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: gpio@7d508500: 'brcm,gpio-direct' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/gpio/brcm,brcmstb-gpio.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: serial@7d50c000: 'clocks' is a required property from schema $id: http://devicetree.org/schemas/serial/brcm,bcm7271-uart.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: serial@7d50c000: 'clock-names' is a required property from schema $id: http://devicetree.org/schemas/serial/brcm,bcm7271-uart.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: serial@7d50c000: 'interrupt-names' is a required property from schema $id: http://devicetree.org/schemas/serial/brcm,bcm7271-uart.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: serial@7d50c000: Unevaluated properties are not allowed ('auto-flow-control', 'clock-frequency', 'reg-io-width', 'reg-shift', 'skip-init' were unexpected) from schema $id: http://devicetree.org/schemas/serial/brcm,bcm7271-uart.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: bluetooth: 'local-bd-address' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/net/broadcom-bluetooth.yaml# arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb: pwr-button: 'pwr' does not match any of the regexes: '^(button|event|key|switch|(button|event|key|switch)-[a-z0-9-]+|[a-z0-9-]+-(button|event|key|switch))$', 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/input/gpio-keys.yaml#