Commit ec852496 authored by Stefan Wahren's avatar Stefan Wahren Committed by Nicolas Saenz Julienne
Browse files

ARM: dts: bcm283x-rpi: Move Wifi/BT into separate dtsi



A Wifi/BT chip is quite common for the Raspberry Pi boards. So move those
definitions into a separate dtsi in order to avoid copy & paste. This
change was inspired by a vendor tree patch from Phil Elwell.

Signed-off-by: default avatarStefan Wahren <stefan.wahren@i2se.com>
Link: https://lore.kernel.org/r/1628334401-6577-7-git-send-email-stefan.wahren@i2se.com


Signed-off-by: default avatarNicolas Saenz Julienne <nsaenz@kernel.org>
parent 82f811bd
Loading
Loading
Loading
Loading
+9 −29
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
#include "bcm2711.dtsi"
#include "bcm2711-rpi.dtsi"
#include "bcm283x-rpi-usb-peripheral.dtsi"
#include "bcm283x-rpi-wifi-bt.dtsi"

/ {
	compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
@@ -26,11 +27,6 @@ led-pwr {
		};
	};

	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";
@@ -56,6 +52,10 @@ sd_vcc_reg: sd_vcc_reg {
	};
};

&bt {
	shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
};

&ddc0 {
	status = "okay";
};
@@ -178,23 +178,6 @@ &pwm1 {
	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 SD card */
&emmc2 {
	vqmmc-supply = <&sd_io_1v8_reg>;
@@ -236,13 +219,6 @@ &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 */
@@ -259,3 +235,7 @@ &vc4 {
&vec {
	status = "disabled";
};

&wifi_pwrseq {
	reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
};
+8 −23
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
#include "bcm2835.dtsi"
#include "bcm2835-rpi.dtsi"
#include "bcm283x-rpi-usb-otg.dtsi"
#include "bcm283x-rpi-wifi-bt.dtsi"

/ {
	compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
@@ -27,11 +28,10 @@ led-act {
			gpios = <&gpio 47 GPIO_ACTIVE_LOW>;
		};
	};

	wifi_pwrseq: wifi-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
};

&bt {
	shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
};

&gpio {
@@ -110,19 +110,7 @@ &hdmi {
};

&sdhci {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
	bus-width = <4>;
	mmc-pwrseq = <&wifi_pwrseq>;
	non-removable;
	status = "okay";

	brcmf: wifi@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
	};
};

&sdhost {
@@ -135,13 +123,6 @@ &sdhost {
&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_gpio32 &uart0_ctsrts_gpio30>;
	status = "okay";

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		max-speed = <2000000>;
		shutdown-gpios = <&gpio 45 GPIO_ACTIVE_HIGH>;
	};
};

&uart1 {
@@ -149,3 +130,7 @@ &uart1 {
	pinctrl-0 = <&uart1_gpio14>;
	status = "okay";
};

&wifi_pwrseq {
	reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
};
+7 −29
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
#include "bcm2837.dtsi"
#include "bcm2836-rpi.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
#include "bcm283x-rpi-wifi-bt.dtsi"

/ {
	compatible = "raspberrypi,3-model-a-plus", "brcm,bcm2837";
@@ -130,28 +131,6 @@ &pwm {
	status = "okay";
};

/*
 * SDHCI is used to control the SDIO for wireless
 *
 * WL_REG_ON and BT_REG_ON of the CYW43455 Wifi/BT module are driven
 * by a single GPIO. We can't give GPIO control to one of the drivers,
 * otherwise the other part would get unexpectedly disturbed.
 */
&sdhci {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-names = "default";
	pinctrl-0 = <&emmc_gpio34>;
	status = "okay";
	bus-width = <4>;
	non-removable;

	brcmf: wifi@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
	};
};

/* SDHOST is used to drive the SD card */
&sdhost {
	pinctrl-names = "default";
@@ -160,16 +139,15 @@ &sdhost {
	bus-width = <4>;
};

/* uart0 communicates with the BT module */
/* uart0 communicates with the BT module
 *
 * WL_REG_ON and BT_REG_ON of the CYW43455 Wifi/BT module are driven
 * by a single GPIO. We can't give GPIO control to one of the drivers,
 * otherwise the other part would get unexpectedly disturbed.
 */
&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
	status = "okay";

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		max-speed = <2000000>;
	};
};

/* uart1 is mapped to the pin header */
+8 −28
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
#include "bcm2836-rpi.dtsi"
#include "bcm283x-rpi-lan7515.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
#include "bcm283x-rpi-wifi-bt.dtsi"

/ {
	compatible = "raspberrypi,3-model-b-plus", "brcm,bcm2837";
@@ -31,11 +32,10 @@ led-pwr {
			linux,default-trigger = "default-on";
		};
	};

	wifi_pwrseq: wifi-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
};

&bt {
	shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
};

&firmware {
@@ -137,23 +137,6 @@ &pwm {
	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>;
	status = "okay";
	bus-width = <4>;
	non-removable;
	mmc-pwrseq = <&wifi_pwrseq>;

	brcmf: wifi@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
	};
};

/* SDHOST is used to drive the SD card */
&sdhost {
	pinctrl-names = "default";
@@ -166,13 +149,6 @@ &sdhost {
&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_ctsrts_gpio30 &uart0_gpio32 &gpclk2_gpio43>;
	status = "okay";

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		max-speed = <2000000>;
		shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
	};
};

/* uart1 is mapped to the pin header */
@@ -181,3 +157,7 @@ &uart1 {
	pinctrl-0 = <&uart1_gpio14>;
	status = "okay";
};

&wifi_pwrseq {
	reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
};
+8 −28
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
#include "bcm2836-rpi.dtsi"
#include "bcm283x-rpi-smsc9514.dtsi"
#include "bcm283x-rpi-usb-host.dtsi"
#include "bcm283x-rpi-wifi-bt.dtsi"

/ {
	compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
@@ -24,11 +25,10 @@ led-act {
			gpios = <&expgpio 2 GPIO_ACTIVE_HIGH>;
		};
	};

	wifi_pwrseq: wifi-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
};

&bt {
	shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
};

&firmware {
@@ -134,13 +134,6 @@ &hdmi {
&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
	status = "okay";

	bluetooth {
		compatible = "brcm,bcm43438-bt";
		max-speed = <2000000>;
		shutdown-gpios = <&expgpio 0 GPIO_ACTIVE_HIGH>;
	};
};

/* uart1 is mapped to the pin header */
@@ -150,23 +143,6 @@ &uart1 {
	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>;
	status = "okay";
	bus-width = <4>;
	non-removable;
	mmc-pwrseq = <&wifi_pwrseq>;

	brcmf: wifi@1 {
		reg = <1>;
		compatible = "brcm,bcm4329-fmac";
	};
};

/* SDHOST is used to drive the SD card */
&sdhost {
	pinctrl-names = "default";
@@ -174,3 +150,7 @@ &sdhost {
	status = "okay";
	bus-width = <4>;
};

&wifi_pwrseq {
	reset-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
};
Loading