On 26 August 2015 at 19:29, Marek Vasut <ma...@denx.de> wrote: > On Wednesday, August 26, 2015 at 03:47:28 PM, Jagan Teki wrote: >> On 26 August 2015 at 13:00, Chin Liang See <cl...@altera.com> wrote: >> > On Wed, 2015-08-26 at 08:57 +0200, ma...@denx.de wrote: >> >> On Wednesday, August 26, 2015 at 02:09:55 AM, Chin Liang See wrote: >> >> > Enable the quad output fast read and quad input fast program >> >> > support. Quad mode is supported by Cadence QSPI controller. >> >> > >> >> > Signed-off-by: Chin Liang See <cl...@altera.com> >> >> > Cc: Dinh Nguyen <dingu...@opensource.altera.com> >> >> > Cc: Stefan Roese <s...@denx.de> >> >> > Cc: Vikas Manocha <vikas.mano...@st.com> >> >> > Cc: Jagannadh Teki <jt...@openedev.com> >> >> > Cc: Pavel Machek <pa...@denx.de> >> >> > Cc: Marek Vasut <ma...@denx.de> >> >> > --- >> >> > >> >> > drivers/spi/cadence_qspi.c | 11 +++++++++++ >> >> > drivers/spi/cadence_qspi_apb.c | 16 ++++++++++++---- >> >> > 2 files changed, 23 insertions(+), 4 deletions(-) >> >> > >> >> > diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c >> >> > index 34a0f46..c6b69c4 100644 >> >> > --- a/drivers/spi/cadence_qspi.c >> >> > +++ b/drivers/spi/cadence_qspi.c >> >> > @@ -318,6 +318,16 @@ static int cadence_spi_ofdata_to_platdata(struct >> >> > udevice *bus) return 0; >> >> > >> >> > } >> >> > >> >> > +static int cadence_spi_child_pre_probe(struct udevice *dev) >> >> > +{ >> >> > + struct spi_slave *slave = dev_get_parentdata(dev); >> >> > + >> >> > + /* Cadence QSPI controller can support quad read and program */ >> >> > + slave->op_mode_rx = SPI_OPM_RX_QOF; >> >> > + slave->op_mode_tx = SPI_OPM_TX_QPP; >> >> > + return 0; >> >> > +} >> >> > + >> >> > >> >> > static const struct dm_spi_ops cadence_spi_ops = { >> >> > >> >> > .xfer = cadence_spi_xfer, >> >> > .set_speed = cadence_spi_set_speed, >> >> > >> >> > @@ -341,5 +351,6 @@ U_BOOT_DRIVER(cadence_spi) = { >> >> > >> >> > .ofdata_to_platdata = cadence_spi_ofdata_to_platdata, >> >> > .platdata_auto_alloc_size = sizeof(struct cadence_spi_platdata), >> >> > .priv_auto_alloc_size = sizeof(struct cadence_spi_priv), >> >> > >> >> > + .child_pre_probe = cadence_spi_child_pre_probe, >> >> > >> >> > .probe = cadence_spi_probe, >> >> > >> >> > }; >> >> >> >> Simon, can you please check if this DM bit is correct ? >> >> >> >> > diff --git a/drivers/spi/cadence_qspi_apb.c >> >> > b/drivers/spi/cadence_qspi_apb.c index d053407..deffb6b 100644 >> >> > --- a/drivers/spi/cadence_qspi_apb.c >> >> > +++ b/drivers/spi/cadence_qspi_apb.c >> >> > @@ -29,6 +29,9 @@ >> >> > >> >> > #include <asm/io.h> >> >> > #include <asm/errno.h> >> >> > #include "cadence_qspi.h" >> >> > >> >> > +#include <spi.h> >> >> > +#include <spi_flash.h> >> >> > +#include "../mtd/spi/sf_internal.h" >> >> >> >> Why do you need this include ? >> > >> > Actually I am comparing the opcode to determine whether its a quad >> > command. If yes, we need to setup the controller accordingly. >> >> Sorry, this I wouldn't recommend as of now please assign quad directly >> instead setting up controller based on the flash stuff, Yes things >> need to change it on u-boot like spi-nor framework and currently we >> are working on it[1] will defiantly back with proper solution. >> >> [1] >> http://git.denx.de/?p=u-boot/u-boot-spi.git;a=shortlog;h=refs/heads/spi-no >> r > > Is this stuff in any way compatible with the spi-nor stuff in Linux ?
Main intention is to compatible with Linux spi-nor, but instead of direct porting - this way is to make enhancements step by step. thanks! -- Jagan | openedev. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot