diff options
| author | Kukjin Kim <kgene.kim@samsung.com> | 2011-07-06 02:46:41 -0400 |
|---|---|---|
| committer | Kukjin Kim <kgene.kim@samsung.com> | 2011-07-06 02:46:41 -0400 |
| commit | d60c98c26ac9824211c3a1f729be52cb179a1157 (patch) | |
| tree | dae0c3724b412c8a5262d64b14d204ba9a11e145 | |
| parent | 8fa9dd04b7f7ab1807ebcc274601dd8e2d215569 (diff) | |
| parent | 3075741417d47cccc890ed30da9ece666006553a (diff) | |
Merge branch 'for-spi' into s5p-fixes-for-linus
| -rw-r--r-- | arch/arm/mach-s3c64xx/dev-spi.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-s5p64x0/dev-spi.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-s5pc100/dev-spi.c | 3 | ||||
| -rw-r--r-- | arch/arm/mach-s5pv210/dev-spi.c | 2 | ||||
| -rw-r--r-- | arch/arm/plat-samsung/include/plat/s3c64xx-spi.h | 2 | ||||
| -rw-r--r-- | drivers/spi/spi_s3c64xx.c | 4 |
6 files changed, 14 insertions, 3 deletions
diff --git a/arch/arm/mach-s3c64xx/dev-spi.c b/arch/arm/mach-s3c64xx/dev-spi.c index 82db072cb83..5e6b42089eb 100644 --- a/arch/arm/mach-s3c64xx/dev-spi.c +++ b/arch/arm/mach-s3c64xx/dev-spi.c | |||
| @@ -88,6 +88,7 @@ static struct s3c64xx_spi_info s3c64xx_spi0_pdata = { | |||
| 88 | .cfg_gpio = s3c64xx_spi_cfg_gpio, | 88 | .cfg_gpio = s3c64xx_spi_cfg_gpio, |
| 89 | .fifo_lvl_mask = 0x7f, | 89 | .fifo_lvl_mask = 0x7f, |
| 90 | .rx_lvl_offset = 13, | 90 | .rx_lvl_offset = 13, |
| 91 | .tx_st_done = 21, | ||
| 91 | }; | 92 | }; |
| 92 | 93 | ||
| 93 | static u64 spi_dmamask = DMA_BIT_MASK(32); | 94 | static u64 spi_dmamask = DMA_BIT_MASK(32); |
| @@ -132,6 +133,7 @@ static struct s3c64xx_spi_info s3c64xx_spi1_pdata = { | |||
| 132 | .cfg_gpio = s3c64xx_spi_cfg_gpio, | 133 | .cfg_gpio = s3c64xx_spi_cfg_gpio, |
| 133 | .fifo_lvl_mask = 0x7f, | 134 | .fifo_lvl_mask = 0x7f, |
| 134 | .rx_lvl_offset = 13, | 135 | .rx_lvl_offset = 13, |
| 136 | .tx_st_done = 21, | ||
| 135 | }; | 137 | }; |
| 136 | 138 | ||
| 137 | struct platform_device s3c64xx_device_spi1 = { | 139 | struct platform_device s3c64xx_device_spi1 = { |
diff --git a/arch/arm/mach-s5p64x0/dev-spi.c b/arch/arm/mach-s5p64x0/dev-spi.c index e78ee18c76e..ac825e82632 100644 --- a/arch/arm/mach-s5p64x0/dev-spi.c +++ b/arch/arm/mach-s5p64x0/dev-spi.c | |||
| @@ -112,12 +112,14 @@ static struct s3c64xx_spi_info s5p6440_spi0_pdata = { | |||
| 112 | .cfg_gpio = s5p6440_spi_cfg_gpio, | 112 | .cfg_gpio = s5p6440_spi_cfg_gpio, |
| 113 | .fifo_lvl_mask = 0x1ff, | 113 | .fifo_lvl_mask = 0x1ff, |
| 114 | .rx_lvl_offset = 15, | 114 | .rx_lvl_offset = 15, |
| 115 | .tx_st_done = 25, | ||
| 115 | }; | 116 | }; |
| 116 | 117 | ||
| 117 | static struct s3c64xx_spi_info s5p6450_spi0_pdata = { | 118 | static struct s3c64xx_spi_info s5p6450_spi0_pdata = { |
| 118 | .cfg_gpio = s5p6450_spi_cfg_gpio, | 119 | .cfg_gpio = s5p6450_spi_cfg_gpio, |
| 119 | .fifo_lvl_mask = 0x1ff, | 120 | .fifo_lvl_mask = 0x1ff, |
| 120 | .rx_lvl_offset = 15, | 121 | .rx_lvl_offset = 15, |
| 122 | .tx_st_done = 25, | ||
| 121 | }; | 123 | }; |
| 122 | 124 | ||
| 123 | static u64 spi_dmamask = DMA_BIT_MASK(32); | 125 | static u64 spi_dmamask = DMA_BIT_MASK(32); |
| @@ -160,12 +162,14 @@ static struct s3c64xx_spi_info s5p6440_spi1_pdata = { | |||
| 160 | .cfg_gpio = s5p6440_spi_cfg_gpio, | 162 | .cfg_gpio = s5p6440_spi_cfg_gpio, |
| 161 | .fifo_lvl_mask = 0x7f, | 163 | .fifo_lvl_mask = 0x7f, |
| 162 | .rx_lvl_offset = 15, | 164 | .rx_lvl_offset = 15, |
| 165 | .tx_st_done = 25, | ||
| 163 | }; | 166 | }; |
| 164 | 167 | ||
| 165 | static struct s3c64xx_spi_info s5p6450_spi1_pdata = { | 168 | static struct s3c64xx_spi_info s5p6450_spi1_pdata = { |
| 166 | .cfg_gpio = s5p6450_spi_cfg_gpio, | 169 | .cfg_gpio = s5p6450_spi_cfg_gpio, |
| 167 | .fifo_lvl_mask = 0x7f, | 170 | .fifo_lvl_mask = 0x7f, |
| 168 | .rx_lvl_offset = 15, | 171 | .rx_lvl_offset = 15, |
| 172 | .tx_st_done = 25, | ||
| 169 | }; | 173 | }; |
| 170 | 174 | ||
| 171 | struct platform_device s5p64x0_device_spi1 = { | 175 | struct platform_device s5p64x0_device_spi1 = { |
diff --git a/arch/arm/mach-s5pc100/dev-spi.c b/arch/arm/mach-s5pc100/dev-spi.c index cd7ca47d874..e5d6c4dceb5 100644 --- a/arch/arm/mach-s5pc100/dev-spi.c +++ b/arch/arm/mach-s5pc100/dev-spi.c | |||
| @@ -91,6 +91,7 @@ static struct s3c64xx_spi_info s5pc100_spi0_pdata = { | |||
| 91 | .fifo_lvl_mask = 0x7f, | 91 | .fifo_lvl_mask = 0x7f, |
| 92 | .rx_lvl_offset = 13, | 92 | .rx_lvl_offset = 13, |
| 93 | .high_speed = 1, | 93 | .high_speed = 1, |
| 94 | .tx_st_done = 21, | ||
| 94 | }; | 95 | }; |
| 95 | 96 | ||
| 96 | static u64 spi_dmamask = DMA_BIT_MASK(32); | 97 | static u64 spi_dmamask = DMA_BIT_MASK(32); |
| @@ -135,6 +136,7 @@ static struct s3c64xx_spi_info s5pc100_spi1_pdata = { | |||
| 135 | .fifo_lvl_mask = 0x7f, | 136 | .fifo_lvl_mask = 0x7f, |
| 136 | .rx_lvl_offset = 13, | 137 | .rx_lvl_offset = 13, |
| 137 | .high_speed = 1, | 138 | .high_speed = 1, |
| 139 | .tx_st_done = 21, | ||
| 138 | }; | 140 | }; |
| 139 | 141 | ||
| 140 | struct platform_device s5pc100_device_spi1 = { | 142 | struct platform_device s5pc100_device_spi1 = { |
| @@ -177,6 +179,7 @@ static struct s3c64xx_spi_info s5pc100_spi2_pdata = { | |||
| 177 | .fifo_lvl_mask = 0x7f, | 179 | .fifo_lvl_mask = 0x7f, |
| 178 | .rx_lvl_offset = 13, | 180 | .rx_lvl_offset = 13, |
| 179 | .high_speed = 1, | 181 | .high_speed = 1, |
| 182 | .tx_st_done = 21, | ||
| 180 | }; | 183 | }; |
| 181 | 184 | ||
| 182 | struct platform_device s5pc100_device_spi2 = { | 185 | struct platform_device s5pc100_device_spi2 = { |
diff --git a/arch/arm/mach-s5pv210/dev-spi.c b/arch/arm/mach-s5pv210/dev-spi.c index e3249a47e3b..eaf9a7bff7a 100644 --- a/arch/arm/mach-s5pv210/dev-spi.c +++ b/arch/arm/mach-s5pv210/dev-spi.c | |||
| @@ -85,6 +85,7 @@ static struct s3c64xx_spi_info s5pv210_spi0_pdata = { | |||
| 85 | .fifo_lvl_mask = 0x1ff, | 85 | .fifo_lvl_mask = 0x1ff, |
| 86 | .rx_lvl_offset = 15, | 86 | .rx_lvl_offset = 15, |
| 87 | .high_speed = 1, | 87 | .high_speed = 1, |
| 88 | .tx_st_done = 25, | ||
| 88 | }; | 89 | }; |
| 89 | 90 | ||
| 90 | static u64 spi_dmamask = DMA_BIT_MASK(32); | 91 | static u64 spi_dmamask = DMA_BIT_MASK(32); |
| @@ -129,6 +130,7 @@ static struct s3c64xx_spi_info s5pv210_spi1_pdata = { | |||
| 129 | .fifo_lvl_mask = 0x7f, | 130 | .fifo_lvl_mask = 0x7f, |
| 130 | .rx_lvl_offset = 15, | 131 | .rx_lvl_offset = 15, |
| 131 | .high_speed = 1, | 132 | .high_speed = 1, |
| 133 | .tx_st_done = 25, | ||
| 132 | }; | 134 | }; |
| 133 | 135 | ||
| 134 | struct platform_device s5pv210_device_spi1 = { | 136 | struct platform_device s5pv210_device_spi1 = { |
diff --git a/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h b/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h index 0ffe34a2155..4c16fa3621b 100644 --- a/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h +++ b/arch/arm/plat-samsung/include/plat/s3c64xx-spi.h | |||
| @@ -39,6 +39,7 @@ struct s3c64xx_spi_csinfo { | |||
| 39 | * @fifo_lvl_mask: All tx fifo_lvl fields start at offset-6 | 39 | * @fifo_lvl_mask: All tx fifo_lvl fields start at offset-6 |
| 40 | * @rx_lvl_offset: Depends on tx fifo_lvl field and bus number | 40 | * @rx_lvl_offset: Depends on tx fifo_lvl field and bus number |
| 41 | * @high_speed: If the controller supports HIGH_SPEED_EN bit | 41 | * @high_speed: If the controller supports HIGH_SPEED_EN bit |
| 42 | * @tx_st_done: Depends on tx fifo_lvl field | ||
| 42 | */ | 43 | */ |
| 43 | struct s3c64xx_spi_info { | 44 | struct s3c64xx_spi_info { |
| 44 | int src_clk_nr; | 45 | int src_clk_nr; |
| @@ -53,6 +54,7 @@ struct s3c64xx_spi_info { | |||
| 53 | int fifo_lvl_mask; | 54 | int fifo_lvl_mask; |
| 54 | int rx_lvl_offset; | 55 | int rx_lvl_offset; |
| 55 | int high_speed; | 56 | int high_speed; |
| 57 | int tx_st_done; | ||
| 56 | }; | 58 | }; |
| 57 | 59 | ||
| 58 | /** | 60 | /** |
diff --git a/drivers/spi/spi_s3c64xx.c b/drivers/spi/spi_s3c64xx.c index 795828b90f4..8945e201e42 100644 --- a/drivers/spi/spi_s3c64xx.c +++ b/drivers/spi/spi_s3c64xx.c | |||
| @@ -116,9 +116,7 @@ | |||
| 116 | (((i)->fifo_lvl_mask + 1))) \ | 116 | (((i)->fifo_lvl_mask + 1))) \ |
| 117 | ? 1 : 0) | 117 | ? 1 : 0) |
| 118 | 118 | ||
| 119 | #define S3C64XX_SPI_ST_TX_DONE(v, i) ((((v) >> (i)->rx_lvl_offset) & \ | 119 | #define S3C64XX_SPI_ST_TX_DONE(v, i) (((v) & (1 << (i)->tx_st_done)) ? 1 : 0) |
| 120 | (((i)->fifo_lvl_mask + 1) << 1)) \ | ||
| 121 | ? 1 : 0) | ||
| 122 | #define TX_FIFO_LVL(v, i) (((v) >> 6) & (i)->fifo_lvl_mask) | 120 | #define TX_FIFO_LVL(v, i) (((v) >> 6) & (i)->fifo_lvl_mask) |
| 123 | #define RX_FIFO_LVL(v, i) (((v) >> (i)->rx_lvl_offset) & (i)->fifo_lvl_mask) | 121 | #define RX_FIFO_LVL(v, i) (((v) >> (i)->rx_lvl_offset) & (i)->fifo_lvl_mask) |
| 124 | 122 | ||
