hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/spi/spi-sh-hspi.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0
12 /*
23 * SuperH HSPI bus driver
34 *
....@@ -7,15 +8,6 @@
78 * Based on pxa2xx_spi.c:
89 * Copyright (C) 2011 Renesas Solutions Corp.
910 * Copyright (C) 2005 Stephen Street / StreetFire Sound Labs
10
- *
11
- * This program is free software; you can redistribute it and/or modify
12
- * it under the terms of the GNU General Public License as published by
13
- * the Free Software Foundation; version 2 of the License.
14
- *
15
- * This program is distributed in the hope that it will be useful,
16
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
- * GNU General Public License for more details.
1911 */
2012
2113 #include <linux/clk.h>
....@@ -43,7 +35,7 @@
4335
4436 struct hspi_priv {
4537 void __iomem *addr;
46
- struct spi_master *master;
38
+ struct spi_controller *ctlr;
4739 struct device *dev;
4840 struct clk *clk;
4941 };
....@@ -148,10 +140,10 @@
148140 hspi_write(hspi, SPSCR, 0x21); /* master mode / CS control */
149141 }
150142
151
-static int hspi_transfer_one_message(struct spi_master *master,
143
+static int hspi_transfer_one_message(struct spi_controller *ctlr,
152144 struct spi_message *msg)
153145 {
154
- struct hspi_priv *hspi = spi_master_get_devdata(master);
146
+ struct hspi_priv *hspi = spi_controller_get_devdata(ctlr);
155147 struct spi_transfer *t;
156148 u32 tx;
157149 u32 rx;
....@@ -198,8 +190,7 @@
198190
199191 msg->actual_length += t->len;
200192
201
- if (t->delay_usecs)
202
- udelay(t->delay_usecs);
193
+ spi_transfer_delay_exec(t);
203194
204195 if (cs_change) {
205196 ndelay(nsecs);
....@@ -213,7 +204,7 @@
213204 ndelay(nsecs);
214205 hspi_hw_cs_disable(hspi);
215206 }
216
- spi_finalize_current_message(master);
207
+ spi_finalize_current_message(ctlr);
217208
218209 return ret;
219210 }
....@@ -221,7 +212,7 @@
221212 static int hspi_probe(struct platform_device *pdev)
222213 {
223214 struct resource *res;
224
- struct spi_master *master;
215
+ struct spi_controller *ctlr;
225216 struct hspi_priv *hspi;
226217 struct clk *clk;
227218 int ret;
....@@ -233,11 +224,9 @@
233224 return -EINVAL;
234225 }
235226
236
- master = spi_alloc_master(&pdev->dev, sizeof(*hspi));
237
- if (!master) {
238
- dev_err(&pdev->dev, "spi_alloc_master error.\n");
227
+ ctlr = spi_alloc_master(&pdev->dev, sizeof(*hspi));
228
+ if (!ctlr)
239229 return -ENOMEM;
240
- }
241230
242231 clk = clk_get(&pdev->dev, NULL);
243232 if (IS_ERR(clk)) {
....@@ -246,33 +235,32 @@
246235 goto error0;
247236 }
248237
249
- hspi = spi_master_get_devdata(master);
238
+ hspi = spi_controller_get_devdata(ctlr);
250239 platform_set_drvdata(pdev, hspi);
251240
252241 /* init hspi */
253
- hspi->master = master;
242
+ hspi->ctlr = ctlr;
254243 hspi->dev = &pdev->dev;
255244 hspi->clk = clk;
256245 hspi->addr = devm_ioremap(hspi->dev,
257246 res->start, resource_size(res));
258247 if (!hspi->addr) {
259
- dev_err(&pdev->dev, "ioremap error.\n");
260248 ret = -ENOMEM;
261249 goto error1;
262250 }
263251
264252 pm_runtime_enable(&pdev->dev);
265253
266
- master->bus_num = pdev->id;
267
- master->mode_bits = SPI_CPOL | SPI_CPHA;
268
- master->dev.of_node = pdev->dev.of_node;
269
- master->auto_runtime_pm = true;
270
- master->transfer_one_message = hspi_transfer_one_message;
271
- master->bits_per_word_mask = SPI_BPW_MASK(8);
254
+ ctlr->bus_num = pdev->id;
255
+ ctlr->mode_bits = SPI_CPOL | SPI_CPHA;
256
+ ctlr->dev.of_node = pdev->dev.of_node;
257
+ ctlr->auto_runtime_pm = true;
258
+ ctlr->transfer_one_message = hspi_transfer_one_message;
259
+ ctlr->bits_per_word_mask = SPI_BPW_MASK(8);
272260
273
- ret = devm_spi_register_master(&pdev->dev, master);
261
+ ret = devm_spi_register_controller(&pdev->dev, ctlr);
274262 if (ret < 0) {
275
- dev_err(&pdev->dev, "spi_register_master error.\n");
263
+ dev_err(&pdev->dev, "devm_spi_register_controller error.\n");
276264 goto error2;
277265 }
278266
....@@ -283,7 +271,7 @@
283271 error1:
284272 clk_put(clk);
285273 error0:
286
- spi_master_put(master);
274
+ spi_controller_put(ctlr);
287275
288276 return ret;
289277 }
....@@ -316,6 +304,6 @@
316304 module_platform_driver(hspi_driver);
317305
318306 MODULE_DESCRIPTION("SuperH HSPI bus driver");
319
-MODULE_LICENSE("GPL");
307
+MODULE_LICENSE("GPL v2");
320308 MODULE_AUTHOR("Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>");
321309 MODULE_ALIAS("platform:sh-hspi");