diff options
| -rw-r--r-- | arch/arm/cpu/arm926ejs/mxs/clock.c | 2 | ||||
| -rw-r--r-- | arch/arm/include/asm/arch-mxs/regs-ssp.h | 16 | ||||
| -rw-r--r-- | drivers/mmc/mxsmmc.c | 15 | ||||
| -rw-r--r-- | drivers/spi/mxs_spi.c | 5 | 
4 files changed, 19 insertions, 19 deletions
| diff --git a/arch/arm/cpu/arm926ejs/mxs/clock.c b/arch/arm/cpu/arm926ejs/mxs/clock.c index 4ff19c37e..5d6e12a28 100644 --- a/arch/arm/cpu/arm926ejs/mxs/clock.c +++ b/arch/arm/cpu/arm926ejs/mxs/clock.c @@ -278,7 +278,7 @@ void mx28_set_ssp_busclock(unsigned int bus, uint32_t freq)  	uint32_t reg;  	uint32_t divide, rate, tgtclk; -	ssp_regs = (struct mxs_ssp_regs *)(MXS_SSP0_BASE + (bus * 0x2000)); +	ssp_regs = mxs_ssp_regs_by_bus(bus);  	/*  	 * SSP bit rate = SSPCLK / (CLOCK_DIVIDE * (1 + CLOCK_RATE)), diff --git a/arch/arm/include/asm/arch-mxs/regs-ssp.h b/arch/arm/include/asm/arch-mxs/regs-ssp.h index cf52a28c3..4a7502922 100644 --- a/arch/arm/include/asm/arch-mxs/regs-ssp.h +++ b/arch/arm/include/asm/arch-mxs/regs-ssp.h @@ -50,6 +50,22 @@ struct mxs_ssp_regs {  	mxs_reg_32(hw_ssp_debug)  	mxs_reg_32(hw_ssp_version)  }; + +static inline struct mxs_ssp_regs *mxs_ssp_regs_by_bus(unsigned int port) +{ +	switch (port) { +	case 0: +		return (struct mxs_ssp_regs *)MXS_SSP0_BASE; +	case 1: +		return (struct mxs_ssp_regs *)MXS_SSP1_BASE; +	case 2: +		return (struct mxs_ssp_regs *)MXS_SSP2_BASE; +	case 3: +		return (struct mxs_ssp_regs *)MXS_SSP3_BASE; +	default: +		return NULL; +	} +}  #endif  #define	SSP_CTRL0_SFTRST			(1 << 31) diff --git a/drivers/mmc/mxsmmc.c b/drivers/mmc/mxsmmc.c index aa3d1b005..2fd9ccc18 100644 --- a/drivers/mmc/mxsmmc.c +++ b/drivers/mmc/mxsmmc.c @@ -380,20 +380,7 @@ int mxsmmc_initialize(bd_t *bis, int id, int (*wp)(int))  	priv->mmc_is_wp = wp;  	priv->id = id; -	switch (id) { -	case 0: -		priv->regs = (struct mxs_ssp_regs *)MXS_SSP0_BASE; -		break; -	case 1: -		priv->regs = (struct mxs_ssp_regs *)MXS_SSP1_BASE; -		break; -	case 2: -		priv->regs = (struct mxs_ssp_regs *)MXS_SSP2_BASE; -		break; -	case 3: -		priv->regs = (struct mxs_ssp_regs *)MXS_SSP3_BASE; -		break; -	} +	priv->regs = mxs_ssp_regs_by_bus(id);  	sprintf(mmc->name, "MXS MMC");  	mmc->send_cmd = mxsmmc_send_cmd; diff --git a/drivers/spi/mxs_spi.c b/drivers/spi/mxs_spi.c index 42e4c9952..31cd77d31 100644 --- a/drivers/spi/mxs_spi.c +++ b/drivers/spi/mxs_spi.c @@ -80,7 +80,6 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,  				  unsigned int max_hz, unsigned int mode)  {  	struct mxs_spi_slave *mxs_slave; -	uint32_t addr;  	struct mxs_ssp_regs *ssp_regs;  	int reg; @@ -96,13 +95,11 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,  	if (mxs_dma_init_channel(bus))  		goto err_init; -	addr = MXS_SSP0_BASE + (bus * MXS_SPI_PORT_OFFSET); -  	mxs_slave->slave.bus = bus;  	mxs_slave->slave.cs = cs;  	mxs_slave->max_khz = max_hz / 1000;  	mxs_slave->mode = mode; -	mxs_slave->regs = (struct mxs_ssp_regs *)addr; +	mxs_slave->regs = mxs_ssp_regs_by_bus(bus);  	ssp_regs = mxs_slave->regs;  	reg = readl(&ssp_regs->hw_ssp_ctrl0); |