Dear Piotr, On 29 August 2012 17:15, Piotr Wilczek <p.wilc...@samsung.com> wrote: > This patch implements software SPI for the universal C210 board. > > Signed-off-by: Piotr Wilczek <p.wilc...@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com> > CC: Minkyu Kang <mk7.k...@samsung.com> > CC: Wolfgang Denk <w...@denx.de> > CC: Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com> > --- > board/samsung/universal_c210/universal.c | 36 > ++++++++++++++++++++++++++++++ > drivers/spi/soft_spi.c | 7 +++++- > include/configs/s5pc210_universal.h | 19 +++++++++++++++ > 3 files changed, 61 insertions(+), 1 deletions(-) > > diff --git a/board/samsung/universal_c210/universal.c > b/board/samsung/universal_c210/universal.c > index 8a114e6..772ade5 100644 > --- a/board/samsung/universal_c210/universal.c > +++ b/board/samsung/universal_c210/universal.c > @@ -24,6 +24,7 @@ > > #include <common.h> > #include <asm/io.h> > +#include <spi.h> > #include <asm/arch/adc.h> > #include <asm/arch/gpio.h> > #include <asm/arch/mmc.h> > @@ -34,6 +35,10 @@ > #include <max8998_pmic.h> > #include <asm/arch/watchdog.h> > > +#if defined(CONFIG_SOFT_SPI) > +# include <asm/gpio.h>
remove space between # and include. > +#endif > + > DECLARE_GLOBAL_DATA_PTR; > > struct exynos4_gpio_part1 *gpio1; > @@ -288,3 +293,34 @@ int board_early_init_f(void) > > return 0; > } > + > +void soft_spi_init() > +{ > + gpio_direction_output(CONFIG_SOFT_SPI_GPIO_SCLK, > + CONFIG_SOFT_SPI_MODE & SPI_CPOL); > + gpio_direction_output(CONFIG_SOFT_SPI_GPIO_MOSI, 1); > + gpio_direction_input(CONFIG_SOFT_SPI_GPIO_MISO); > + gpio_direction_output(CONFIG_SOFT_SPI_GPIO_CS, > + !(CONFIG_SOFT_SPI_MODE & SPI_CS_HIGH)); > +} > + > +void spi_cs_activate(struct spi_slave *slave) > +{ > + gpio_set_value(CONFIG_SOFT_SPI_GPIO_CS, > + !(CONFIG_SOFT_SPI_MODE & SPI_CS_HIGH)); > + SPI_SCL(1); > + gpio_set_value(CONFIG_SOFT_SPI_GPIO_CS, > + CONFIG_SOFT_SPI_MODE & SPI_CS_HIGH); > +} > + > +void spi_cs_deactivate(struct spi_slave *slave) > +{ > + gpio_set_value(CONFIG_SOFT_SPI_GPIO_CS, > + !(CONFIG_SOFT_SPI_MODE & SPI_CS_HIGH)); > +} > + > +int spi_cs_is_valid(unsigned int bus, unsigned int cs) > +{ > + return 1; always return 1? > +} > + > diff --git a/drivers/spi/soft_spi.c b/drivers/spi/soft_spi.c > index 13df8cb..a0a3012 100644 > --- a/drivers/spi/soft_spi.c > +++ b/drivers/spi/soft_spi.c > @@ -29,6 +29,10 @@ > > #include <malloc.h> > > +#if defined(CONFIG_SOFT_SPI) > +# include <asm/gpio.h> > +#endif > + > /*----------------------------------------------------------------------- > * Definitions > */ > @@ -59,8 +63,9 @@ static inline struct soft_spi_slave *to_soft_spi(struct > spi_slave *slave) > void spi_init (void) > { > #ifdef SPI_INIT > +#ifdef CONFIG_SYS_IMMR > volatile immap_t *immr = (immap_t *)CONFIG_SYS_IMMR; > - > +#endif Is it related change with this patch? > SPI_INIT; > #endif > } > diff --git a/include/configs/s5pc210_universal.h > b/include/configs/s5pc210_universal.h > index 7978317..a338840 100644 > --- a/include/configs/s5pc210_universal.h > +++ b/include/configs/s5pc210_universal.h > @@ -266,4 +266,23 @@ > #define CONFIG_USB_GADGET_S3C_UDC_OTG > #define CONFIG_USB_GADGET_DUALSPEED > > +/* > + * SPI Settings > + */ > +#define CONFIG_SOFT_SPI > +#define CONFIG_SOFT_SPI_MODE SPI_MODE_3 > +#define CONFIG_SOFT_SPI_GPIO_SCLK exynos4_gpio_part2_get_nr(y3, 1) > +#define CONFIG_SOFT_SPI_GPIO_MOSI exynos4_gpio_part2_get_nr(y3, 3) > +#define CONFIG_SOFT_SPI_GPIO_MISO exynos4_gpio_part2_get_nr(y3, 0) > +#define CONFIG_SOFT_SPI_GPIO_CS exynos4_gpio_part2_get_nr(y4, 3) > + > +#define SPI_DELAY udelay(1) > +#define SPI_INIT soft_spi_init() > +#define SPI_SCL(bit) gpio_set_value(CONFIG_SOFT_SPI_GPIO_SCLK, bit) > +#define SPI_SDA(bit) gpio_set_value(CONFIG_SOFT_SPI_GPIO_MOSI, bit) > +#define SPI_READ gpio_get_value(CONFIG_SOFT_SPI_GPIO_MISO) > +#ifndef __ASSEMBLY__ > +void soft_spi_init(void); > +#endif > + > #endif /* __CONFIG_H */ > -- > 1.7.5.4 Thanks. Minkyu Kang. -- from. prom. www.promsoft.net _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot