mirror of
https://xff.cz/git/u-boot/
synced 2025-09-02 17:22:22 +02:00
m68k: move dspi bus control functions into cf_spi.c driver
This patches move dspi bus-related operations into more proper location, to avoid the driver to declares them as externs. Signed-off-by: Angelo Dureghello <angelo@sysam.it>
This commit is contained in:
committed by
Tom Rini
parent
abe0f87999
commit
cd3b0717ba
@@ -16,6 +16,15 @@
|
|||||||
#include <asm/rtc.h>
|
#include <asm/rtc.h>
|
||||||
#include <linux/compiler.h>
|
#include <linux/compiler.h>
|
||||||
|
|
||||||
|
void cfspi_port_conf(void)
|
||||||
|
{
|
||||||
|
gpio_t *gpio = (gpio_t *)MMAP_GPIO;
|
||||||
|
|
||||||
|
out_8(&gpio->par_dspi,
|
||||||
|
GPIO_PAR_DSPI_SIN_SIN | GPIO_PAR_DSPI_SOUT_SOUT |
|
||||||
|
GPIO_PAR_DSPI_SCK_SCK);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Breath some life into the CPU...
|
* Breath some life into the CPU...
|
||||||
*
|
*
|
||||||
@@ -93,6 +102,8 @@ void cpu_init_f(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
icache_enable();
|
icache_enable();
|
||||||
|
|
||||||
|
cfspi_port_conf();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -137,57 +148,3 @@ void uart_port_conf(int port)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_CF_DSPI
|
|
||||||
void cfspi_port_conf(void)
|
|
||||||
{
|
|
||||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
|
||||||
|
|
||||||
out_8(&gpio->par_dspi,
|
|
||||||
GPIO_PAR_DSPI_SIN_SIN | GPIO_PAR_DSPI_SOUT_SOUT |
|
|
||||||
GPIO_PAR_DSPI_SCK_SCK);
|
|
||||||
}
|
|
||||||
|
|
||||||
int cfspi_claim_bus(uint bus, uint cs)
|
|
||||||
{
|
|
||||||
dspi_t *dspi = (dspi_t *) MMAP_DSPI;
|
|
||||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
|
||||||
|
|
||||||
if ((in_be32(&dspi->sr) & DSPI_SR_TXRXS) != DSPI_SR_TXRXS)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
/* Clear FIFO and resume transfer */
|
|
||||||
clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
|
|
||||||
|
|
||||||
switch (cs) {
|
|
||||||
case 0:
|
|
||||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_UNMASK);
|
|
||||||
setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
clrbits_8(&gpio->par_timer, ~GPIO_PAR_TIMER_T2IN_UNMASK);
|
|
||||||
setbits_8(&gpio->par_timer, GPIO_PAR_TIMER_T2IN_DSPIPCS2);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void cfspi_release_bus(uint bus, uint cs)
|
|
||||||
{
|
|
||||||
dspi_t *dspi = (dspi_t *) MMAP_DSPI;
|
|
||||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
|
||||||
|
|
||||||
/* Clear FIFO */
|
|
||||||
clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
|
|
||||||
|
|
||||||
switch (cs) {
|
|
||||||
case 0:
|
|
||||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
clrbits_8(&gpio->par_timer, ~GPIO_PAR_TIMER_T2IN_UNMASK);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
@@ -66,6 +66,32 @@ void init_fbcs(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_CF_DSPI
|
||||||
|
void cfspi_port_conf(void)
|
||||||
|
{
|
||||||
|
gpio_t *gpio = (gpio_t *)MMAP_GPIO;
|
||||||
|
|
||||||
|
#ifdef CONFIG_MCF5445x
|
||||||
|
out_8(&gpio->par_dspi,
|
||||||
|
GPIO_PAR_DSPI_SIN_SIN |
|
||||||
|
GPIO_PAR_DSPI_SOUT_SOUT |
|
||||||
|
GPIO_PAR_DSPI_SCK_SCK);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_MCF5441x
|
||||||
|
pm_t *pm = (pm_t *)MMAP_PM;
|
||||||
|
|
||||||
|
out_8(&gpio->par_dspi0,
|
||||||
|
GPIO_PAR_DSPI0_SIN_DSPI0SIN | GPIO_PAR_DSPI0_SOUT_DSPI0SOUT |
|
||||||
|
GPIO_PAR_DSPI0_SCK_DSPI0SCK);
|
||||||
|
out_8(&gpio->srcr_dspiow, 3);
|
||||||
|
|
||||||
|
/* DSPI0 */
|
||||||
|
out_8(&pm->pmcr0, 23);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Breath some life into the CPU...
|
* Breath some life into the CPU...
|
||||||
*
|
*
|
||||||
@@ -204,6 +230,10 @@ void cpu_init_f(void)
|
|||||||
GPIO_PAR_FBCTL_OE | GPIO_PAR_FBCTL_TA_TA |
|
GPIO_PAR_FBCTL_OE | GPIO_PAR_FBCTL_TA_TA |
|
||||||
GPIO_PAR_FBCTL_RW_RW | GPIO_PAR_FBCTL_TS_TS);
|
GPIO_PAR_FBCTL_RW_RW | GPIO_PAR_FBCTL_TS_TS);
|
||||||
|
|
||||||
|
#ifdef CONFIG_CF_SPI
|
||||||
|
cfspi_port_conf();
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_SYS_FSL_I2C
|
#ifdef CONFIG_SYS_FSL_I2C
|
||||||
out_be16(&gpio->par_feci2c,
|
out_be16(&gpio->par_feci2c,
|
||||||
GPIO_PAR_FECI2C_SCL_SCL | GPIO_PAR_FECI2C_SDA_SDA);
|
GPIO_PAR_FECI2C_SCL_SCL | GPIO_PAR_FECI2C_SDA_SDA);
|
||||||
@@ -433,115 +463,3 @@ int fecpin_setclear(struct eth_device *dev, int setclear)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_CF_DSPI
|
|
||||||
void cfspi_port_conf(void)
|
|
||||||
{
|
|
||||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
|
||||||
|
|
||||||
#ifdef CONFIG_MCF5445x
|
|
||||||
out_8(&gpio->par_dspi,
|
|
||||||
GPIO_PAR_DSPI_SIN_SIN |
|
|
||||||
GPIO_PAR_DSPI_SOUT_SOUT |
|
|
||||||
GPIO_PAR_DSPI_SCK_SCK);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_MCF5441x
|
|
||||||
pm_t *pm = (pm_t *) MMAP_PM;
|
|
||||||
|
|
||||||
out_8(&gpio->par_dspi0,
|
|
||||||
GPIO_PAR_DSPI0_SIN_DSPI0SIN | GPIO_PAR_DSPI0_SOUT_DSPI0SOUT |
|
|
||||||
GPIO_PAR_DSPI0_SCK_DSPI0SCK);
|
|
||||||
out_8(&gpio->srcr_dspiow, 3);
|
|
||||||
|
|
||||||
/* DSPI0 */
|
|
||||||
out_8(&pm->pmcr0, 23);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
int cfspi_claim_bus(uint bus, uint cs)
|
|
||||||
{
|
|
||||||
dspi_t *dspi = (dspi_t *) MMAP_DSPI;
|
|
||||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
|
||||||
|
|
||||||
if ((in_be32(&dspi->sr) & DSPI_SR_TXRXS) != DSPI_SR_TXRXS)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
/* Clear FIFO and resume transfer */
|
|
||||||
clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
|
|
||||||
|
|
||||||
#ifdef CONFIG_MCF5445x
|
|
||||||
switch (cs) {
|
|
||||||
case 0:
|
|
||||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
|
|
||||||
setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS1_PCS1);
|
|
||||||
setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS1_PCS1);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS2_PCS2);
|
|
||||||
setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS2_PCS2);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
clrbits_8(&gpio->par_dma, ~GPIO_PAR_DMA_DACK0_UNMASK);
|
|
||||||
setbits_8(&gpio->par_dma, GPIO_PAR_DMA_DACK0_PCS3);
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
|
|
||||||
setbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_MCF5441x
|
|
||||||
switch (cs) {
|
|
||||||
case 0:
|
|
||||||
clrbits_8(&gpio->par_dspi0, ~GPIO_PAR_DSPI0_PCS0_MASK);
|
|
||||||
setbits_8(&gpio->par_dspi0, GPIO_PAR_DSPI0_PCS0_DSPI0PCS0);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
clrbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
|
|
||||||
setbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void cfspi_release_bus(uint bus, uint cs)
|
|
||||||
{
|
|
||||||
dspi_t *dspi = (dspi_t *) MMAP_DSPI;
|
|
||||||
gpio_t *gpio = (gpio_t *) MMAP_GPIO;
|
|
||||||
|
|
||||||
/* Clear FIFO */
|
|
||||||
clrbits_be32(&dspi->mcr, DSPI_MCR_CTXF | DSPI_MCR_CRXF);
|
|
||||||
|
|
||||||
#ifdef CONFIG_MCF5445x
|
|
||||||
switch (cs) {
|
|
||||||
case 0:
|
|
||||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS0_PCS0);
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS1_PCS1);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS2_PCS2);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
clrbits_8(&gpio->par_dma, ~GPIO_PAR_DMA_DACK0_UNMASK);
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
clrbits_8(&gpio->par_dspi, GPIO_PAR_DSPI_PCS5_PCS5);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_MCF5441x
|
|
||||||
if (cs == 1)
|
|
||||||
clrbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
Reference in New Issue
Block a user