mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-07 18:40:10 +00:00
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>
This commit is contained in:
@@ -14,6 +14,7 @@
|
|||||||
aliases {
|
aliases {
|
||||||
serial0 = &uart1;
|
serial0 = &uart1;
|
||||||
serial1 = &uart0;
|
serial1 = &uart0;
|
||||||
|
mmc1 = &mmcnr;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -73,10 +74,9 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc {
|
&mmcnr {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&sdio_pins>;
|
pinctrl-0 = <&sdio_pins>;
|
||||||
non-removable;
|
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -118,7 +118,8 @@
|
|||||||
sd_force_pio = <&sdhost>,"brcm,force-pio?";
|
sd_force_pio = <&sdhost>,"brcm,force-pio?";
|
||||||
sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
|
sd_pio_limit = <&sdhost>,"brcm,pio-limit:0";
|
||||||
sd_debug = <&sdhost>,"brcm,debug";
|
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";
|
axiperf = <&axiperf>,"status";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -79,6 +79,19 @@
|
|||||||
status = "disabled";
|
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 {
|
hvs: hvs@7e400000 {
|
||||||
/* Add alias */
|
/* Add alias */
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
aliases {
|
aliases {
|
||||||
serial0 = &uart1;
|
serial0 = &uart1;
|
||||||
serial1 = &uart0;
|
serial1 = &uart0;
|
||||||
|
mmc1 = &mmcnr;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -74,13 +75,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc {
|
&mmcnr {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&sdio_pins>;
|
pinctrl-0 = <&sdio_pins>;
|
||||||
non-removable;
|
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
brcm,overclock-50 = <0>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&firmware {
|
&firmware {
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
aliases {
|
aliases {
|
||||||
serial0 = &uart1;
|
serial0 = &uart1;
|
||||||
serial1 = &uart0;
|
serial1 = &uart0;
|
||||||
|
mmc1 = &mmcnr;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -74,13 +75,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&mmc {
|
&mmcnr {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&sdio_pins>;
|
pinctrl-0 = <&sdio_pins>;
|
||||||
non-removable;
|
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
brcm,overclock-50 = <0>;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
&soc {
|
&soc {
|
||||||
|
|||||||
@@ -33,6 +33,13 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fragment@3 {
|
||||||
|
target = <&mmcnr>;
|
||||||
|
__overlay__ {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
__overrides__ {
|
__overrides__ {
|
||||||
overclock_50 = <&frag0>,"brcm,overclock-50:0";
|
overclock_50 = <&frag0>,"brcm,overclock-50:0";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,39 +1,26 @@
|
|||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
/plugin/;
|
/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";
|
compatible = "brcm,bcm2835";
|
||||||
|
|
||||||
fragment@0 {
|
fragment@0 {
|
||||||
target = <&mmc>;
|
target = <&mmcnr>;
|
||||||
__overlay__ {
|
__overlay__ {
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
fragment@1 {
|
fragment@1 {
|
||||||
target = <&soc>;
|
target = <&mmc>;
|
||||||
__overlay__ {
|
sdio_ovl: __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>;
|
pinctrl-0 = <&sdio_ovl_pins>;
|
||||||
|
pinctrl-names = "default";
|
||||||
non-removable;
|
non-removable;
|
||||||
bus-width = <4>;
|
bus-width = <4>;
|
||||||
};
|
status = "okay";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -75,7 +62,7 @@
|
|||||||
fragment@6 {
|
fragment@6 {
|
||||||
target-path = "/aliases";
|
target-path = "/aliases";
|
||||||
__overlay__ {
|
__overlay__ {
|
||||||
mmc1 = "/soc/sdio@7e300000";
|
mmc1 = "/soc/mmc@7e300000";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user