On 8 December 2015 at 20:35, Mugunthan V N <mugunthan...@ti.com> wrote: > On Sunday 06 December 2015 08:13 PM, Jagan Teki wrote: >> On 6 December 2015 at 11:33, Mugunthan V N <mugunthan...@ti.com> wrote: >>> On Thursday 03 December 2015 09:37 PM, Jagan Teki wrote: >>>> On 19 November 2015 at 12:35, Mugunthan V N <mugunthan...@ti.com> wrote: >>>>> spi bus can support dual and quad wire data transfers for tx and >>>>> rx. So defining dual and quad modes for both tx and rx. Also add >>>>> support to parse bus width used for spi tx and rx transfers. >>>>> >>>>> Signed-off-by: Mugunthan V N <mugunthan...@ti.com> >>>>> Reviewed-by: Simon Glass <s...@chromium.org> >>>>> Reviewed-by: Tom Rini <tr...@konsulko.com> >>>>> --- >>>>> drivers/spi/spi-uclass.c | 33 +++++++++++++++++++++++++++++++++ >>>>> include/spi.h | 4 ++++ >>>>> 2 files changed, 37 insertions(+) >>>>> >>>>> diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c >>>>> index 58388ef..62d8da7 100644 >>>>> --- a/drivers/spi/spi-uclass.c >>>>> +++ b/drivers/spi/spi-uclass.c >>>>> @@ -349,6 +349,7 @@ int spi_slave_ofdata_to_platdata(const void *blob, >>>>> int node, >>>>> struct dm_spi_slave_platdata *plat) >>>>> { >>>>> int mode = 0; >>>>> + int value; >>>>> >>>>> plat->cs = fdtdec_get_int(blob, node, "reg", -1); >>>>> plat->max_hz = fdtdec_get_int(blob, node, "spi-max-frequency", 0); >>>>> @@ -360,6 +361,38 @@ int spi_slave_ofdata_to_platdata(const void *blob, >>>>> int node, >>>>> mode |= SPI_CS_HIGH; >>>>> if (fdtdec_get_bool(blob, node, "spi-half-duplex")) >>>>> mode |= SPI_PREAMBLE; >>>>> + >>>>> + /* Device DUAL/QUAD mode */ >>>>> + value = fdtdec_get_uint(blob, node, "spi-tx-bus-width", 1); >>>>> + switch (value) { >>>>> + case 1: >>>>> + break; >>>>> + case 2: >>>>> + mode |= SPI_TX_DUAL; >>>>> + break; >>>>> + case 4: >>>>> + mode |= SPI_TX_QUAD; >>>>> + break; >>>>> + default: >>>>> + error("spi-tx-bus-width %d not supported\n", value); >>>>> + break; >>>>> + } >>>>> + >>>>> + value = fdtdec_get_uint(blob, node, "spi-rx-bus-width", 1); >>>>> + switch (value) { >>>>> + case 1: >>>>> + break; >>>>> + case 2: >>>>> + mode |= SPI_RX_DUAL; >>>>> + break; >>>>> + case 4: >>>>> + mode |= SPI_RX_QUAD; >>>>> + break; >>>>> + default: >>>>> + error("spi-rx-bus-width %d not supported\n", value); >>>>> + break; >>>>> + } >>>>> + >>>> >>>> I think these are similar to SPI TX/RX operation modes in spi.h and I >>>> understand this is similar approach as with Linux but before this we >>>> need to do many changes on u-boot as well. >>> >>> I agree that op_mode_rx/op_mode_tx can be used. I just tried to follow >>> Linux way of implementation to have consistency between Linux and >> >> Agreed but the way these mode or flags handling in Linux vs u-boot is >> different. >> >>> U-Boot. If you feel that using op_mode_(rx/tx) will be the best >>> approach, I can repost the series with the changes. >> >> If this is a dependent patch wrt series pls- do otherwise bypass this >> with your series now once we handle these mode/flags with Linux way >> will add till now will mark it as "Under review" on patchwork. >> > > 08/16 patch is dependent on this patch where the mode is used to select > dual/quad mode. I will respin 05 (this patch) and 08 patch as a > follow-up patch.
Then go-ahead and reuse the existing macro's. thanks! -- Jagan. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot