aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi
diff options
context:
space:
mode:
authorHeiner Kallweit <hkallweit1@gmail.com>2016-09-13 17:16:02 -0400
committerMark Brown <broonie@kernel.org>2016-09-14 13:24:47 -0400
commit46afd38b7de347fd329767957886901ee9912d7a (patch)
treed0c1bf02c11ee07343347a92627cb74789ddf2cd /drivers/spi
parent35f5d71e38f2c0a9e7fdfbe0e9527efc712cfbcf (diff)
spi: fsl-espi: align register access with other drivers
Change register access to the method used in other drivers too. - use register names as in the chip spec for constants - avoid hard to read statements like __be32 __iomem *espi_mode = &reg_base->mode - get rid of old powerpc-specific functions like in_8 In addition annotate reg_base in struct mpc8xxx_spi as __iomem. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/spi')
-rw-r--r--drivers/spi/spi-fsl-espi.c135
-rw-r--r--drivers/spi/spi-fsl-lib.h2
2 files changed, 73 insertions, 64 deletions
diff --git a/drivers/spi/spi-fsl-espi.c b/drivers/spi/spi-fsl-espi.c
index 032bf3af8388..328b04a36328 100644
--- a/drivers/spi/spi-fsl-espi.c
+++ b/drivers/spi/spi-fsl-espi.c
@@ -26,16 +26,15 @@
26#include "spi-fsl-lib.h" 26#include "spi-fsl-lib.h"
27 27
28/* eSPI Controller registers */ 28/* eSPI Controller registers */
29struct fsl_espi_reg { 29#define ESPI_SPMODE 0x00 /* eSPI mode register */
30 __be32 mode; /* 0x000 - eSPI mode register */ 30#define ESPI_SPIE 0x04 /* eSPI event register */
31 __be32 event; /* 0x004 - eSPI event register */ 31#define ESPI_SPIM 0x08 /* eSPI mask register */
32 __be32 mask; /* 0x008 - eSPI mask register */ 32#define ESPI_SPCOM 0x0c /* eSPI command register */
33 __be32 command; /* 0x00c - eSPI command register */ 33#define ESPI_SPITF 0x10 /* eSPI transmit FIFO access register*/
34 __be32 transmit; /* 0x010 - eSPI transmit FIFO access register*/ 34#define ESPI_SPIRF 0x14 /* eSPI receive FIFO access register*/
35 __be32 receive; /* 0x014 - eSPI receive FIFO access register*/ 35#define ESPI_SPMODE0 0x20 /* eSPI cs0 mode register */
36 u8 res[8]; /* 0x018 - 0x01c reserved */ 36
37 __be32 csmode[4]; /* 0x020 - 0x02c eSPI cs mode register */ 37#define ESPI_SPMODEx(x) (ESPI_SPMODE0 + (x) * 4)
38};
39 38
40/* eSPI Controller mode register definitions */ 39/* eSPI Controller mode register definitions */
41#define SPMODE_ENABLE (1 << 31) 40#define SPMODE_ENABLE (1 << 31)
@@ -77,6 +76,28 @@ struct fsl_espi_reg {
77 76
78#define AUTOSUSPEND_TIMEOUT 2000 77#define AUTOSUSPEND_TIMEOUT 2000
79 78
79static inline u32 fsl_espi_read_reg(struct mpc8xxx_spi *mspi, int offset)
80{
81 return ioread32be(mspi->reg_base + offset);
82}
83
84static inline u8 fsl_espi_read_reg8(struct mpc8xxx_spi *mspi, int offset)
85{
86 return ioread8(mspi->reg_base + offset);
87}
88
89static inline void fsl_espi_write_reg(struct mpc8xxx_spi *mspi, int offset,
90 u32 val)
91{
92 iowrite32be(val, mspi->reg_base + offset);
93}
94
95static inline void fsl_espi_write_reg8(struct mpc8xxx_spi *mspi, int offset,
96 u8 val)
97{
98 iowrite8(val, mspi->reg_base + offset);
99}
100
80static void fsl_espi_copy_to_buf(struct spi_message *m, 101static void fsl_espi_copy_to_buf(struct spi_message *m,
81 struct mpc8xxx_spi *mspi) 102 struct mpc8xxx_spi *mspi)
82{ 103{
@@ -133,9 +154,6 @@ static void fsl_espi_change_mode(struct spi_device *spi)
133{ 154{
134 struct mpc8xxx_spi *mspi = spi_master_get_devdata(spi->master); 155 struct mpc8xxx_spi *mspi = spi_master_get_devdata(spi->master);
135 struct spi_mpc8xxx_cs *cs = spi->controller_state; 156 struct spi_mpc8xxx_cs *cs = spi->controller_state;
136 struct fsl_espi_reg *reg_base = mspi->reg_base;
137 __be32 __iomem *mode = &reg_base->csmode[spi->chip_select];
138 __be32 __iomem *espi_mode = &reg_base->mode;
139 u32 tmp; 157 u32 tmp;
140 unsigned long flags; 158 unsigned long flags;
141 159
@@ -143,10 +161,11 @@ static void fsl_espi_change_mode(struct spi_device *spi)
143 local_irq_save(flags); 161 local_irq_save(flags);
144 162
145 /* Turn off SPI unit prior changing mode */ 163 /* Turn off SPI unit prior changing mode */
146 tmp = mpc8xxx_spi_read_reg(espi_mode); 164 tmp = fsl_espi_read_reg(mspi, ESPI_SPMODE);
147 mpc8xxx_spi_write_reg(espi_mode, tmp & ~SPMODE_ENABLE); 165 fsl_espi_write_reg(mspi, ESPI_SPMODE, tmp & ~SPMODE_ENABLE);
148 mpc8xxx_spi_write_reg(mode, cs->hw_mode); 166 fsl_espi_write_reg(mspi, ESPI_SPMODEx(spi->chip_select),
149 mpc8xxx_spi_write_reg(espi_mode, tmp); 167 cs->hw_mode);
168 fsl_espi_write_reg(mspi, ESPI_SPMODE, tmp);
150 169
151 local_irq_restore(flags); 170 local_irq_restore(flags);
152} 171}
@@ -228,7 +247,6 @@ static void fsl_espi_setup_transfer(struct spi_device *spi,
228static int fsl_espi_bufs(struct spi_device *spi, struct spi_transfer *t) 247static int fsl_espi_bufs(struct spi_device *spi, struct spi_transfer *t)
229{ 248{
230 struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(spi->master); 249 struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(spi->master);
231 struct fsl_espi_reg *reg_base = mpc8xxx_spi->reg_base;
232 u32 word; 250 u32 word;
233 int ret; 251 int ret;
234 252
@@ -241,15 +259,15 @@ static int fsl_espi_bufs(struct spi_device *spi, struct spi_transfer *t)
241 reinit_completion(&mpc8xxx_spi->done); 259 reinit_completion(&mpc8xxx_spi->done);
242 260
243 /* Set SPCOM[CS] and SPCOM[TRANLEN] field */ 261 /* Set SPCOM[CS] and SPCOM[TRANLEN] field */
244 mpc8xxx_spi_write_reg(&reg_base->command, 262 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPCOM,
245 (SPCOM_CS(spi->chip_select) | SPCOM_TRANLEN(t->len - 1))); 263 (SPCOM_CS(spi->chip_select) | SPCOM_TRANLEN(t->len - 1)));
246 264
247 /* enable rx ints */ 265 /* enable rx ints */
248 mpc8xxx_spi_write_reg(&reg_base->mask, SPIM_NE); 266 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPIM, SPIM_NE);
249 267
250 /* transmit word */ 268 /* transmit word */
251 word = mpc8xxx_spi->get_tx(mpc8xxx_spi); 269 word = mpc8xxx_spi->get_tx(mpc8xxx_spi);
252 mpc8xxx_spi_write_reg(&reg_base->transmit, word); 270 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPITF, word);
253 271
254 /* Won't hang up forever, SPI bus sometimes got lost interrupts... */ 272 /* Won't hang up forever, SPI bus sometimes got lost interrupts... */
255 ret = wait_for_completion_timeout(&mpc8xxx_spi->done, 2 * HZ); 273 ret = wait_for_completion_timeout(&mpc8xxx_spi->done, 2 * HZ);
@@ -259,7 +277,7 @@ static int fsl_espi_bufs(struct spi_device *spi, struct spi_transfer *t)
259 mpc8xxx_spi->count); 277 mpc8xxx_spi->count);
260 278
261 /* disable rx ints */ 279 /* disable rx ints */
262 mpc8xxx_spi_write_reg(&reg_base->mask, 0); 280 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPIM, 0);
263 281
264 return mpc8xxx_spi->count > 0 ? -EMSGSIZE : 0; 282 return mpc8xxx_spi->count > 0 ? -EMSGSIZE : 0;
265} 283}
@@ -329,7 +347,6 @@ out:
329static int fsl_espi_setup(struct spi_device *spi) 347static int fsl_espi_setup(struct spi_device *spi)
330{ 348{
331 struct mpc8xxx_spi *mpc8xxx_spi; 349 struct mpc8xxx_spi *mpc8xxx_spi;
332 struct fsl_espi_reg *reg_base;
333 u32 hw_mode; 350 u32 hw_mode;
334 u32 loop_mode; 351 u32 loop_mode;
335 struct spi_mpc8xxx_cs *cs = spi_get_ctldata(spi); 352 struct spi_mpc8xxx_cs *cs = spi_get_ctldata(spi);
@@ -345,13 +362,12 @@ static int fsl_espi_setup(struct spi_device *spi)
345 } 362 }
346 363
347 mpc8xxx_spi = spi_master_get_devdata(spi->master); 364 mpc8xxx_spi = spi_master_get_devdata(spi->master);
348 reg_base = mpc8xxx_spi->reg_base;
349 365
350 pm_runtime_get_sync(mpc8xxx_spi->dev); 366 pm_runtime_get_sync(mpc8xxx_spi->dev);
351 367
352 hw_mode = cs->hw_mode; /* Save original settings */ 368 hw_mode = cs->hw_mode; /* Save original settings */
353 cs->hw_mode = mpc8xxx_spi_read_reg( 369 cs->hw_mode = fsl_espi_read_reg(mpc8xxx_spi,
354 &reg_base->csmode[spi->chip_select]); 370 ESPI_SPMODEx(spi->chip_select));
355 /* mask out bits we are going to set */ 371 /* mask out bits we are going to set */
356 cs->hw_mode &= ~(CSMODE_CP_BEGIN_EDGECLK | CSMODE_CI_INACTIVEHIGH 372 cs->hw_mode &= ~(CSMODE_CP_BEGIN_EDGECLK | CSMODE_CI_INACTIVEHIGH
357 | CSMODE_REV); 373 | CSMODE_REV);
@@ -364,11 +380,11 @@ static int fsl_espi_setup(struct spi_device *spi)
364 cs->hw_mode |= CSMODE_REV; 380 cs->hw_mode |= CSMODE_REV;
365 381
366 /* Handle the loop mode */ 382 /* Handle the loop mode */
367 loop_mode = mpc8xxx_spi_read_reg(&reg_base->mode); 383 loop_mode = fsl_espi_read_reg(mpc8xxx_spi, ESPI_SPMODE);
368 loop_mode &= ~SPMODE_LOOP; 384 loop_mode &= ~SPMODE_LOOP;
369 if (spi->mode & SPI_LOOP) 385 if (spi->mode & SPI_LOOP)
370 loop_mode |= SPMODE_LOOP; 386 loop_mode |= SPMODE_LOOP;
371 mpc8xxx_spi_write_reg(&reg_base->mode, loop_mode); 387 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODE, loop_mode);
372 388
373 fsl_espi_setup_transfer(spi, NULL); 389 fsl_espi_setup_transfer(spi, NULL);
374 390
@@ -388,8 +404,6 @@ static void fsl_espi_cleanup(struct spi_device *spi)
388 404
389static void fsl_espi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events) 405static void fsl_espi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events)
390{ 406{
391 struct fsl_espi_reg *reg_base = mspi->reg_base;
392
393 /* We need handle RX first */ 407 /* We need handle RX first */
394 if (events & SPIE_NE) { 408 if (events & SPIE_NE) {
395 u32 rx_data, tmp; 409 u32 rx_data, tmp;
@@ -401,7 +415,7 @@ static void fsl_espi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events)
401 if (SPIE_RXCNT(events) < min(4, mspi->len)) { 415 if (SPIE_RXCNT(events) < min(4, mspi->len)) {
402 ret = spin_event_timeout( 416 ret = spin_event_timeout(
403 !(SPIE_RXCNT(events = 417 !(SPIE_RXCNT(events =
404 mpc8xxx_spi_read_reg(&reg_base->event)) < 418 fsl_espi_read_reg(mspi, ESPI_SPIE)) <
405 min(4, mspi->len)), 419 min(4, mspi->len)),
406 10000, 0); /* 10 msec */ 420 10000, 0); /* 10 msec */
407 if (!ret) 421 if (!ret)
@@ -410,7 +424,7 @@ static void fsl_espi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events)
410 } 424 }
411 425
412 if (mspi->len >= 4) { 426 if (mspi->len >= 4) {
413 rx_data = mpc8xxx_spi_read_reg(&reg_base->receive); 427 rx_data = fsl_espi_read_reg(mspi, ESPI_SPIRF);
414 } else if (mspi->len <= 0) { 428 } else if (mspi->len <= 0) {
415 dev_err(mspi->dev, 429 dev_err(mspi->dev,
416 "unexpected RX(SPIE_NE) interrupt occurred,\n" 430 "unexpected RX(SPIE_NE) interrupt occurred,\n"
@@ -422,7 +436,8 @@ static void fsl_espi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events)
422 tmp = mspi->len; 436 tmp = mspi->len;
423 rx_data = 0; 437 rx_data = 0;
424 while (tmp--) { 438 while (tmp--) {
425 rx_data_8 = in_8((u8 *)&reg_base->receive); 439 rx_data_8 = fsl_espi_read_reg8(mspi,
440 ESPI_SPIRF);
426 rx_data |= (rx_data_8 << (tmp * 8)); 441 rx_data |= (rx_data_8 << (tmp * 8));
427 } 442 }
428 443
@@ -439,8 +454,8 @@ static void fsl_espi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events)
439 int ret; 454 int ret;
440 455
441 /* spin until TX is done */ 456 /* spin until TX is done */
442 ret = spin_event_timeout(((events = mpc8xxx_spi_read_reg( 457 ret = spin_event_timeout(((events = fsl_espi_read_reg(
443 &reg_base->event)) & SPIE_NF), 1000, 0); 458 mspi, ESPI_SPIE)) & SPIE_NF), 1000, 0);
444 if (!ret) { 459 if (!ret) {
445 dev_err(mspi->dev, "tired waiting for SPIE_NF\n"); 460 dev_err(mspi->dev, "tired waiting for SPIE_NF\n");
446 complete(&mspi->done); 461 complete(&mspi->done);
@@ -452,7 +467,7 @@ static void fsl_espi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events)
452 if (mspi->count) { 467 if (mspi->count) {
453 u32 word = mspi->get_tx(mspi); 468 u32 word = mspi->get_tx(mspi);
454 469
455 mpc8xxx_spi_write_reg(&reg_base->transmit, word); 470 fsl_espi_write_reg(mspi, ESPI_SPITF, word);
456 } else { 471 } else {
457 complete(&mspi->done); 472 complete(&mspi->done);
458 } 473 }
@@ -461,11 +476,10 @@ static void fsl_espi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events)
461static irqreturn_t fsl_espi_irq(s32 irq, void *context_data) 476static irqreturn_t fsl_espi_irq(s32 irq, void *context_data)
462{ 477{
463 struct mpc8xxx_spi *mspi = context_data; 478 struct mpc8xxx_spi *mspi = context_data;
464 struct fsl_espi_reg *reg_base = mspi->reg_base;
465 u32 events; 479 u32 events;
466 480
467 /* Get interrupt events(tx/rx) */ 481 /* Get interrupt events(tx/rx) */
468 events = mpc8xxx_spi_read_reg(&reg_base->event); 482 events = fsl_espi_read_reg(mspi, ESPI_SPIE);
469 if (!events) 483 if (!events)
470 return IRQ_NONE; 484 return IRQ_NONE;
471 485
@@ -474,7 +488,7 @@ static irqreturn_t fsl_espi_irq(s32 irq, void *context_data)
474 fsl_espi_cpu_irq(mspi, events); 488 fsl_espi_cpu_irq(mspi, events);
475 489
476 /* Clear the events */ 490 /* Clear the events */
477 mpc8xxx_spi_write_reg(&reg_base->event, events); 491 fsl_espi_write_reg(mspi, ESPI_SPIE, events);
478 492
479 return IRQ_HANDLED; 493 return IRQ_HANDLED;
480} 494}
@@ -484,12 +498,11 @@ static int fsl_espi_runtime_suspend(struct device *dev)
484{ 498{
485 struct spi_master *master = dev_get_drvdata(dev); 499 struct spi_master *master = dev_get_drvdata(dev);
486 struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(master); 500 struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(master);
487 struct fsl_espi_reg *reg_base = mpc8xxx_spi->reg_base;
488 u32 regval; 501 u32 regval;
489 502
490 regval = mpc8xxx_spi_read_reg(&reg_base->mode); 503 regval = fsl_espi_read_reg(mpc8xxx_spi, ESPI_SPMODE);
491 regval &= ~SPMODE_ENABLE; 504 regval &= ~SPMODE_ENABLE;
492 mpc8xxx_spi_write_reg(&reg_base->mode, regval); 505 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODE, regval);
493 506
494 return 0; 507 return 0;
495} 508}
@@ -498,12 +511,11 @@ static int fsl_espi_runtime_resume(struct device *dev)
498{ 511{
499 struct spi_master *master = dev_get_drvdata(dev); 512 struct spi_master *master = dev_get_drvdata(dev);
500 struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(master); 513 struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(master);
501 struct fsl_espi_reg *reg_base = mpc8xxx_spi->reg_base;
502 u32 regval; 514 u32 regval;
503 515
504 regval = mpc8xxx_spi_read_reg(&reg_base->mode); 516 regval = fsl_espi_read_reg(mpc8xxx_spi, ESPI_SPMODE);
505 regval |= SPMODE_ENABLE; 517 regval |= SPMODE_ENABLE;
506 mpc8xxx_spi_write_reg(&reg_base->mode, regval); 518 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODE, regval);
507 519
508 return 0; 520 return 0;
509} 521}
@@ -520,7 +532,6 @@ static struct spi_master * fsl_espi_probe(struct device *dev,
520 struct fsl_spi_platform_data *pdata = dev_get_platdata(dev); 532 struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
521 struct spi_master *master; 533 struct spi_master *master;
522 struct mpc8xxx_spi *mpc8xxx_spi; 534 struct mpc8xxx_spi *mpc8xxx_spi;
523 struct fsl_espi_reg *reg_base;
524 struct device_node *nc; 535 struct device_node *nc;
525 const __be32 *prop; 536 const __be32 *prop;
526 u32 regval, csmode; 537 u32 regval, csmode;
@@ -558,8 +569,6 @@ static struct spi_master * fsl_espi_probe(struct device *dev,
558 goto err_probe; 569 goto err_probe;
559 } 570 }
560 571
561 reg_base = mpc8xxx_spi->reg_base;
562
563 /* Register for SPI Interrupt */ 572 /* Register for SPI Interrupt */
564 ret = devm_request_irq(dev, mpc8xxx_spi->irq, fsl_espi_irq, 573 ret = devm_request_irq(dev, mpc8xxx_spi->irq, fsl_espi_irq,
565 0, "fsl_espi", mpc8xxx_spi); 574 0, "fsl_espi", mpc8xxx_spi);
@@ -572,10 +581,10 @@ static struct spi_master * fsl_espi_probe(struct device *dev,
572 } 581 }
573 582
574 /* SPI controller initializations */ 583 /* SPI controller initializations */
575 mpc8xxx_spi_write_reg(&reg_base->mode, 0); 584 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODE, 0);
576 mpc8xxx_spi_write_reg(&reg_base->mask, 0); 585 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPIM, 0);
577 mpc8xxx_spi_write_reg(&reg_base->command, 0); 586 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPCOM, 0);
578 mpc8xxx_spi_write_reg(&reg_base->event, 0xffffffff); 587 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPIE, 0xffffffff);
579 588
580 /* Init eSPI CS mode register */ 589 /* Init eSPI CS mode register */
581 for_each_available_child_of_node(master->dev.of_node, nc) { 590 for_each_available_child_of_node(master->dev.of_node, nc) {
@@ -600,7 +609,7 @@ static struct spi_master * fsl_espi_probe(struct device *dev,
600 csmode &= ~(CSMODE_AFT(0xf)); 609 csmode &= ~(CSMODE_AFT(0xf));
601 csmode |= CSMODE_AFT(be32_to_cpup(prop)); 610 csmode |= CSMODE_AFT(be32_to_cpup(prop));
602 } 611 }
603 mpc8xxx_spi_write_reg(&reg_base->csmode[i], csmode); 612 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODEx(i), csmode);
604 613
605 dev_info(dev, "cs=%d, init_csmode=0x%x\n", i, csmode); 614 dev_info(dev, "cs=%d, init_csmode=0x%x\n", i, csmode);
606 } 615 }
@@ -608,7 +617,7 @@ static struct spi_master * fsl_espi_probe(struct device *dev,
608 /* Enable SPI interface */ 617 /* Enable SPI interface */
609 regval = pdata->initial_spmode | SPMODE_INIT_VAL | SPMODE_ENABLE; 618 regval = pdata->initial_spmode | SPMODE_INIT_VAL | SPMODE_ENABLE;
610 619
611 mpc8xxx_spi_write_reg(&reg_base->mode, regval); 620 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODE, regval);
612 621
613 pm_runtime_set_autosuspend_delay(dev, AUTOSUSPEND_TIMEOUT); 622 pm_runtime_set_autosuspend_delay(dev, AUTOSUSPEND_TIMEOUT);
614 pm_runtime_use_autosuspend(dev); 623 pm_runtime_use_autosuspend(dev);
@@ -620,7 +629,8 @@ static struct spi_master * fsl_espi_probe(struct device *dev,
620 if (ret < 0) 629 if (ret < 0)
621 goto err_pm; 630 goto err_pm;
622 631
623 dev_info(dev, "at 0x%p (irq = %d)\n", reg_base, mpc8xxx_spi->irq); 632 dev_info(dev, "at 0x%p (irq = %d)\n", mpc8xxx_spi->reg_base,
633 mpc8xxx_spi->irq);
624 634
625 pm_runtime_mark_last_busy(dev); 635 pm_runtime_mark_last_busy(dev);
626 pm_runtime_put_autosuspend(dev); 636 pm_runtime_put_autosuspend(dev);
@@ -726,27 +736,26 @@ static int of_fsl_espi_resume(struct device *dev)
726 struct fsl_spi_platform_data *pdata = dev_get_platdata(dev); 736 struct fsl_spi_platform_data *pdata = dev_get_platdata(dev);
727 struct spi_master *master = dev_get_drvdata(dev); 737 struct spi_master *master = dev_get_drvdata(dev);
728 struct mpc8xxx_spi *mpc8xxx_spi; 738 struct mpc8xxx_spi *mpc8xxx_spi;
729 struct fsl_espi_reg *reg_base;
730 u32 regval; 739 u32 regval;
731 int i, ret; 740 int i, ret;
732 741
733 mpc8xxx_spi = spi_master_get_devdata(master); 742 mpc8xxx_spi = spi_master_get_devdata(master);
734 reg_base = mpc8xxx_spi->reg_base;
735 743
736 /* SPI controller initializations */ 744 /* SPI controller initializations */
737 mpc8xxx_spi_write_reg(&reg_base->mode, 0); 745 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODE, 0);
738 mpc8xxx_spi_write_reg(&reg_base->mask, 0); 746 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPIM, 0);
739 mpc8xxx_spi_write_reg(&reg_base->command, 0); 747 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPCOM, 0);
740 mpc8xxx_spi_write_reg(&reg_base->event, 0xffffffff); 748 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPIE, 0xffffffff);
741 749
742 /* Init eSPI CS mode register */ 750 /* Init eSPI CS mode register */
743 for (i = 0; i < pdata->max_chipselect; i++) 751 for (i = 0; i < pdata->max_chipselect; i++)
744 mpc8xxx_spi_write_reg(&reg_base->csmode[i], CSMODE_INIT_VAL); 752 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODEx(i),
753 CSMODE_INIT_VAL);
745 754
746 /* Enable SPI interface */ 755 /* Enable SPI interface */
747 regval = pdata->initial_spmode | SPMODE_INIT_VAL | SPMODE_ENABLE; 756 regval = pdata->initial_spmode | SPMODE_INIT_VAL | SPMODE_ENABLE;
748 757
749 mpc8xxx_spi_write_reg(&reg_base->mode, regval); 758 fsl_espi_write_reg(mpc8xxx_spi, ESPI_SPMODE, regval);
750 759
751 ret = pm_runtime_force_resume(dev); 760 ret = pm_runtime_force_resume(dev);
752 if (ret < 0) 761 if (ret < 0)
diff --git a/drivers/spi/spi-fsl-lib.h b/drivers/spi/spi-fsl-lib.h
index 065b9db212cf..2925c8089fd9 100644
--- a/drivers/spi/spi-fsl-lib.h
+++ b/drivers/spi/spi-fsl-lib.h
@@ -23,7 +23,7 @@
23/* SPI/eSPI Controller driver's private data. */ 23/* SPI/eSPI Controller driver's private data. */
24struct mpc8xxx_spi { 24struct mpc8xxx_spi {
25 struct device *dev; 25 struct device *dev;
26 void *reg_base; 26 void __iomem *reg_base;
27 27
28 /* rx & tx bufs from the spi_transfer */ 28 /* rx & tx bufs from the spi_transfer */
29 const void *tx; 29 const void *tx;