diff options
author | Leilk Liu <leilk.liu@mediatek.com> | 2015-10-26 04:09:41 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-10-27 00:33:41 -0400 |
commit | 79b5d3f24dcec547ea5db7d2e0b557a36f92b16b (patch) | |
tree | ea920f9a432e76ec0f2961ccd1384d4165ed3ddd /drivers/spi/spi-mt65xx.c | |
parent | eca3a1ee8dd7ec5819bd77d598044eb6ecdf4495 (diff) |
spi: mediatek: remove mtk_spi_config
mtk_spi_config() and mtk_spi_prepare_message() both initialize
spi register, so remove mtk_spi_config() and init all register
in mtk_spi_prepare_message().
Signed-off-by: Leilk Liu <leilk.liu@mediatek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi/spi-mt65xx.c')
-rw-r--r-- | drivers/spi/spi-mt65xx.c | 59 |
1 files changed, 26 insertions, 33 deletions
diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c index ecb6c58238c4..7bd84c8061c6 100644 --- a/drivers/spi/spi-mt65xx.c +++ b/drivers/spi/spi-mt65xx.c | |||
@@ -131,10 +131,34 @@ static void mtk_spi_reset(struct mtk_spi *mdata) | |||
131 | writel(reg_val, mdata->base + SPI_CMD_REG); | 131 | writel(reg_val, mdata->base + SPI_CMD_REG); |
132 | } | 132 | } |
133 | 133 | ||
134 | static void mtk_spi_config(struct mtk_spi *mdata, | 134 | static int mtk_spi_prepare_message(struct spi_master *master, |
135 | struct mtk_chip_config *chip_config) | 135 | struct spi_message *msg) |
136 | { | 136 | { |
137 | u16 cpha, cpol; | ||
137 | u32 reg_val; | 138 | u32 reg_val; |
139 | struct mtk_chip_config *chip_config; | ||
140 | struct spi_device *spi = msg->spi; | ||
141 | struct mtk_spi *mdata = spi_master_get_devdata(master); | ||
142 | |||
143 | cpha = spi->mode & SPI_CPHA ? 1 : 0; | ||
144 | cpol = spi->mode & SPI_CPOL ? 1 : 0; | ||
145 | |||
146 | chip_config = spi->controller_data; | ||
147 | if (!chip_config) { | ||
148 | chip_config = (void *)&mtk_default_chip_info; | ||
149 | spi->controller_data = chip_config; | ||
150 | } | ||
151 | |||
152 | reg_val = readl(mdata->base + SPI_CMD_REG); | ||
153 | if (cpha) | ||
154 | reg_val |= SPI_CMD_CPHA; | ||
155 | else | ||
156 | reg_val &= ~SPI_CMD_CPHA; | ||
157 | if (cpol) | ||
158 | reg_val |= SPI_CMD_CPOL; | ||
159 | else | ||
160 | reg_val &= ~SPI_CMD_CPOL; | ||
161 | writel(reg_val, mdata->base + SPI_CMD_REG); | ||
138 | 162 | ||
139 | reg_val = readl(mdata->base + SPI_CMD_REG); | 163 | reg_val = readl(mdata->base + SPI_CMD_REG); |
140 | 164 | ||
@@ -171,37 +195,6 @@ static void mtk_spi_config(struct mtk_spi *mdata, | |||
171 | /* pad select */ | 195 | /* pad select */ |
172 | if (mdata->dev_comp->need_pad_sel) | 196 | if (mdata->dev_comp->need_pad_sel) |
173 | writel(mdata->pad_sel, mdata->base + SPI_PAD_SEL_REG); | 197 | writel(mdata->pad_sel, mdata->base + SPI_PAD_SEL_REG); |
174 | } | ||
175 | |||
176 | static int mtk_spi_prepare_message(struct spi_master *master, | ||
177 | struct spi_message *msg) | ||
178 | { | ||
179 | u32 reg_val; | ||
180 | u8 cpha, cpol; | ||
181 | struct mtk_chip_config *chip_config; | ||
182 | struct spi_device *spi = msg->spi; | ||
183 | struct mtk_spi *mdata = spi_master_get_devdata(master); | ||
184 | |||
185 | cpha = spi->mode & SPI_CPHA ? 1 : 0; | ||
186 | cpol = spi->mode & SPI_CPOL ? 1 : 0; | ||
187 | |||
188 | reg_val = readl(mdata->base + SPI_CMD_REG); | ||
189 | if (cpha) | ||
190 | reg_val |= SPI_CMD_CPHA; | ||
191 | else | ||
192 | reg_val &= ~SPI_CMD_CPHA; | ||
193 | if (cpol) | ||
194 | reg_val |= SPI_CMD_CPOL; | ||
195 | else | ||
196 | reg_val &= ~SPI_CMD_CPOL; | ||
197 | writel(reg_val, mdata->base + SPI_CMD_REG); | ||
198 | |||
199 | chip_config = spi->controller_data; | ||
200 | if (!chip_config) { | ||
201 | chip_config = (void *)&mtk_default_chip_info; | ||
202 | spi->controller_data = chip_config; | ||
203 | } | ||
204 | mtk_spi_config(mdata, chip_config); | ||
205 | 198 | ||
206 | return 0; | 199 | return 0; |
207 | } | 200 | } |