openwrt/target/linux/bcm27xx/patches-4.19/950-0433-BCM270X_DT-Add-non-removable-clone-of-mmc-node.patch
Adrian Schmutzler 7d7aa2fd92 brcm2708: rename target to bcm27xx
This change makes the names of Broadcom targets consistent by using
the common notation based on SoC/CPU ID (which is used internally
anyway), bcmXXXX instead of brcmXXXX.
This is even used for target TITLE in make menuconfig already,
only the short target name used brcm so far.

Despite, since subtargets range from bcm2708 to bcm2711, it seems
appropriate to use bcm27xx instead of bcm2708 (again, as already done
for BOARDNAME).

This also renames the packages brcm2708-userland and brcm2708-gpu-fw.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Acked-by: Álvaro Fernández Rojas <noltari@gmail.com>
2020-02-14 14:10:51 +01:00

207 lines
4.8 KiB
Diff

From c63b13bddf317347ba0b69807c1591526d50ba47 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Tue, 7 May 2019 14:29:38 +0100
Subject: [PATCH] BCM270X_DT: Add non-removable clone of mmc node
non-removable is a boolean property, and as such can't be unset by an
overlay if it is set in a base DTB. Until now the workaround for this
problem has been for overlays to clone non-removable nodes without
the offending property, but this involves a lot of unnecessary
replication. Instead, add a clone of the mmc node with non-removable
already set to the base DTB, selecting the required version using
the status properties.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
---
arch/arm/boot/dts/bcm2708-rpi-0-w.dts | 4 +--
arch/arm/boot/dts/bcm2708-rpi.dtsi | 3 +-
arch/arm/boot/dts/bcm270x.dtsi | 13 ++++++++
arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts | 5 ++--
arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 5 ++--
arch/arm/boot/dts/overlays/mmc-overlay.dts | 7 +++++
arch/arm/boot/dts/overlays/sdio-overlay.dts | 33 +++++++--------------
7 files changed, 38 insertions(+), 32 deletions(-)
--- a/arch/arm/boot/dts/bcm2708-rpi-0-w.dts
+++ b/arch/arm/boot/dts/bcm2708-rpi-0-w.dts
@@ -14,6 +14,7 @@
aliases {
serial0 = &uart1;
serial1 = &uart0;
+ mmc1 = &mmcnr;
};
};
@@ -73,10 +74,9 @@
};
};
-&mmc {
+&mmcnr {
pinctrl-names = "default";
pinctrl-0 = <&sdio_pins>;
- non-removable;
bus-width = <4>;
status = "okay";
};
--- a/arch/arm/boot/dts/bcm2708-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi
@@ -118,7 +118,8 @@
sd_force_pio = <&sdhost>,"brcm,force-pio?";
sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
sd_debug = <&sdhost>,"brcm,debug";
- sdio_overclock = <&mmc>,"brcm,overclock-50:0";
+ sdio_overclock = <&mmc>,"brcm,overclock-50:0",
+ <&mmcnr>,"brcm,overclock-50:0";
axiperf = <&axiperf>,"status";
};
};
--- a/arch/arm/boot/dts/bcm270x.dtsi
+++ b/arch/arm/boot/dts/bcm270x.dtsi
@@ -79,6 +79,19 @@
status = "disabled";
};
+ /* A clone of mmc but with non-removable set */
+ mmcnr: mmcnr@7e300000 {
+ compatible = "brcm,bcm2835-mmc", "brcm,bcm2835-sdhci";
+ reg = <0x7e300000 0x100>;
+ interrupts = <2 30>;
+ clocks = <&clocks BCM2835_CLOCK_EMMC>;
+ dmas = <&dma 11>;
+ dma-names = "rx-tx";
+ brcm,overclock-50 = <0>;
+ non-removable;
+ status = "disabled";
+ };
+
hvs: hvs@7e400000 {
/* Add alias */
status = "disabled";
--- a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
+++ b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts
@@ -15,6 +15,7 @@
aliases {
serial0 = &uart1;
serial1 = &uart0;
+ mmc1 = &mmcnr;
};
};
@@ -74,13 +75,11 @@
};
};
-&mmc {
+&mmcnr {
pinctrl-names = "default";
pinctrl-0 = <&sdio_pins>;
- non-removable;
bus-width = <4>;
status = "okay";
- brcm,overclock-50 = <0>;
};
&firmware {
--- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
+++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
@@ -15,6 +15,7 @@
aliases {
serial0 = &uart1;
serial1 = &uart0;
+ mmc1 = &mmcnr;
};
};
@@ -74,13 +75,11 @@
};
};
-&mmc {
+&mmcnr {
pinctrl-names = "default";
pinctrl-0 = <&sdio_pins>;
- non-removable;
bus-width = <4>;
status = "okay";
- brcm,overclock-50 = <0>;
};
&soc {
--- a/arch/arm/boot/dts/overlays/mmc-overlay.dts
+++ b/arch/arm/boot/dts/overlays/mmc-overlay.dts
@@ -33,6 +33,13 @@
};
};
+ fragment@3 {
+ target = <&mmcnr>;
+ __overlay__ {
+ status = "disabled";
+ };
+ };
+
__overrides__ {
overclock_50 = <&frag0>,"brcm,overclock-50:0";
};
--- a/arch/arm/boot/dts/overlays/sdio-overlay.dts
+++ b/arch/arm/boot/dts/overlays/sdio-overlay.dts
@@ -1,39 +1,26 @@
/dts-v1/;
/plugin/;
-/* Enable SDIO from MMC interface via GPIOs 22-27. Includes sdhost overlay. */
+/* Enable SDIO from MMC interface via various GPIO groups */
/{
compatible = "brcm,bcm2835";
fragment@0 {
- target = <&mmc>;
+ target = <&mmcnr>;
__overlay__ {
status = "disabled";
};
};
fragment@1 {
- target = <&soc>;
- __overlay__ {
- #address-cells = <1>;
- #size-cells = <1>;
-
- sdio_ovl: sdio@7e300000 {
- compatible = "brcm,bcm2835-mmc",
- "brcm,bcm2835-sdhci";
- reg = <0x7e300000 0x100>;
- interrupts = <2 30>;
- clocks = <&clocks 28/*BCM2835_CLOCK_EMMC*/>;
- dmas = <&dma 11>;
- dma-names = "rx-tx";
- brcm,overclock-50 = <0>;
- status = "okay";
- pinctrl-names = "default";
- pinctrl-0 = <&sdio_ovl_pins>;
- non-removable;
- bus-width = <4>;
- };
+ target = <&mmc>;
+ sdio_ovl: __overlay__ {
+ pinctrl-0 = <&sdio_ovl_pins>;
+ pinctrl-names = "default";
+ non-removable;
+ bus-width = <4>;
+ status = "okay";
};
};
@@ -75,7 +62,7 @@
fragment@6 {
target-path = "/aliases";
__overlay__ {
- mmc1 = "/soc/sdio@7e300000";
+ mmc1 = "/soc/mmc@7e300000";
};
};