Initial commit
This commit is contained in:
1
host-portage/env/nobuildpkg
vendored
Normal file
1
host-portage/env/nobuildpkg
vendored
Normal file
@@ -0,0 +1 @@
|
||||
FEATURES=-buildpkg
|
||||
1
host-portage/make.conf/15-keywords.conf
Normal file
1
host-portage/make.conf/15-keywords.conf
Normal file
@@ -0,0 +1 @@
|
||||
ACCEPT_KEYWORDS="~${ARCH} ${ARCH}"
|
||||
2
host-portage/make.conf/20-binpkgs.conf
Normal file
2
host-portage/make.conf/20-binpkgs.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
FEATURES="${FEATURES} binpkg-multi-instance buildpkg"
|
||||
EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --usepkg --binpkg-respect-use=y"
|
||||
2
host-portage/make.conf/80-quiet.conf
Normal file
2
host-portage/make.conf/80-quiet.conf
Normal file
@@ -0,0 +1,2 @@
|
||||
EMERGE_DEFAULT_OPTS="${EMERGE_DEFAULT_OPTS} --quiet-build=y --quiet-fail=y"
|
||||
FEATURES="${FEATURES} -news"
|
||||
1
host-portage/package.accept_keywords/kernel
Normal file
1
host-portage/package.accept_keywords/kernel
Normal file
@@ -0,0 +1 @@
|
||||
sys-kernel/raspberrypi-sources **
|
||||
6
host-portage/package.env/kernel
Normal file
6
host-portage/package.env/kernel
Normal file
@@ -0,0 +1,6 @@
|
||||
# vim: set ft=gentoo-package-use :
|
||||
|
||||
# Dustin C. Hatch <dustin@hatch.name> (09 Feb 2023)
|
||||
# Do not build binary packages for kernel sources
|
||||
sys-kernel/gentoo-sources nobuildpkg
|
||||
sys-kernel/raspberrypi-sources nobuildpkg
|
||||
1
host-portage/package.use/btrfs-progs
Normal file
1
host-portage/package.use/btrfs-progs
Normal file
@@ -0,0 +1 @@
|
||||
sys-fs/btrfs-progs -man
|
||||
1
host-portage/package.use/git
Normal file
1
host-portage/package.use/git
Normal file
@@ -0,0 +1 @@
|
||||
dev-vcs/git -perl
|
||||
1
host-portage/package.use/grub
Normal file
1
host-portage/package.use/grub
Normal file
@@ -0,0 +1 @@
|
||||
sys-boot/grub -* GRUB_PLATFORMS: -*
|
||||
2
host-portage/package.use/kernel
Normal file
2
host-portage/package.use/kernel
Normal file
@@ -0,0 +1,2 @@
|
||||
sys-kernel/gentoo-sources symlink
|
||||
sys-kernel/raspberrypi-sources symlink
|
||||
1
host-portage/package.use/squashfs-tools
Normal file
1
host-portage/package.use/squashfs-tools
Normal file
@@ -0,0 +1 @@
|
||||
sys-fs/squashfs-tools zstd
|
||||
2
host-portage/package.use/systemd
Normal file
2
host-portage/package.use/systemd
Normal file
@@ -0,0 +1,2 @@
|
||||
sys-apps/dbus systemd
|
||||
sys-apps/systemd -*
|
||||
@@ -0,0 +1,659 @@
|
||||
From b28a8f5b591841f88f19cbf9850d713a602d912e Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 11 Apr 2022 14:47:59 +0200
|
||||
Subject: [PATCH] ARM: dts: bcm2711: Add device tree for Home Assistant Yellow
|
||||
|
||||
Add device tree for Home Assistant Yellow, a Compute Module 4 based I/O
|
||||
board.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/Makefile | 3 +-
|
||||
.../boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 598 ++++++++++++++++++
|
||||
arch/arm64/boot/dts/broadcom/Makefile | 1 +
|
||||
.../broadcom/bcm2711-rpi-cm4-ha-yellow.dts | 1 +
|
||||
4 files changed, 602 insertions(+), 1 deletion(-)
|
||||
create mode 100644 arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
|
||||
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
||||
index 3dfe451bcb16..d147c3400732 100644
|
||||
--- a/arch/arm/boot/dts/Makefile
|
||||
+++ b/arch/arm/boot/dts/Makefile
|
||||
@@ -18,7 +18,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
|
||||
bcm2709-rpi-cm2.dtb \
|
||||
bcm2710-rpi-cm3.dtb \
|
||||
bcm2711-rpi-cm4.dtb \
|
||||
- bcm2711-rpi-cm4s.dtb
|
||||
+ bcm2711-rpi-cm4s.dtb \
|
||||
+ bcm2711-rpi-cm4-ha-yellow.dtb
|
||||
|
||||
dtb-$(CONFIG_ARCH_ALPINE) += \
|
||||
alpine-db.dtb
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
new file mode 100644
|
||||
index 000000000000..61d8c81d3de4
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -0,0 +1,598 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/dts-v1/;
|
||||
+#include "bcm2711.dtsi"
|
||||
+#include "bcm2711-rpi.dtsi"
|
||||
+//#include "bcm283x-rpi-usb-peripheral.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "raspberrypi,4-compute-module-ha-yellow", "raspberrypi,4-compute-module", "brcm,bcm2711";
|
||||
+ model = "Raspberry Pi Compute Module 4 on Home Assistant Yellow";
|
||||
+
|
||||
+ chosen {
|
||||
+ /* 8250 auxiliary UART instead of pl011 */
|
||||
+ stdout-path = "serial1:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ leds {
|
||||
+ led-act {
|
||||
+ gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+
|
||||
+ led-pwr {
|
||||
+ label = "PWR";
|
||||
+ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
+ default-state = "keep";
|
||||
+ linux,default-trigger = "default-on";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ wifi_pwrseq: wifi-pwrseq {
|
||||
+ compatible = "mmc-pwrseq-simple";
|
||||
+ reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+
|
||||
+ sd_io_1v8_reg: sd_io_1v8_reg {
|
||||
+ compatible = "regulator-gpio";
|
||||
+ regulator-name = "vdd-sd-io";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-always-on;
|
||||
+ regulator-settling-time-us = <5000>;
|
||||
+ gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
|
||||
+ states = <1800000 0x1>,
|
||||
+ <3300000 0x0>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ sd_vcc_reg: sd_vcc_reg {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc-sd";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&ddc0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ddc1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&expgpio {
|
||||
+ gpio-line-names = "BT_ON",
|
||||
+ "WL_ON",
|
||||
+ "PWR_LED_OFF",
|
||||
+ "ANT1",
|
||||
+ "VDD_SD_IO_SEL",
|
||||
+ "CAM_GPIO",
|
||||
+ "SD_PWR_ON",
|
||||
+ "ANT2";
|
||||
+
|
||||
+ ant1: ant1 {
|
||||
+ gpio-hog;
|
||||
+ gpios = <3 GPIO_ACTIVE_HIGH>;
|
||||
+ output-high;
|
||||
+ };
|
||||
+
|
||||
+ ant2: ant2 {
|
||||
+ gpio-hog;
|
||||
+ gpios = <7 GPIO_ACTIVE_HIGH>;
|
||||
+ output-low;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&gpio {
|
||||
+ /*
|
||||
+ * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and
|
||||
+ * the official GPU firmware DT blob.
|
||||
+ *
|
||||
+ * Legend:
|
||||
+ * "FOO" = GPIO line named "FOO" on the schematic
|
||||
+ * "FOO_N" = GPIO line named "FOO" on schematic, active low
|
||||
+ */
|
||||
+ gpio-line-names = "ID_SDA",
|
||||
+ "ID_SCL",
|
||||
+ "SDA1",
|
||||
+ "SCL1",
|
||||
+ "GPIO_GCLK",
|
||||
+ "GPIO5",
|
||||
+ "GPIO6",
|
||||
+ "SPI_CE1_N",
|
||||
+ "SPI_CE0_N",
|
||||
+ "SPI_MISO",
|
||||
+ "SPI_MOSI",
|
||||
+ "SPI_SCLK",
|
||||
+ "GPIO12",
|
||||
+ "GPIO13",
|
||||
+ /* Serial port */
|
||||
+ "TXD1",
|
||||
+ "RXD1",
|
||||
+ "GPIO16",
|
||||
+ "GPIO17",
|
||||
+ "GPIO18",
|
||||
+ "GPIO19",
|
||||
+ "GPIO20",
|
||||
+ "GPIO21",
|
||||
+ "GPIO22",
|
||||
+ "GPIO23",
|
||||
+ "GPIO24",
|
||||
+ "GPIO25",
|
||||
+ "GPIO26",
|
||||
+ "GPIO27",
|
||||
+ "RGMII_MDIO",
|
||||
+ "RGMIO_MDC",
|
||||
+ /* Used by BT module */
|
||||
+ "CTS0",
|
||||
+ "RTS0",
|
||||
+ "TXD0",
|
||||
+ "RXD0",
|
||||
+ /* Used by Wifi */
|
||||
+ "SD1_CLK",
|
||||
+ "SD1_CMD",
|
||||
+ "SD1_DATA0",
|
||||
+ "SD1_DATA1",
|
||||
+ "SD1_DATA2",
|
||||
+ "SD1_DATA3",
|
||||
+ /* Shared with SPI flash */
|
||||
+ "PWM0_MISO",
|
||||
+ "PWM1_MOSI",
|
||||
+ "STATUS_LED_G_CLK",
|
||||
+ "SPIFLASH_CE_N",
|
||||
+ "SDA0",
|
||||
+ "SCL0",
|
||||
+ "RGMII_RXCLK",
|
||||
+ "RGMII_RXCTL",
|
||||
+ "RGMII_RXD0",
|
||||
+ "RGMII_RXD1",
|
||||
+ "RGMII_RXD2",
|
||||
+ "RGMII_RXD3",
|
||||
+ "RGMII_TXCLK",
|
||||
+ "RGMII_TXCTL",
|
||||
+ "RGMII_TXD0",
|
||||
+ "RGMII_TXD1",
|
||||
+ "RGMII_TXD2",
|
||||
+ "RGMII_TXD3";
|
||||
+};
|
||||
+
|
||||
+&hdmi0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pixelvalve0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pixelvalve1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pixelvalve2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pixelvalve4 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pwm1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+/* SDHCI is used to control the SDIO for wireless */
|
||||
+&sdhci {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&emmc_gpio34>;
|
||||
+ bus-width = <4>;
|
||||
+ non-removable;
|
||||
+ mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ brcmf: wifi@1 {
|
||||
+ reg = <1>;
|
||||
+ compatible = "brcm,bcm4329-fmac";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+/* EMMC2 is used to drive the EMMC card */
|
||||
+&emmc2 {
|
||||
+ bus-width = <8>;
|
||||
+ vqmmc-supply = <&sd_io_1v8_reg>;
|
||||
+ vmmc-supply = <&sd_vcc_reg>;
|
||||
+ broken-cd;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&genet {
|
||||
+ phy-handle = <&phy1>;
|
||||
+ phy-mode = "rgmii-rxid";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&genet_mdio {
|
||||
+ phy1: ethernet-phy@0 {
|
||||
+ /* No PHY interrupt */
|
||||
+ reg = <0x0>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pcie0 {
|
||||
+ pci@0,0 {
|
||||
+ device-type = "pci";
|
||||
+ #address-cells = <3>;
|
||||
+ #size-cells = <2>;
|
||||
+ ranges;
|
||||
+
|
||||
+ reg = <0 0 0 0 0>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+/* uart0 communicates with the BT module */
|
||||
+&uart0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
|
||||
+ uart-has-rtscts;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ bluetooth {
|
||||
+ compatible = "brcm,bcm43438-bt";
|
||||
+ max-speed = <2000000>;
|
||||
+ shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+/* uart1 is mapped to the pin header */
|
||||
+&uart1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart1_gpio14>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&vchiq {
|
||||
+ interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+};
|
||||
+
|
||||
+&vc4 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&vec {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+// =============================================
|
||||
+// Downstream rpi- changes
|
||||
+
|
||||
+#define BCM2711
|
||||
+
|
||||
+#include "bcm270x.dtsi"
|
||||
+#include "bcm271x-rpi-bt.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ soc {
|
||||
+ /delete-node/ pixelvalve@7e807000;
|
||||
+ /delete-node/ hdmi@7e902000;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+#include "bcm2711-rpi-ds.dtsi"
|
||||
+#include "bcm283x-rpi-csi0-2lane.dtsi"
|
||||
+#include "bcm283x-rpi-csi1-4lane.dtsi"
|
||||
+#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ chosen {
|
||||
+ bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1";
|
||||
+ };
|
||||
+
|
||||
+ aliases {
|
||||
+ serial0 = &uart1;
|
||||
+ serial1 = &uart0;
|
||||
+ mmc0 = &emmc2;
|
||||
+ mmc1 = &mmcnr;
|
||||
+ mmc2 = &sdhost;
|
||||
+ i2c3 = &i2c3;
|
||||
+ i2c4 = &i2c4;
|
||||
+ i2c5 = &i2c5;
|
||||
+ i2c6 = &i2c6;
|
||||
+ i2c20 = &ddc0;
|
||||
+ i2c21 = &ddc1;
|
||||
+ spi3 = &spi3;
|
||||
+ spi4 = &spi4;
|
||||
+ spi5 = &spi5;
|
||||
+ spi6 = &spi6;
|
||||
+ /delete-property/ intc;
|
||||
+ };
|
||||
+
|
||||
+ /delete-node/ wifi-pwrseq;
|
||||
+};
|
||||
+
|
||||
+&mmcnr {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&sdio_pins>;
|
||||
+ bus-width = <4>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ pinctrl-0 = <&uart0_pins &bt_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&uart1 {
|
||||
+ pinctrl-0 = <&uart1_pins>;
|
||||
+};
|
||||
+
|
||||
+&spi0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
+
|
||||
+ spidev0: spidev@0{
|
||||
+ compatible = "spidev";
|
||||
+ reg = <0>; /* CE0 */
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ spi-max-frequency = <125000000>;
|
||||
+ };
|
||||
+
|
||||
+ spidev1: spidev@1{
|
||||
+ compatible = "spidev";
|
||||
+ reg = <1>; /* CE1 */
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ spi-max-frequency = <125000000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&gpio {
|
||||
+ spi0_pins: spi0_pins {
|
||||
+ brcm,pins = <9 10 11>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
+ };
|
||||
+
|
||||
+ spi0_cs_pins: spi0_cs_pins {
|
||||
+ brcm,pins = <8 7>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
+ };
|
||||
+
|
||||
+ spi3_pins: spi3_pins {
|
||||
+ brcm,pins = <1 2 3>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
+ };
|
||||
+
|
||||
+ spi3_cs_pins: spi3_cs_pins {
|
||||
+ brcm,pins = <0 24>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
+ };
|
||||
+
|
||||
+ spi4_pins: spi4_pins {
|
||||
+ brcm,pins = <5 6 7>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
+ };
|
||||
+
|
||||
+ spi4_cs_pins: spi4_cs_pins {
|
||||
+ brcm,pins = <4 25>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
+ };
|
||||
+
|
||||
+ spi5_pins: spi5_pins {
|
||||
+ brcm,pins = <13 14 15>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
+ };
|
||||
+
|
||||
+ spi5_cs_pins: spi5_cs_pins {
|
||||
+ brcm,pins = <12 26>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
+ };
|
||||
+
|
||||
+ spi6_pins: spi6_pins {
|
||||
+ brcm,pins = <19 20 21>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
+ };
|
||||
+
|
||||
+ spi6_cs_pins: spi6_cs_pins {
|
||||
+ brcm,pins = <18 27>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
+ };
|
||||
+
|
||||
+ i2c0_pins: i2c0 {
|
||||
+ brcm,pins = <0 1>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2c1_pins: i2c1 {
|
||||
+ brcm,pins = <2 3>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2c3_pins: i2c3 {
|
||||
+ brcm,pins = <4 5>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2c4_pins: i2c4 {
|
||||
+ brcm,pins = <8 9>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2c5_pins: i2c5 {
|
||||
+ brcm,pins = <12 13>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2c6_pins: i2c6 {
|
||||
+ brcm,pins = <22 23>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2s_pins: i2s {
|
||||
+ brcm,pins = <18 19 20 21>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
+ };
|
||||
+
|
||||
+ sdio_pins: sdio_pins {
|
||||
+ brcm,pins = <34 35 36 37 38 39>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>; // alt3 = SD1
|
||||
+ brcm,pull = <0 2 2 2 2 2>;
|
||||
+ };
|
||||
+
|
||||
+ bt_pins: bt_pins {
|
||||
+ brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0
|
||||
+ // to fool pinctrl
|
||||
+ brcm,function = <0>;
|
||||
+ brcm,pull = <2>;
|
||||
+ };
|
||||
+
|
||||
+ uart0_pins: uart0_pins {
|
||||
+ brcm,pins = <32 33>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
+ brcm,pull = <0 2>;
|
||||
+ };
|
||||
+
|
||||
+ uart1_pins: uart1_pins {
|
||||
+ brcm,pins;
|
||||
+ brcm,function;
|
||||
+ brcm,pull;
|
||||
+ };
|
||||
+
|
||||
+ uart2_pins: uart2_pins {
|
||||
+ brcm,pins = <0 1>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
+ brcm,pull = <0 2>;
|
||||
+ };
|
||||
+
|
||||
+ uart3_pins: uart3_pins {
|
||||
+ brcm,pins = <4 5>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
+ brcm,pull = <0 2>;
|
||||
+ };
|
||||
+
|
||||
+ uart4_pins: uart4_pins {
|
||||
+ brcm,pins = <8 9>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
+ brcm,pull = <0 2>;
|
||||
+ };
|
||||
+
|
||||
+ uart5_pins: uart5_pins {
|
||||
+ brcm,pins = <12 13>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
+ brcm,pull = <0 2>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c0if {
|
||||
+ clock-frequency = <100000>;
|
||||
+};
|
||||
+
|
||||
+&i2c1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c1_pins>;
|
||||
+ clock-frequency = <100000>;
|
||||
+};
|
||||
+
|
||||
+&i2s {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2s_pins>;
|
||||
+};
|
||||
+
|
||||
+// =============================================
|
||||
+// Board specific stuff here
|
||||
+
|
||||
+&pcie0 {
|
||||
+ brcm,enable-l1ss;
|
||||
+};
|
||||
+
|
||||
+&sdhost {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&phy1 {
|
||||
+ led-modes = <0x00 0x08>; /* link/activity link */
|
||||
+};
|
||||
+
|
||||
+&gpio {
|
||||
+ audio_pins: audio_pins {
|
||||
+ brcm,pins = <>;
|
||||
+ brcm,function = <>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&leds {
|
||||
+ act_led: led-act {
|
||||
+ label = "led0";
|
||||
+ linux,default-trigger = "mmc0";
|
||||
+ gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+
|
||||
+ pwr_led: led-pwr {
|
||||
+ label = "led1";
|
||||
+ linux,default-trigger = "default-on";
|
||||
+ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pwm1 {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&audio {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&audio_pins>;
|
||||
+ brcm,disable-headphones = <1>;
|
||||
+};
|
||||
+
|
||||
+cam0_reg: &cam1_reg {
|
||||
+ gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
|
||||
+};
|
||||
+
|
||||
+/ {
|
||||
+ __overrides__ {
|
||||
+ act_led_gpio = <&act_led>,"gpios:4";
|
||||
+ act_led_activelow = <&act_led>,"gpios:8";
|
||||
+ act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
+
|
||||
+ pwr_led_gpio = <&pwr_led>,"gpios:4";
|
||||
+ pwr_led_activelow = <&pwr_led>,"gpios:8";
|
||||
+ pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
|
||||
+
|
||||
+ eth_led0 = <&phy1>,"led-modes:0";
|
||||
+ eth_led1 = <&phy1>,"led-modes:4";
|
||||
+
|
||||
+ ant1 = <&ant1>,"output-high?=on",
|
||||
+ <&ant1>, "output-low?=off",
|
||||
+ <&ant2>, "output-high?=off",
|
||||
+ <&ant2>, "output-low?=on";
|
||||
+ ant2 = <&ant1>,"output-high?=off",
|
||||
+ <&ant1>, "output-low?=on",
|
||||
+ <&ant2>, "output-high?=on",
|
||||
+ <&ant2>, "output-low?=off";
|
||||
+ noant = <&ant1>,"output-high?=off",
|
||||
+ <&ant1>, "output-low?=on",
|
||||
+ <&ant2>, "output-high?=off",
|
||||
+ <&ant2>, "output-low?=on";
|
||||
+
|
||||
+ sd_poll_once = <&emmc2>, "non-removable?";
|
||||
+ spi_dma4 = <&spi0>, "dmas:0=", <&dma40>,
|
||||
+ <&spi0>, "dmas:8=", <&dma40>;
|
||||
+ };
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile
|
||||
index 9873335d0ed2..8c19b62e189e 100644
|
||||
--- a/arch/arm64/boot/dts/broadcom/Makefile
|
||||
+++ b/arch/arm64/boot/dts/broadcom/Makefile
|
||||
@@ -15,6 +15,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += bcm2710-rpi-cm3.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-cm4.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-cm4s.dtb
|
||||
+dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-cm4-ha-yellow.dtb
|
||||
|
||||
subdir-y += bcm4908
|
||||
subdir-y += northstar2
|
||||
diff --git a/arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
new file mode 100644
|
||||
index 000000000000..fdc5ec5bc956
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -0,0 +1 @@
|
||||
+#include "../../../../arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts"
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,656 @@
|
||||
From b28a8f5b591841f88f19cbf9850d713a602d912e Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 11 Apr 2022 14:47:59 +0200
|
||||
Subject: [PATCH] ARM: dts: bcm2711: Add device tree for Home Assistant Yellow
|
||||
|
||||
Add device tree for Home Assistant Yellow, a Compute Module 4 based I/O
|
||||
board.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/Makefile | 3 +-
|
||||
.../boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 598 ++++++++++++++++++
|
||||
arch/arm64/boot/dts/broadcom/Makefile | 1 +
|
||||
.../broadcom/bcm2711-rpi-cm4-ha-yellow.dts | 1 +
|
||||
4 files changed, 602 insertions(+), 1 deletion(-)
|
||||
create mode 100644 arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
create mode 100644 arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
|
||||
diff -ruN a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
|
||||
--- a/arch/arm/boot/dts/Makefile 2023-02-09 15:33:00.362946319 -0000
|
||||
+++ b/arch/arm/boot/dts/Makefile 2023-02-09 15:35:14.619413829 -0000
|
||||
@@ -93,7 +93,8 @@
|
||||
bcm2711-rpi-400.dtb \
|
||||
bcm2711-rpi-4-b.dtb \
|
||||
bcm2835-rpi-zero.dtb \
|
||||
- bcm2835-rpi-zero-w.dtb
|
||||
+ bcm2835-rpi-zero-w.dtb \
|
||||
+ bcm2711-rpi-cm4-ha-yellow.dtb
|
||||
dtb-$(CONFIG_ARCH_BCM_5301X) += \
|
||||
bcm4708-asus-rt-ac56u.dtb \
|
||||
bcm4708-asus-rt-ac68u.dtb \
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
new file mode 100644
|
||||
index 000000000000..61d8c81d3de4
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -0,0 +1,598 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0
|
||||
+/dts-v1/;
|
||||
+#include "bcm2711.dtsi"
|
||||
+#include "bcm2711-rpi.dtsi"
|
||||
+//#include "bcm283x-rpi-usb-peripheral.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ compatible = "raspberrypi,4-compute-module-ha-yellow", "raspberrypi,4-compute-module", "brcm,bcm2711";
|
||||
+ model = "Raspberry Pi Compute Module 4 on Home Assistant Yellow";
|
||||
+
|
||||
+ chosen {
|
||||
+ /* 8250 auxiliary UART instead of pl011 */
|
||||
+ stdout-path = "serial1:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ leds {
|
||||
+ led-act {
|
||||
+ gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+
|
||||
+ led-pwr {
|
||||
+ label = "PWR";
|
||||
+ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
+ default-state = "keep";
|
||||
+ linux,default-trigger = "default-on";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ wifi_pwrseq: wifi-pwrseq {
|
||||
+ compatible = "mmc-pwrseq-simple";
|
||||
+ reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+
|
||||
+ sd_io_1v8_reg: sd_io_1v8_reg {
|
||||
+ compatible = "regulator-gpio";
|
||||
+ regulator-name = "vdd-sd-io";
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-boot-on;
|
||||
+ regulator-always-on;
|
||||
+ regulator-settling-time-us = <5000>;
|
||||
+ gpios = <&expgpio 4 GPIO_ACTIVE_HIGH>;
|
||||
+ states = <1800000 0x1>,
|
||||
+ <3300000 0x0>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
+
|
||||
+ sd_vcc_reg: sd_vcc_reg {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "vcc-sd";
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ gpio = <&expgpio 6 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&ddc0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ddc1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&expgpio {
|
||||
+ gpio-line-names = "BT_ON",
|
||||
+ "WL_ON",
|
||||
+ "PWR_LED_OFF",
|
||||
+ "ANT1",
|
||||
+ "VDD_SD_IO_SEL",
|
||||
+ "CAM_GPIO",
|
||||
+ "SD_PWR_ON",
|
||||
+ "ANT2";
|
||||
+
|
||||
+ ant1: ant1 {
|
||||
+ gpio-hog;
|
||||
+ gpios = <3 GPIO_ACTIVE_HIGH>;
|
||||
+ output-high;
|
||||
+ };
|
||||
+
|
||||
+ ant2: ant2 {
|
||||
+ gpio-hog;
|
||||
+ gpios = <7 GPIO_ACTIVE_HIGH>;
|
||||
+ output-low;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&gpio {
|
||||
+ /*
|
||||
+ * Parts taken from rpi_SCH_4b_4p0_reduced.pdf and
|
||||
+ * the official GPU firmware DT blob.
|
||||
+ *
|
||||
+ * Legend:
|
||||
+ * "FOO" = GPIO line named "FOO" on the schematic
|
||||
+ * "FOO_N" = GPIO line named "FOO" on schematic, active low
|
||||
+ */
|
||||
+ gpio-line-names = "ID_SDA",
|
||||
+ "ID_SCL",
|
||||
+ "SDA1",
|
||||
+ "SCL1",
|
||||
+ "GPIO_GCLK",
|
||||
+ "GPIO5",
|
||||
+ "GPIO6",
|
||||
+ "SPI_CE1_N",
|
||||
+ "SPI_CE0_N",
|
||||
+ "SPI_MISO",
|
||||
+ "SPI_MOSI",
|
||||
+ "SPI_SCLK",
|
||||
+ "GPIO12",
|
||||
+ "GPIO13",
|
||||
+ /* Serial port */
|
||||
+ "TXD1",
|
||||
+ "RXD1",
|
||||
+ "GPIO16",
|
||||
+ "GPIO17",
|
||||
+ "GPIO18",
|
||||
+ "GPIO19",
|
||||
+ "GPIO20",
|
||||
+ "GPIO21",
|
||||
+ "GPIO22",
|
||||
+ "GPIO23",
|
||||
+ "GPIO24",
|
||||
+ "GPIO25",
|
||||
+ "GPIO26",
|
||||
+ "GPIO27",
|
||||
+ "RGMII_MDIO",
|
||||
+ "RGMIO_MDC",
|
||||
+ /* Used by BT module */
|
||||
+ "CTS0",
|
||||
+ "RTS0",
|
||||
+ "TXD0",
|
||||
+ "RXD0",
|
||||
+ /* Used by Wifi */
|
||||
+ "SD1_CLK",
|
||||
+ "SD1_CMD",
|
||||
+ "SD1_DATA0",
|
||||
+ "SD1_DATA1",
|
||||
+ "SD1_DATA2",
|
||||
+ "SD1_DATA3",
|
||||
+ /* Shared with SPI flash */
|
||||
+ "PWM0_MISO",
|
||||
+ "PWM1_MOSI",
|
||||
+ "STATUS_LED_G_CLK",
|
||||
+ "SPIFLASH_CE_N",
|
||||
+ "SDA0",
|
||||
+ "SCL0",
|
||||
+ "RGMII_RXCLK",
|
||||
+ "RGMII_RXCTL",
|
||||
+ "RGMII_RXD0",
|
||||
+ "RGMII_RXD1",
|
||||
+ "RGMII_RXD2",
|
||||
+ "RGMII_RXD3",
|
||||
+ "RGMII_TXCLK",
|
||||
+ "RGMII_TXCTL",
|
||||
+ "RGMII_TXD0",
|
||||
+ "RGMII_TXD1",
|
||||
+ "RGMII_TXD2",
|
||||
+ "RGMII_TXD3";
|
||||
+};
|
||||
+
|
||||
+&hdmi0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pixelvalve0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pixelvalve1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pixelvalve2 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pixelvalve4 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pwm1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&pwm1_0_gpio40 &pwm1_1_gpio41>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+/* SDHCI is used to control the SDIO for wireless */
|
||||
+&sdhci {
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&emmc_gpio34>;
|
||||
+ bus-width = <4>;
|
||||
+ non-removable;
|
||||
+ mmc-pwrseq = <&wifi_pwrseq>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ brcmf: wifi@1 {
|
||||
+ reg = <1>;
|
||||
+ compatible = "brcm,bcm4329-fmac";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+/* EMMC2 is used to drive the EMMC card */
|
||||
+&emmc2 {
|
||||
+ bus-width = <8>;
|
||||
+ vqmmc-supply = <&sd_io_1v8_reg>;
|
||||
+ vmmc-supply = <&sd_vcc_reg>;
|
||||
+ broken-cd;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&genet {
|
||||
+ phy-handle = <&phy1>;
|
||||
+ phy-mode = "rgmii-rxid";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&genet_mdio {
|
||||
+ phy1: ethernet-phy@0 {
|
||||
+ /* No PHY interrupt */
|
||||
+ reg = <0x0>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pcie0 {
|
||||
+ pci@0,0 {
|
||||
+ device-type = "pci";
|
||||
+ #address-cells = <3>;
|
||||
+ #size-cells = <2>;
|
||||
+ ranges;
|
||||
+
|
||||
+ reg = <0 0 0 0 0>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+/* uart0 communicates with the BT module */
|
||||
+&uart0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32>;
|
||||
+ uart-has-rtscts;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ bluetooth {
|
||||
+ compatible = "brcm,bcm43438-bt";
|
||||
+ max-speed = <2000000>;
|
||||
+ shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+/* uart1 is mapped to the pin header */
|
||||
+&uart1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart1_gpio14>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&vchiq {
|
||||
+ interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+};
|
||||
+
|
||||
+&vc4 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&vec {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+// =============================================
|
||||
+// Downstream rpi- changes
|
||||
+
|
||||
+#define BCM2711
|
||||
+
|
||||
+#include "bcm270x.dtsi"
|
||||
+#include "bcm271x-rpi-bt.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ soc {
|
||||
+ /delete-node/ pixelvalve@7e807000;
|
||||
+ /delete-node/ hdmi@7e902000;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+#include "bcm2711-rpi-ds.dtsi"
|
||||
+#include "bcm283x-rpi-csi0-2lane.dtsi"
|
||||
+#include "bcm283x-rpi-csi1-4lane.dtsi"
|
||||
+#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ chosen {
|
||||
+ bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1";
|
||||
+ };
|
||||
+
|
||||
+ aliases {
|
||||
+ serial0 = &uart1;
|
||||
+ serial1 = &uart0;
|
||||
+ mmc0 = &emmc2;
|
||||
+ mmc1 = &mmcnr;
|
||||
+ mmc2 = &sdhost;
|
||||
+ i2c3 = &i2c3;
|
||||
+ i2c4 = &i2c4;
|
||||
+ i2c5 = &i2c5;
|
||||
+ i2c6 = &i2c6;
|
||||
+ i2c20 = &ddc0;
|
||||
+ i2c21 = &ddc1;
|
||||
+ spi3 = &spi3;
|
||||
+ spi4 = &spi4;
|
||||
+ spi5 = &spi5;
|
||||
+ spi6 = &spi6;
|
||||
+ /delete-property/ intc;
|
||||
+ };
|
||||
+
|
||||
+ /delete-node/ wifi-pwrseq;
|
||||
+};
|
||||
+
|
||||
+&mmcnr {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&sdio_pins>;
|
||||
+ bus-width = <4>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ pinctrl-0 = <&uart0_pins &bt_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&uart1 {
|
||||
+ pinctrl-0 = <&uart1_pins>;
|
||||
+};
|
||||
+
|
||||
+&spi0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&spi0_pins &spi0_cs_pins>;
|
||||
+ cs-gpios = <&gpio 8 1>, <&gpio 7 1>;
|
||||
+
|
||||
+ spidev0: spidev@0{
|
||||
+ compatible = "spidev";
|
||||
+ reg = <0>; /* CE0 */
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ spi-max-frequency = <125000000>;
|
||||
+ };
|
||||
+
|
||||
+ spidev1: spidev@1{
|
||||
+ compatible = "spidev";
|
||||
+ reg = <1>; /* CE1 */
|
||||
+ #address-cells = <1>;
|
||||
+ #size-cells = <0>;
|
||||
+ spi-max-frequency = <125000000>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&gpio {
|
||||
+ spi0_pins: spi0_pins {
|
||||
+ brcm,pins = <9 10 11>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
+ };
|
||||
+
|
||||
+ spi0_cs_pins: spi0_cs_pins {
|
||||
+ brcm,pins = <8 7>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
+ };
|
||||
+
|
||||
+ spi3_pins: spi3_pins {
|
||||
+ brcm,pins = <1 2 3>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
+ };
|
||||
+
|
||||
+ spi3_cs_pins: spi3_cs_pins {
|
||||
+ brcm,pins = <0 24>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
+ };
|
||||
+
|
||||
+ spi4_pins: spi4_pins {
|
||||
+ brcm,pins = <5 6 7>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
+ };
|
||||
+
|
||||
+ spi4_cs_pins: spi4_cs_pins {
|
||||
+ brcm,pins = <4 25>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
+ };
|
||||
+
|
||||
+ spi5_pins: spi5_pins {
|
||||
+ brcm,pins = <13 14 15>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
+ };
|
||||
+
|
||||
+ spi5_cs_pins: spi5_cs_pins {
|
||||
+ brcm,pins = <12 26>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
+ };
|
||||
+
|
||||
+ spi6_pins: spi6_pins {
|
||||
+ brcm,pins = <19 20 21>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
+ };
|
||||
+
|
||||
+ spi6_cs_pins: spi6_cs_pins {
|
||||
+ brcm,pins = <18 27>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
|
||||
+ };
|
||||
+
|
||||
+ i2c0_pins: i2c0 {
|
||||
+ brcm,pins = <0 1>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2c1_pins: i2c1 {
|
||||
+ brcm,pins = <2 3>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2c3_pins: i2c3 {
|
||||
+ brcm,pins = <4 5>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2c4_pins: i2c4 {
|
||||
+ brcm,pins = <8 9>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2c5_pins: i2c5 {
|
||||
+ brcm,pins = <12 13>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2c6_pins: i2c6 {
|
||||
+ brcm,pins = <22 23>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT5>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
+ i2s_pins: i2s {
|
||||
+ brcm,pins = <18 19 20 21>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
+ };
|
||||
+
|
||||
+ sdio_pins: sdio_pins {
|
||||
+ brcm,pins = <34 35 36 37 38 39>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>; // alt3 = SD1
|
||||
+ brcm,pull = <0 2 2 2 2 2>;
|
||||
+ };
|
||||
+
|
||||
+ bt_pins: bt_pins {
|
||||
+ brcm,pins = "-"; // non-empty to keep btuart happy, //4 = 0
|
||||
+ // to fool pinctrl
|
||||
+ brcm,function = <0>;
|
||||
+ brcm,pull = <2>;
|
||||
+ };
|
||||
+
|
||||
+ uart0_pins: uart0_pins {
|
||||
+ brcm,pins = <32 33>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT3>;
|
||||
+ brcm,pull = <0 2>;
|
||||
+ };
|
||||
+
|
||||
+ uart1_pins: uart1_pins {
|
||||
+ brcm,pins;
|
||||
+ brcm,function;
|
||||
+ brcm,pull;
|
||||
+ };
|
||||
+
|
||||
+ uart2_pins: uart2_pins {
|
||||
+ brcm,pins = <0 1>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
+ brcm,pull = <0 2>;
|
||||
+ };
|
||||
+
|
||||
+ uart3_pins: uart3_pins {
|
||||
+ brcm,pins = <4 5>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
+ brcm,pull = <0 2>;
|
||||
+ };
|
||||
+
|
||||
+ uart4_pins: uart4_pins {
|
||||
+ brcm,pins = <8 9>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
+ brcm,pull = <0 2>;
|
||||
+ };
|
||||
+
|
||||
+ uart5_pins: uart5_pins {
|
||||
+ brcm,pins = <12 13>;
|
||||
+ brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
+ brcm,pull = <0 2>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&i2c0if {
|
||||
+ clock-frequency = <100000>;
|
||||
+};
|
||||
+
|
||||
+&i2c1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c1_pins>;
|
||||
+ clock-frequency = <100000>;
|
||||
+};
|
||||
+
|
||||
+&i2s {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2s_pins>;
|
||||
+};
|
||||
+
|
||||
+// =============================================
|
||||
+// Board specific stuff here
|
||||
+
|
||||
+&pcie0 {
|
||||
+ brcm,enable-l1ss;
|
||||
+};
|
||||
+
|
||||
+&sdhost {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&phy1 {
|
||||
+ led-modes = <0x00 0x08>; /* link/activity link */
|
||||
+};
|
||||
+
|
||||
+&gpio {
|
||||
+ audio_pins: audio_pins {
|
||||
+ brcm,pins = <>;
|
||||
+ brcm,function = <>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&leds {
|
||||
+ act_led: led-act {
|
||||
+ label = "led0";
|
||||
+ linux,default-trigger = "mmc0";
|
||||
+ gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
+ };
|
||||
+
|
||||
+ pwr_led: led-pwr {
|
||||
+ label = "led1";
|
||||
+ linux,default-trigger = "default-on";
|
||||
+ gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&pwm1 {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&audio {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&audio_pins>;
|
||||
+ brcm,disable-headphones = <1>;
|
||||
+};
|
||||
+
|
||||
+cam0_reg: &cam1_reg {
|
||||
+ gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
|
||||
+};
|
||||
+
|
||||
+/ {
|
||||
+ __overrides__ {
|
||||
+ act_led_gpio = <&act_led>,"gpios:4";
|
||||
+ act_led_activelow = <&act_led>,"gpios:8";
|
||||
+ act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
+
|
||||
+ pwr_led_gpio = <&pwr_led>,"gpios:4";
|
||||
+ pwr_led_activelow = <&pwr_led>,"gpios:8";
|
||||
+ pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
|
||||
+
|
||||
+ eth_led0 = <&phy1>,"led-modes:0";
|
||||
+ eth_led1 = <&phy1>,"led-modes:4";
|
||||
+
|
||||
+ ant1 = <&ant1>,"output-high?=on",
|
||||
+ <&ant1>, "output-low?=off",
|
||||
+ <&ant2>, "output-high?=off",
|
||||
+ <&ant2>, "output-low?=on";
|
||||
+ ant2 = <&ant1>,"output-high?=off",
|
||||
+ <&ant1>, "output-low?=on",
|
||||
+ <&ant2>, "output-high?=on",
|
||||
+ <&ant2>, "output-low?=off";
|
||||
+ noant = <&ant1>,"output-high?=off",
|
||||
+ <&ant1>, "output-low?=on",
|
||||
+ <&ant2>, "output-high?=off",
|
||||
+ <&ant2>, "output-low?=on";
|
||||
+
|
||||
+ sd_poll_once = <&emmc2>, "non-removable?";
|
||||
+ spi_dma4 = <&spi0>, "dmas:0=", <&dma40>,
|
||||
+ <&spi0>, "dmas:8=", <&dma40>;
|
||||
+ };
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
new file mode 100644
|
||||
index 000000000000..fdc5ec5bc956
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/broadcom/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -0,0 +1 @@
|
||||
+#include "../../../../arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts"
|
||||
--
|
||||
2.37.3
|
||||
diff -ruN a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile
|
||||
--- a/arch/arm64/boot/dts/broadcom/Makefile 2023-02-09 16:15:32.939847341 -0000
|
||||
+++ b/arch/arm64/boot/dts/broadcom/Makefile 2023-02-09 16:16:03.899185742 -0000
|
||||
@@ -2,6 +2,7 @@
|
||||
dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \
|
||||
bcm2711-rpi-4-b.dtb \
|
||||
bcm2711-rpi-cm4-io.dtb \
|
||||
+ bcm2711-rpi-cm4-ha-yellow.dtb \
|
||||
bcm2837-rpi-3-a-plus.dtb \
|
||||
bcm2837-rpi-3-b.dtb \
|
||||
bcm2837-rpi-3-b-plus.dtb \
|
||||
@@ -0,0 +1,74 @@
|
||||
From 2230740c7f74678ca80da55f74ccc24f5aa6bd35 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <2230740c7f74678ca80da55f74ccc24f5aa6bd35.1614676528.git.stefan@agner.ch>
|
||||
From: Pascal Vizeli <pvizeli@syshack.ch>
|
||||
Date: Tue, 2 Jun 2020 21:20:08 +0000
|
||||
Subject: [PATCH] ARM: dts: bcm283x: add compatible picked up by U-Boot
|
||||
|
||||
Without brcm,bcm2835-pl011 in compatible U-Boot uses the regular PL011
|
||||
driver which seems to crash when enable_uart=1 is not used. Using
|
||||
brcm,bcm2835-pl011 works around that and does not affect Linux since its
|
||||
not using that compatible string.
|
||||
|
||||
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2711.dtsi | 8 ++++----
|
||||
arch/arm/boot/dts/bcm283x.dtsi | 2 +-
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711.dtsi b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
index b4bca5af95e1..c31b87b5bb3a 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm2711.dtsi
|
||||
@@ -127,7 +127,7 @@ rng@7e104000 {
|
||||
};
|
||||
|
||||
uart2: serial@7e201400 {
|
||||
- compatible = "arm,pl011", "arm,primecell";
|
||||
+ compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
|
||||
reg = <0x7e201400 0x200>;
|
||||
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clocks BCM2835_CLOCK_UART>,
|
||||
@@ -138,7 +138,7 @@ uart2: serial@7e201400 {
|
||||
};
|
||||
|
||||
uart3: serial@7e201600 {
|
||||
- compatible = "arm,pl011", "arm,primecell";
|
||||
+ compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
|
||||
reg = <0x7e201600 0x200>;
|
||||
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clocks BCM2835_CLOCK_UART>,
|
||||
@@ -149,7 +149,7 @@ uart3: serial@7e201600 {
|
||||
};
|
||||
|
||||
uart4: serial@7e201800 {
|
||||
- compatible = "arm,pl011", "arm,primecell";
|
||||
+ compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
|
||||
reg = <0x7e201800 0x200>;
|
||||
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clocks BCM2835_CLOCK_UART>,
|
||||
@@ -160,7 +160,7 @@ uart4: serial@7e201800 {
|
||||
};
|
||||
|
||||
uart5: serial@7e201a00 {
|
||||
- compatible = "arm,pl011", "arm,primecell";
|
||||
+ compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
|
||||
reg = <0x7e201a00 0x200>;
|
||||
interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&clocks BCM2835_CLOCK_UART>,
|
||||
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
|
||||
index 346838ee9d21..7f289fbca28c 100644
|
||||
--- a/arch/arm/boot/dts/bcm283x.dtsi
|
||||
+++ b/arch/arm/boot/dts/bcm283x.dtsi
|
||||
@@ -300,7 +300,7 @@ uart1_ctsrts_gpio42: uart1_ctsrts_gpio42 {
|
||||
};
|
||||
|
||||
uart0: serial@7e201000 {
|
||||
- compatible = "arm,pl011", "arm,primecell";
|
||||
+ compatible = "brcm,bcm2835-pl011", "arm,pl011", "arm,primecell";
|
||||
reg = <0x7e201000 0x200>;
|
||||
interrupts = <2 25>;
|
||||
clocks = <&clocks BCM2835_CLOCK_UART>,
|
||||
--
|
||||
2.30.1
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
From 7eb647452bb1a3294fae8edc5a323070adff922b Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <7eb647452bb1a3294fae8edc5a323070adff922b.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 4 Mar 2021 14:33:09 +0100
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: Mux UART4 for SiLabs radio module
|
||||
|
||||
Enable UART4 by default and mux pins including hardware flow control.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 16 ++++++++++++++--
|
||||
1 file changed, 14 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index 61d8c81d3de4..8db71876a78c 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -8,6 +8,10 @@ / {
|
||||
compatible = "raspberrypi,4-compute-module-ha-yellow", "raspberrypi,4-compute-module", "brcm,bcm2711";
|
||||
model = "Raspberry Pi Compute Module 4 on Home Assistant Yellow";
|
||||
|
||||
+ aliases {
|
||||
+ serial4 = &uart4;
|
||||
+ };
|
||||
+
|
||||
chosen {
|
||||
/* 8250 auxiliary UART instead of pl011 */
|
||||
stdout-path = "serial1:115200n8";
|
||||
@@ -261,6 +265,14 @@ &uart1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+/* uart4 for Zigbee */
|
||||
+&uart4 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart4_pins>;
|
||||
+ uart-has-rtscts;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&vchiq {
|
||||
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
@@ -488,9 +500,9 @@ uart3_pins: uart3_pins {
|
||||
};
|
||||
|
||||
uart4_pins: uart4_pins {
|
||||
- brcm,pins = <8 9>;
|
||||
+ brcm,pins = <8 9 10 11>;
|
||||
brcm,function = <BCM2835_FSEL_ALT4>;
|
||||
- brcm,pull = <0 2>;
|
||||
+ brcm,pull = <0 2 2 0>;
|
||||
};
|
||||
|
||||
uart5_pins: uart5_pins {
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From a7b86d8d0d81f841d8399a83f0f59f383d1556ed Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <a7b86d8d0d81f841d8399a83f0f59f383d1556ed.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 4 Mar 2021 14:44:23 +0100
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: Mux debug UART5
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index 8db71876a78c..d1dea0a214a6 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -10,6 +10,7 @@ / {
|
||||
|
||||
aliases {
|
||||
serial4 = &uart4;
|
||||
+ serial5 = &uart5;
|
||||
};
|
||||
|
||||
chosen {
|
||||
@@ -273,6 +274,13 @@ &uart4 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+/* uart5 default Debug UART */
|
||||
+&uart5 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart5_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&vchiq {
|
||||
interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
@@ -308,6 +316,7 @@ soc {
|
||||
/ {
|
||||
chosen {
|
||||
bootargs = "coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1";
|
||||
+ stdout-path = "serial5:115200n8";
|
||||
};
|
||||
|
||||
aliases {
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From 8ec364f50abcd9f5fa89f421a7ef8f70dfb2564a Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <8ec364f50abcd9f5fa89f421a7ef8f70dfb2564a.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 4 Mar 2021 14:48:48 +0100
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: Enable I2C6 by default
|
||||
|
||||
The main I2C bus used on Yellow is I2C6. Enable it by default.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index d1dea0a214a6..0bdbfdd44aed 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -531,6 +531,12 @@ &i2c1 {
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
+&i2c6 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&i2c6_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
From 50abc7980f8c575930cc4c928d356763742e81fb Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <50abc7980f8c575930cc4c928d356763742e81fb.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 4 Mar 2021 17:19:01 +0100
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: add I2S audio codec
|
||||
|
||||
Add TI PCM5122 I2S audio codec.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
.../boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 26 +++++++++++++++++++
|
||||
1 file changed, 26 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index 0bdbfdd44aed..f6f42bf45c92 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -535,11 +535,22 @@ &i2c6 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c6_pins>;
|
||||
status = "okay";
|
||||
+
|
||||
+ card_codec: pcm5121@4c {
|
||||
+ #sound-dai-cells = <0>;
|
||||
+ compatible = "ti,pcm5121";
|
||||
+ reg = <0x4c>;
|
||||
+ AVDD-supply = <&vdd_3v3_reg>;
|
||||
+ DVDD-supply = <&vdd_3v3_reg>;
|
||||
+ CPVDD-supply = <&vdd_3v3_reg>;
|
||||
+ status = "okay";
|
||||
+ };
|
||||
};
|
||||
|
||||
&i2s {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2s_pins>;
|
||||
+ status = "okay";
|
||||
};
|
||||
|
||||
// =============================================
|
||||
@@ -582,6 +593,21 @@ &pwm1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+&sound {
|
||||
+ compatible = "simple-audio-card";
|
||||
+ simple-audio-card,format = "i2s";
|
||||
+ simple-audio-card,name = "pcm5121-sound";
|
||||
+ status = "okay";
|
||||
+
|
||||
+ simple-audio-card,cpu {
|
||||
+ sound-dai = <&i2s>;
|
||||
+ };
|
||||
+
|
||||
+ dailink0_slave: simple-audio-card,codec {
|
||||
+ sound-dai = <&card_codec>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&audio {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&audio_pins>;
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
From 67751f4575c3837ada1bdec85184c77ea917b83a Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <67751f4575c3837ada1bdec85184c77ea917b83a.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Tue, 9 Mar 2021 15:02:53 +0100
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: enable GPIO keys
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
.../boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 31 +++++++++++++++++++
|
||||
1 file changed, 31 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index f6f42bf45c92..e2fa42a11cc9 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -4,6 +4,8 @@
|
||||
#include "bcm2711-rpi.dtsi"
|
||||
//#include "bcm283x-rpi-usb-peripheral.dtsi"
|
||||
|
||||
+#include <dt-bindings/input/input.h>
|
||||
+
|
||||
/ {
|
||||
compatible = "raspberrypi,4-compute-module-ha-yellow", "raspberrypi,4-compute-module", "brcm,bcm2711";
|
||||
model = "Raspberry Pi Compute Module 4 on Home Assistant Yellow";
|
||||
@@ -18,6 +20,29 @@ chosen {
|
||||
stdout-path = "serial1:115200n8";
|
||||
};
|
||||
|
||||
+ keys: gpio-keys {
|
||||
+ compatible = "gpio-keys";
|
||||
+
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&gpio_button_pins>;
|
||||
+
|
||||
+ status = "okay";
|
||||
+
|
||||
+ power {
|
||||
+ label = "Blue Button";
|
||||
+ linux,code = <KEY_POWER>;
|
||||
+ gpios = <&gpio 26 GPIO_ACTIVE_LOW>;
|
||||
+ debounce-interval = <100>; // ms
|
||||
+ };
|
||||
+
|
||||
+ user {
|
||||
+ label = "Red Button";
|
||||
+ linux,code = <BTN_1>;
|
||||
+ gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
|
||||
+ debounce-interval = <100>; // ms
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
leds {
|
||||
led-act {
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
@@ -380,6 +405,12 @@ spidev1: spidev@1{
|
||||
};
|
||||
|
||||
&gpio {
|
||||
+ gpio_button_pins: gpio_button_pins {
|
||||
+ brcm,pins = <26 27>;
|
||||
+ brcm,function = <BCM2835_FSEL_GPIO_IN>;
|
||||
+ brcm,pull = <BCM2835_PUD_UP>;
|
||||
+ };
|
||||
+
|
||||
spi0_pins: spi0_pins {
|
||||
brcm,pins = <9 10 11>;
|
||||
brcm,function = <BCM2835_FSEL_ALT0>;
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
From e4db609b1080e4aabb027394966c07e050e02aab Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <e4db609b1080e4aabb027394966c07e050e02aab.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 28 Oct 2021 19:38:04 +0200
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: add user LED
|
||||
|
||||
Add yellow user LED.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index e2fa42a11cc9..6039c7894796 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -336,7 +336,6 @@ soc {
|
||||
#include "bcm2711-rpi-ds.dtsi"
|
||||
#include "bcm283x-rpi-csi0-2lane.dtsi"
|
||||
#include "bcm283x-rpi-csi1-4lane.dtsi"
|
||||
-#include "bcm283x-rpi-i2c0mux_0_44.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
@@ -618,6 +617,12 @@ pwr_led: led-pwr {
|
||||
linux,default-trigger = "default-on";
|
||||
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
+
|
||||
+ user_led: led-user {
|
||||
+ label = "led2";
|
||||
+ linux,default-trigger = "heartbeat";
|
||||
+ gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
|
||||
+ };
|
||||
};
|
||||
|
||||
&pwm1 {
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From 6625adc479a3e89873127a91064a94881449c0d8 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <6625adc479a3e89873127a91064a94881449c0d8.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Fri, 12 Nov 2021 17:33:32 +0100
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: add NXP PCF85063A RTC
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index 6039c7894796..f78428ea64f3 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -575,6 +575,11 @@ card_codec: pcm5121@4c {
|
||||
CPVDD-supply = <&vdd_3v3_reg>;
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+ pcf85063a: rtc@51 {
|
||||
+ compatible = "nxp,pcf85063a";
|
||||
+ reg = <0x51>;
|
||||
+ };
|
||||
};
|
||||
|
||||
&i2s {
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From 1acd279eca810707856e5038438f52d694a62170 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <1acd279eca810707856e5038438f52d694a62170.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Fri, 7 Jan 2022 17:10:00 +0100
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: enable USB host mode by default
|
||||
|
||||
The DWC2 controller is disable by default. Enable it since Home
|
||||
Assistant Yellow has a USB hub and USB ports connected to it.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index f78428ea64f3..711a09441ad0 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -599,6 +599,15 @@ &sdhost {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+&usb {
|
||||
+ compatible = "brcm,bcm2835-usb";
|
||||
+ dr_mode = "host";
|
||||
+ g-np-tx-fifo-size = <32>;
|
||||
+ g-rx-fifo-size = <558>;
|
||||
+ g-tx-fifo-size = <512 512 512 512 512 256 256>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&phy1 {
|
||||
led-modes = <0x00 0x08>; /* link/activity link */
|
||||
};
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 92332ba4302096777ea47e408f3406da0b2ef2c5 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <92332ba4302096777ea47e408f3406da0b2ef2c5.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Wed, 27 Apr 2022 20:36:19 +0200
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: use generic activity trigger for
|
||||
green LED
|
||||
|
||||
Use the generic trigger "activity" for the green LED so that any
|
||||
system activity is shown.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index 711a09441ad0..f2f4f1a49592 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -622,7 +622,7 @@ audio_pins: audio_pins {
|
||||
&leds {
|
||||
act_led: led-act {
|
||||
label = "led0";
|
||||
- linux,default-trigger = "mmc0";
|
||||
+ linux,default-trigger = "activity";
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From 59e44006c1e7406bd1fc52aa9b1fc88a67652ddd Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <59e44006c1e7406bd1fc52aa9b1fc88a67652ddd.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Tue, 26 Jul 2022 15:53:59 +0200
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: use USB OTG mode by default
|
||||
|
||||
OTG seems to work fine, and allows to use the USB-C port as a USB
|
||||
peripheral (e.g. in U-Boot via UMS command).
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index f2f4f1a49592..f354bfb69093 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -601,7 +601,7 @@ &sdhost {
|
||||
|
||||
&usb {
|
||||
compatible = "brcm,bcm2835-usb";
|
||||
- dr_mode = "host";
|
||||
+ dr_mode = "otg";
|
||||
g-np-tx-fifo-size = <32>;
|
||||
g-rx-fifo-size = <558>;
|
||||
g-tx-fifo-size = <512 512 512 512 512 256 256>;
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
From f69ef30ade36371215d02546d603143cc13adef2 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <f69ef30ade36371215d02546d603143cc13adef2.1662565903.git.stefan@agner.ch>
|
||||
In-Reply-To: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
References: <b28a8f5b591841f88f19cbf9850d713a602d912e.1662565903.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Sat, 30 Jul 2022 11:21:31 +0200
|
||||
Subject: [PATCH] ARM: dts: bcm2711: yellow: Add LED overrides
|
||||
|
||||
Add device tree overrides for all three LEDs.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts | 17 ++++++++++-------
|
||||
1 file changed, 10 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
index f354bfb69093..2d272a02128b 100644
|
||||
--- a/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
+++ b/arch/arm/boot/dts/bcm2711-rpi-cm4-ha-yellow.dts
|
||||
@@ -621,20 +621,24 @@ audio_pins: audio_pins {
|
||||
|
||||
&leds {
|
||||
act_led: led-act {
|
||||
- label = "led0";
|
||||
+ label = "act";
|
||||
linux,default-trigger = "activity";
|
||||
+ default-state = "off";
|
||||
gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
pwr_led: led-pwr {
|
||||
- label = "led1";
|
||||
+ label = "pwr";
|
||||
linux,default-trigger = "default-on";
|
||||
+ default-state = "off";
|
||||
gpios = <&expgpio 2 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
- user_led: led-user {
|
||||
- label = "led2";
|
||||
+ usr_led: led-usr {
|
||||
+ label = "usr";
|
||||
linux,default-trigger = "heartbeat";
|
||||
+ default-state = "off";
|
||||
+ panic-indicator;
|
||||
gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
@@ -670,14 +674,13 @@ cam0_reg: &cam1_reg {
|
||||
|
||||
/ {
|
||||
__overrides__ {
|
||||
- act_led_gpio = <&act_led>,"gpios:4";
|
||||
- act_led_activelow = <&act_led>,"gpios:8";
|
||||
act_led_trigger = <&act_led>,"linux,default-trigger";
|
||||
|
||||
- pwr_led_gpio = <&pwr_led>,"gpios:4";
|
||||
pwr_led_activelow = <&pwr_led>,"gpios:8";
|
||||
pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
|
||||
|
||||
+ usr_led_trigger = <&usr_led>,"linux,default-trigger";
|
||||
+
|
||||
eth_led0 = <&phy1>,"led-modes:0";
|
||||
eth_led1 = <&phy1>,"led-modes:4";
|
||||
|
||||
--
|
||||
2.37.3
|
||||
|
||||
Reference in New Issue
Block a user