Commit 90a2f7171182f3b96c28b2dcff67b02a3164cdb1

Authored by Vikas Manocha
Committed by Jagan Teki
1 parent c0535c0ef0

spi: cadence_qspi: get sram size from device tree

sram size could be different on different socs, e.g. on stv0991 it is 256 while
on altera platform it is 128. It is better to receive it from device tree.

Signed-off-by: Vikas Manocha <vikas.manocha@st.com>
Tested-by: Stefan Roese <sr@denx.de>
Reviewed-by: Jagannadh Teki <jteki@openedev.com>

Showing 5 changed files with 5 additions and 5 deletions Side-by-side Diff

arch/arm/dts/socfpga.dtsi
... ... @@ -639,6 +639,7 @@
639 639 ext-decoder = <0>; /* external decoder */
640 640 num-cs = <4>;
641 641 fifo-depth = <128>;
  642 + sram-size = <128>;
642 643 bus-num = <2>;
643 644 status = "disabled";
644 645 };
arch/arm/dts/stv0991.dts
... ... @@ -35,6 +35,7 @@
35 35 ext-decoder = <0>; /* external decoder */
36 36 num-cs = <4>;
37 37 fifo-depth = <256>;
  38 + sram-size = <256>;
38 39 bus-num = <0>;
39 40 status = "okay";
40 41  
drivers/spi/cadence_qspi.c
... ... @@ -309,6 +309,7 @@
309 309 plat->tsd2d_ns = fdtdec_get_int(blob, subnode, "tsd2d-ns", 255);
310 310 plat->tchsh_ns = fdtdec_get_int(blob, subnode, "tchsh-ns", 20);
311 311 plat->tslch_ns = fdtdec_get_int(blob, subnode, "tslch-ns", 20);
  312 + plat->sram_size = fdtdec_get_int(blob, node, "sram-size", 128);
312 313  
313 314 debug("%s: regbase=%p ahbbase=%p max-frequency=%d page-size=%d\n",
314 315 __func__, plat->regbase, plat->ahbbase, plat->max_hz,
drivers/spi/cadence_qspi.h
... ... @@ -25,6 +25,7 @@
25 25 u32 tsd2d_ns;
26 26 u32 tchsh_ns;
27 27 u32 tslch_ns;
  28 + u32 sram_size;
28 29 };
29 30  
30 31 struct cadence_spi_priv {
drivers/spi/cadence_qspi_apb.c
... ... @@ -36,9 +36,6 @@
36 36  
37 37 #define CQSPI_FIFO_WIDTH (4)
38 38  
39   -/* Controller sram size in word */
40   -#define CQSPI_REG_SRAM_SIZE_WORD (128)
41   -#define CQSPI_REG_SRAM_PARTITION_RD (CQSPI_REG_SRAM_SIZE_WORD/2)
42 39 #define CQSPI_REG_SRAM_THRESHOLD_WORDS (50)
43 40  
44 41 /* Transfer mode */
... ... @@ -536,8 +533,7 @@
536 533 writel(0, plat->regbase + CQSPI_REG_REMAP);
537 534  
538 535 /* Indirect mode configurations */
539   - writel(CQSPI_REG_SRAM_PARTITION_RD,
540   - plat->regbase + CQSPI_REG_SRAMPARTITION);
  536 + writel((plat->sram_size/2), plat->regbase + CQSPI_REG_SRAMPARTITION);
541 537  
542 538 /* Disable all interrupts */
543 539 writel(0, plat->regbase + CQSPI_REG_IRQMASK);