[U-Boot] [v3 08/10] spi: cadence_qspi: get sram size from device tree

Jagan Teki jteki at openedev.com
Tue Jun 30 08:28:24 CEST 2015


On 30 June 2015 at 02:19, Vikas Manocha <vikas.manocha at st.com> wrote:
> 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 at st.com>

Still have an issue - unable to apply.

> Tested-by: Stefan Roese <sr at denx.de>
> ---
>
> Changes in v3: Rebased to spi-next-dev
> Changes in v2: None
>
>  arch/arm/dts/socfpga.dtsi      |    1 +
>  arch/arm/dts/stv0991.dts       |    1 +
>  drivers/spi/cadence_qspi.c     |    1 +
>  drivers/spi/cadence_qspi.h     |    1 +
>  drivers/spi/cadence_qspi_apb.c |    6 +-----
>  5 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/dts/socfpga.dtsi b/arch/arm/dts/socfpga.dtsi
> index bf791c5..9b12420 100644
> --- a/arch/arm/dts/socfpga.dtsi
> +++ b/arch/arm/dts/socfpga.dtsi
> @@ -639,6 +639,7 @@
>                         ext-decoder = <0>;  /* external decoder */
>                         num-cs = <4>;
>                         fifo-depth = <128>;
> +                       sram-size = <128>;
>                         bus-num = <2>;
>                         status = "disabled";
>                 };
> diff --git a/arch/arm/dts/stv0991.dts b/arch/arm/dts/stv0991.dts
> index 3b1efca..556df82 100644
> --- a/arch/arm/dts/stv0991.dts
> +++ b/arch/arm/dts/stv0991.dts
> @@ -35,6 +35,7 @@
>                         ext-decoder = <0>; /* external decoder */
>                         num-cs = <4>;
>                         fifo-depth = <256>;
> +                       sram-size = <256>;
>                         bus-num = <0>;
>                         status = "okay";
>
> diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
> index a75fc46..34a0f46 100644
> --- a/drivers/spi/cadence_qspi.c
> +++ b/drivers/spi/cadence_qspi.c
> @@ -309,6 +309,7 @@ static int cadence_spi_ofdata_to_platdata(struct udevice *bus)
>         plat->tsd2d_ns = fdtdec_get_int(blob, subnode, "tsd2d-ns", 255);
>         plat->tchsh_ns = fdtdec_get_int(blob, subnode, "tchsh-ns", 20);
>         plat->tslch_ns = fdtdec_get_int(blob, subnode, "tslch-ns", 20);
> +       plat->sram_size = fdtdec_get_int(blob, node, "sram-size", 128);
>
>         debug("%s: regbase=%p ahbbase=%p max-frequency=%d page-size=%d\n",
>               __func__, plat->regbase, plat->ahbbase, plat->max_hz,
> diff --git a/drivers/spi/cadence_qspi.h b/drivers/spi/cadence_qspi.h
> index c9a6142..98e57aa 100644
> --- a/drivers/spi/cadence_qspi.h
> +++ b/drivers/spi/cadence_qspi.h
> @@ -25,6 +25,7 @@ struct cadence_spi_platdata {
>         u32             tsd2d_ns;
>         u32             tchsh_ns;
>         u32             tslch_ns;
> +       u32             sram_size;
>  };
>
>  struct cadence_spi_priv {
> diff --git a/drivers/spi/cadence_qspi_apb.c b/drivers/spi/cadence_qspi_apb.c
> index f2c22af..cbf0d42 100644
> --- a/drivers/spi/cadence_qspi_apb.c
> +++ b/drivers/spi/cadence_qspi_apb.c
> @@ -36,9 +36,6 @@
>
>  #define CQSPI_FIFO_WIDTH                       (4)
>
> -/* Controller sram size in word */
> -#define CQSPI_REG_SRAM_SIZE_WORD               (128)
> -#define CQSPI_REG_SRAM_PARTITION_RD            (CQSPI_REG_SRAM_SIZE_WORD/2)
>  #define CQSPI_REG_SRAM_THRESHOLD_WORDS         (50)
>
>  /* Transfer mode */
> @@ -536,8 +533,7 @@ void cadence_qspi_apb_controller_init(struct cadence_spi_platdata *plat)
>         writel(0, plat->regbase + CQSPI_REG_REMAP);
>
>         /* Indirect mode configurations */
> -       writel(CQSPI_REG_SRAM_PARTITION_RD,
> -               plat->regbase + CQSPI_REG_SRAMPARTITION);
> +       writel((plat->sram_size/2), plat->regbase + CQSPI_REG_SRAMPARTITION);
>
>         /* Disable all interrupts */
>         writel(0, plat->regbase + CQSPI_REG_IRQMASK);
> --
> 1.7.9.5

thanks!
-- 
Jagan | openedev.


More information about the U-Boot mailing list