bcm53xx: switch to the new/alternative SPI controller driver

This switches bcm53xx from spi-bcm53xx to the spi-bcm-qspi driver. The
later one was developed by Broadcom and is more advanced one. It
supports more modes, setting a speed, setting bits per word and uses
IRQs instead of polling.

This increases kernel size from 1808120 B to the 1811160 B (by 3040 B).

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
This commit is contained in:
Rafał Miłecki 2018-05-07 07:48:39 +02:00
parent f172456edc
commit ed00387dc5
3 changed files with 12 additions and 121 deletions

View file

@ -320,7 +320,8 @@ CONFIG_SMP=y
CONFIG_SMP_ON_UP=y
CONFIG_SPARSE_IRQ=y
CONFIG_SPI=y
CONFIG_SPI_BCM53XX=y
# CONFIG_SPI_BCM53XX is not set
CONFIG_SPI_BCM_QSPI=y
CONFIG_SPI_BITBANG=y
CONFIG_SPI_GPIO=y
CONFIG_SPI_MASTER=y

View file

@ -1,110 +0,0 @@
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
Date: Fri, 29 Dec 2017 20:26:51 +0100
Subject: [PATCH] Revert "ARM: dts: BCM5301X: convert to iProc QSPI"
This reverts commit 1c8f4065072387d3b6ee7adcf0dbe3c7ba80c268.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -337,6 +337,20 @@
};
};
+ spi@29000 {
+ reg = <0x00029000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ spi_nor: spi-nor@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <20000000>;
+ linux,part-probe = "ofpart", "bcm47xxpart";
+ status = "disabled";
+ };
+ };
+
gmac0: ethernet@24000 {
reg = <0x24000 0x800>;
};
@@ -425,42 +439,6 @@
brcm,nand-has-wp;
};
- spi@18029200 {
- compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
- reg = <0x18029200 0x184>,
- <0x18029000 0x124>,
- <0x1811b408 0x004>,
- <0x180293a0 0x01c>;
- reg-names = "mspi", "bspi", "intr_regs", "intr_status_reg";
- interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "spi_lr_fullness_reached",
- "spi_lr_session_aborted",
- "spi_lr_impatient",
- "spi_lr_session_done",
- "spi_lr_overhead",
- "mspi_done",
- "mspi_halted";
- clocks = <&iprocmed>;
- clock-names = "iprocmed";
- num-cs = <2>;
- #address-cells = <1>;
- #size-cells = <0>;
-
- spi_nor: spi-nor@0 {
- compatible = "jedec,spi-nor";
- reg = <0>;
- spi-max-frequency = <20000000>;
- linux,part-probe = "ofpart", "bcm47xxpart";
- status = "disabled";
- };
- };
-
thermal-zones {
cpu_thermal: cpu-thermal {
polling-delay-passive = <0>;
--- a/arch/arm/boot/dts/bcm953012k.dts
+++ b/arch/arm/boot/dts/bcm953012k.dts
@@ -80,32 +80,6 @@
};
};
-&spi_nor {
- status = "okay";
- spi-max-frequency = <62500000>;
- m25p,default-addr-width = <3>;
-
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- label = "boot";
- reg = <0x00000000 0x000d0000>;
- };
- partition@d000 {
- label = "env";
- reg = <0x000d0000 0x00030000>;
- };
- partition@100000 {
- label = "system";
- reg = <0x00100000 0x00600000>;
- };
- partition@700000 {
- label = "rootfs";
- reg = <0x00700000 0x00900000>;
- };
-};
-
&uart0 {
status = "okay";
};

View file

@ -19,18 +19,18 @@ Subject: [PATCH] Use "brcm,bcm947xx-cfe-partitions" binding for Broadcom
};
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -346,8 +346,11 @@
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <20000000>;
- linux,part-probe = "ofpart", "bcm47xxpart";
status = "disabled";
@@ -456,8 +456,11 @@
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <20000000>;
- linux,part-probe = "ofpart", "bcm47xxpart";
status = "disabled";
+
+ partitions {
+ compatible = "brcm,bcm947xx-cfe-partitions";
+ };
};
+ partitions {
+ compatible = "brcm,bcm947xx-cfe-partitions";
+ };
};
};
--- a/drivers/mtd/bcm47xxpart.c
+++ b/drivers/mtd/bcm47xxpart.c