Commit d783738c authored by Jaedon Shin's avatar Jaedon Shin Committed by Ralf Baechle

MIPS: BMIPS: Add support SPI device nodes

Adds SPI device nodes to BCM7xxx MIPS based SoCs.
Signed-off-by: default avatarJaedon Shin <jaedon.shin@gmail.com>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Cc: Kevin Cernekee <cernekee@gmail.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: linux-mips@linux-mips.org
Cc: devicetree@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/14990/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 35e7f788
...@@ -91,15 +91,15 @@ upg_irq0_intc: interrupt-controller@406780 { ...@@ -91,15 +91,15 @@ upg_irq0_intc: interrupt-controller@406780 {
compatible = "brcm,bcm7120-l2-intc"; compatible = "brcm,bcm7120-l2-intc";
reg = <0x406780 0x8>; reg = <0x406780 0x8>;
brcm,int-map-mask = <0x44>, <0xf000000>; brcm,int-map-mask = <0x44>, <0xf000000>, <0x100000>;
brcm,int-fwd-mask = <0x70000>; brcm,int-fwd-mask = <0x70000>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupt-parent = <&periph_intc>; interrupt-parent = <&periph_intc>;
interrupts = <18>, <19>; interrupts = <18>, <19>, <20>;
interrupt-names = "upg_main", "upg_bsc"; interrupt-names = "upg_main", "upg_bsc", "upg_spi";
}; };
sun_top_ctrl: syscon@404000 { sun_top_ctrl: syscon@404000 {
...@@ -226,5 +226,48 @@ ohci0: usb@488400 { ...@@ -226,5 +226,48 @@ ohci0: usb@488400 {
interrupts = <61>; interrupts = <61>;
status = "disabled"; status = "disabled";
}; };
spi_l2_intc: interrupt-controller@411d00 {
compatible = "brcm,l2-intc";
reg = <0x411d00 0x30>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&periph_intc>;
interrupts = <79>;
};
qspi: spi@443000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-qspi";
clocks = <&upg_clk>;
reg = <0x440920 0x4 0x443200 0x188 0x443000 0x50>;
reg-names = "cs_reg", "hif_mspi", "bspi";
interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6>;
interrupt-parent = <&spi_l2_intc>;
interrupt-names = "spi_lr_fullness_reached",
"spi_lr_session_aborted",
"spi_lr_impatient",
"spi_lr_session_done",
"spi_lr_overread",
"mspi_done",
"mspi_halted";
status = "disabled";
};
mspi: spi@406400 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-mspi";
clocks = <&upg_clk>;
reg = <0x406400 0x180>;
reg-names = "mspi";
interrupts = <0x14>;
interrupt-parent = <&upg_irq0_intc>;
interrupt-names = "mspi_done";
status = "disabled";
};
}; };
}; };
...@@ -439,5 +439,48 @@ sdhci0: sdhci@413500 { ...@@ -439,5 +439,48 @@ sdhci0: sdhci@413500 {
interrupts = <85>; interrupts = <85>;
status = "disabled"; status = "disabled";
}; };
spi_l2_intc: interrupt-controller@411d00 {
compatible = "brcm,l2-intc";
reg = <0x411d00 0x30>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&periph_intc>;
interrupts = <31>;
};
qspi: spi@413000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-qspi";
clocks = <&upg_clk>;
reg = <0x410920 0x4 0x413200 0x188 0x413000 0x50>;
reg-names = "cs_reg", "hif_mspi", "bspi";
interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6>;
interrupt-parent = <&spi_l2_intc>;
interrupt-names = "spi_lr_fullness_reached",
"spi_lr_session_aborted",
"spi_lr_impatient",
"spi_lr_session_done",
"spi_lr_overread",
"mspi_done",
"mspi_halted";
status = "disabled";
};
mspi: spi@408a00 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-mspi";
clocks = <&upg_clk>;
reg = <0x408a00 0x180>;
reg-names = "mspi";
interrupts = <0x14>;
interrupt-parent = <&upg_aon_irq0_intc>;
interrupt-names = "mspi_done";
status = "disabled";
};
}; };
}; };
...@@ -318,5 +318,48 @@ nand: nand@412800 { ...@@ -318,5 +318,48 @@ nand: nand@412800 {
interrupts = <24>; interrupts = <24>;
status = "disabled"; status = "disabled";
}; };
spi_l2_intc: interrupt-controller@411d00 {
compatible = "brcm,l2-intc";
reg = <0x411d00 0x30>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&periph_intc>;
interrupts = <31>;
};
qspi: spi@413000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-qspi";
clocks = <&upg_clk>;
reg = <0x410920 0x4 0x413200 0x188 0x413000 0x50>;
reg-names = "cs_reg", "hif_mspi", "bspi";
interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6>;
interrupt-parent = <&spi_l2_intc>;
interrupt-names = "spi_lr_fullness_reached",
"spi_lr_session_aborted",
"spi_lr_impatient",
"spi_lr_session_done",
"spi_lr_overread",
"mspi_done",
"mspi_halted";
status = "disabled";
};
mspi: spi@408a00 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-mspi";
clocks = <&upg_clk>;
reg = <0x408a00 0x180>;
reg-names = "mspi";
interrupts = <0x14>;
interrupt-parent = <&upg_aon_irq0_intc>;
interrupt-names = "mspi_done";
status = "disabled";
};
}; };
}; };
...@@ -358,5 +358,48 @@ sdhci0: sdhci@410000 { ...@@ -358,5 +358,48 @@ sdhci0: sdhci@410000 {
interrupts = <82>; interrupts = <82>;
status = "disabled"; status = "disabled";
}; };
spi_l2_intc: interrupt-controller@411d00 {
compatible = "brcm,l2-intc";
reg = <0x411d00 0x30>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&periph_intc>;
interrupts = <31>;
};
qspi: spi@413000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-qspi";
clocks = <&upg_clk>;
reg = <0x410920 0x4 0x413200 0x188 0x413000 0x50>;
reg-names = "cs_reg", "hif_mspi", "bspi";
interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6>;
interrupt-parent = <&spi_l2_intc>;
interrupt-names = "spi_lr_fullness_reached",
"spi_lr_session_aborted",
"spi_lr_impatient",
"spi_lr_session_done",
"spi_lr_overread",
"mspi_done",
"mspi_halted";
status = "disabled";
};
mspi: spi@408a00 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-mspi";
clocks = <&upg_clk>;
reg = <0x408a00 0x180>;
reg-names = "mspi";
interrupts = <0x14>;
interrupt-parent = <&upg_aon_irq0_intc>;
interrupt-names = "mspi_done";
status = "disabled";
};
}; };
}; };
...@@ -354,5 +354,48 @@ sdhci0: sdhci@410000 { ...@@ -354,5 +354,48 @@ sdhci0: sdhci@410000 {
interrupts = <82>; interrupts = <82>;
status = "disabled"; status = "disabled";
}; };
spi_l2_intc: interrupt-controller@411d00 {
compatible = "brcm,l2-intc";
reg = <0x411d00 0x30>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&periph_intc>;
interrupts = <31>;
};
qspi: spi@413000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-qspi";
clocks = <&upg_clk>;
reg = <0x410920 0x4 0x413200 0x188 0x413000 0x50>;
reg-names = "cs_reg", "hif_mspi", "bspi";
interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6>;
interrupt-parent = <&spi_l2_intc>;
interrupt-names = "spi_lr_fullness_reached",
"spi_lr_session_aborted",
"spi_lr_impatient",
"spi_lr_session_done",
"spi_lr_overread",
"mspi_done",
"mspi_halted";
status = "disabled";
};
mspi: spi@408a00 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-mspi";
clocks = <&upg_clk>;
reg = <0x408a00 0x180>;
reg-names = "mspi";
interrupts = <0x14>;
interrupt-parent = <&upg_aon_irq0_intc>;
interrupt-names = "mspi_done";
status = "disabled";
};
}; };
}; };
...@@ -92,15 +92,15 @@ upg_irq0_intc: interrupt-controller@406780 { ...@@ -92,15 +92,15 @@ upg_irq0_intc: interrupt-controller@406780 {
compatible = "brcm,bcm7120-l2-intc"; compatible = "brcm,bcm7120-l2-intc";
reg = <0x406780 0x8>; reg = <0x406780 0x8>;
brcm,int-map-mask = <0x44>, <0x1f000000>; brcm,int-map-mask = <0x44>, <0x1f000000>, <0x100000>;
brcm,int-fwd-mask = <0x70000>; brcm,int-fwd-mask = <0x70000>;
interrupt-controller; interrupt-controller;
#interrupt-cells = <1>; #interrupt-cells = <1>;
interrupt-parent = <&periph_intc>; interrupt-parent = <&periph_intc>;
interrupts = <18>, <19>; interrupts = <18>, <19>, <20>;
interrupt-names = "upg_main", "upg_bsc"; interrupt-names = "upg_main", "upg_bsc", "upg_spi";
}; };
sun_top_ctrl: syscon@404000 { sun_top_ctrl: syscon@404000 {
...@@ -287,5 +287,48 @@ ohci1: usb@488600 { ...@@ -287,5 +287,48 @@ ohci1: usb@488600 {
interrupts = <62>; interrupts = <62>;
status = "disabled"; status = "disabled";
}; };
spi_l2_intc: interrupt-controller@411d00 {
compatible = "brcm,l2-intc";
reg = <0x411d00 0x30>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&periph_intc>;
interrupts = <78>;
};
qspi: spi@443000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-qspi";
clocks = <&upg_clk>;
reg = <0x440920 0x4 0x443200 0x188 0x443000 0x50>;
reg-names = "cs_reg", "hif_mspi", "bspi";
interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6>;
interrupt-parent = <&spi_l2_intc>;
interrupt-names = "spi_lr_fullness_reached",
"spi_lr_session_aborted",
"spi_lr_impatient",
"spi_lr_session_done",
"spi_lr_overread",
"mspi_done",
"mspi_halted";
status = "disabled";
};
mspi: spi@406400 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-mspi";
clocks = <&upg_clk>;
reg = <0x406400 0x180>;
reg-names = "mspi";
interrupts = <0x14>;
interrupt-parent = <&upg_irq0_intc>;
interrupt-names = "mspi_done";
status = "disabled";
};
}; };
}; };
...@@ -450,5 +450,48 @@ sdhci1: sdhci@419200 { ...@@ -450,5 +450,48 @@ sdhci1: sdhci@419200 {
mmc-hs200-1_8v; mmc-hs200-1_8v;
status = "disabled"; status = "disabled";
}; };
spi_l2_intc: interrupt-controller@41ad00 {
compatible = "brcm,l2-intc";
reg = <0x41ad00 0x30>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&periph_intc>;
interrupts = <25>;
};
qspi: spi@41c000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-qspi";
clocks = <&upg_clk>;
reg = <0x419920 0x4 0x41c200 0x188 0x41c000 0x50>;
reg-names = "cs_reg", "hif_mspi", "bspi";
interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6>;
interrupt-parent = <&spi_l2_intc>;
interrupt-names = "spi_lr_fullness_reached",
"spi_lr_session_aborted",
"spi_lr_impatient",
"spi_lr_session_done",
"spi_lr_overread",
"mspi_done",
"mspi_halted";
status = "disabled";
};
mspi: spi@409200 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-mspi";
clocks = <&upg_clk>;
reg = <0x409200 0x180>;
reg-names = "mspi";
interrupts = <0x14>;
interrupt-parent = <&upg_aon_irq0_intc>;
interrupt-names = "mspi_done";
status = "disabled";
};
}; };
}; };
...@@ -465,5 +465,48 @@ sdhci1: sdhci@41a200 { ...@@ -465,5 +465,48 @@ sdhci1: sdhci@41a200 {
mmc-hs200-1_8v; mmc-hs200-1_8v;
status = "disabled"; status = "disabled";
}; };
spi_l2_intc: interrupt-controller@41bd00 {
compatible = "brcm,l2-intc";
reg = <0x41bd00 0x30>;
interrupt-controller;
#interrupt-cells = <1>;
interrupt-parent = <&periph_intc>;
interrupts = <25>;
};
qspi: spi@41d200 {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-qspi";
clocks = <&upg_clk>;
reg = <0x41a920 0x4 0x41d400 0x188 0x41d200 0x50>;
reg-names = "cs_reg", "hif_mspi", "bspi";
interrupts = <0x0 0x1 0x2 0x3 0x4 0x5 0x6>;
interrupt-parent = <&spi_l2_intc>;
interrupt-names = "spi_lr_fullness_reached",
"spi_lr_session_aborted",
"spi_lr_impatient",
"spi_lr_session_done",
"spi_lr_overread",
"mspi_done",
"mspi_halted";
status = "disabled";
};
mspi: spi@409200 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,spi-bcm-qspi",
"brcm,spi-brcmstb-mspi";
clocks = <&upg_clk>;
reg = <0x409200 0x180>;
reg-names = "mspi";
interrupts = <0x14>;
interrupt-parent = <&upg_aon_irq0_intc>;
interrupt-names = "mspi_done";
status = "disabled";
};
}; };
}; };
...@@ -57,3 +57,7 @@ &ehci0 { ...@@ -57,3 +57,7 @@ &ehci0 {
&ohci0 { &ohci0 {
status = "disabled"; status = "disabled";
}; };
&mspi {
status = "okay";
};
...@@ -109,3 +109,7 @@ &sata_phy { ...@@ -109,3 +109,7 @@ &sata_phy {
&sdhci0 { &sdhci0 {
status = "okay"; status = "okay";
}; };
&mspi {
status = "okay";
};
...@@ -69,3 +69,39 @@ &ohci0 { ...@@ -69,3 +69,39 @@ &ohci0 {
&nand { &nand {
status = "okay"; status = "okay";
}; };
&qspi {
status = "okay";
m25p80@0 {
compatible = "m25p80";
reg = <0>;
spi-max-frequency = <40000000>;
spi-cpol;
spi-cpha;
use-bspi;
m25p,fast-read;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
flash0.cfe@0 {
reg = <0x0 0x200000>;
};
flash0.mac@200000 {
reg = <0x200000 0x40000>;
};
flash0.nvram@240000 {
reg = <0x240000 0x10000>;
};
};
};
};
&mspi {
status = "okay";
};
...@@ -72,3 +72,39 @@ &sata_phy { ...@@ -72,3 +72,39 @@ &sata_phy {
&sdhci0 { &sdhci0 {
status = "okay"; status = "okay";
}; };
&qspi {
status = "okay";
m25p80@0 {
compatible = "m25p80";
reg = <0>;
spi-max-frequency = <40000000>;
spi-cpol;
spi-cpha;
use-bspi;
m25p,fast-read;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
flash0.cfe@0 {
reg = <0x0 0x200000>;
};
flash0.mac@200000 {
reg = <0x200000 0x40000>;
};
flash0.nvram@240000 {
reg = <0x240000 0x10000>;
};
};
};
};
&mspi {
status = "okay";
};
...@@ -73,3 +73,7 @@ &sata_phy { ...@@ -73,3 +73,7 @@ &sata_phy {
&sdhci0 { &sdhci0 {
status = "okay"; status = "okay";
}; };
&mspi {
status = "okay";
};
...@@ -79,3 +79,7 @@ &ehci1 { ...@@ -79,3 +79,7 @@ &ehci1 {
&ohci1 { &ohci1 {
status = "okay"; status = "okay";
}; };
&mspi {
status = "okay";
};
...@@ -107,3 +107,39 @@ &sdhci0 { ...@@ -107,3 +107,39 @@ &sdhci0 {
&sdhci1 { &sdhci1 {
status = "okay"; status = "okay";
}; };
&qspi {
status = "okay";
m25p80@0 {
compatible = "m25p80";
reg = <0>;
spi-max-frequency = <40000000>;
spi-cpol;
spi-cpha;
use-bspi;
m25p,fast-read;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
flash0.cfe@0 {
reg = <0x0 0x200000>;
};
flash0.mac@200000 {
reg = <0x200000 0x40000>;
};
flash0.nvram@240000 {
reg = <0x240000 0x10000>;
};
};
};
};
&mspi {
status = "okay";
};
...@@ -115,3 +115,7 @@ &sdhci0 { ...@@ -115,3 +115,7 @@ &sdhci0 {
&sdhci1 { &sdhci1 {
status = "okay"; status = "okay";
}; };
&mspi {
status = "okay";
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment