|
@@ -75,9 +75,6 @@ struct atcspi200_spi_regs {
|
|
|
};
|
|
|
|
|
|
struct nds_spi_slave {
|
|
|
-#ifndef CONFIG_DM_SPI
|
|
|
- struct spi_slave slave;
|
|
|
-#endif
|
|
|
volatile struct atcspi200_spi_regs *regs;
|
|
|
int to;
|
|
|
unsigned int freq;
|
|
@@ -286,89 +283,6 @@ static int __atcspi200_spi_xfer(struct nds_spi_slave *ns,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-#ifndef CONFIG_DM_SPI
|
|
|
-#define to_nds_spi_slave(s) container_of(s, struct nds_spi_slave, slave)
|
|
|
-struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
|
|
|
- unsigned int max_hz, unsigned int mode)
|
|
|
-{
|
|
|
- struct nds_spi_slave *ns;
|
|
|
-
|
|
|
- if (!spi_cs_is_valid(bus, cs))
|
|
|
- return NULL;
|
|
|
-
|
|
|
- ns = spi_alloc_slave(struct nds_spi_slave, bus, cs);
|
|
|
- if (!ns)
|
|
|
- return NULL;
|
|
|
-
|
|
|
- switch (bus) {
|
|
|
- case SPI0_BUS:
|
|
|
- ns->regs = (struct atcspi200_spi_regs *)SPI0_BASE;
|
|
|
- break;
|
|
|
-
|
|
|
- case SPI1_BUS:
|
|
|
- ns->regs = (struct atcspi200_spi_regs *)SPI1_BASE;
|
|
|
- break;
|
|
|
-
|
|
|
- default:
|
|
|
- return NULL;
|
|
|
- }
|
|
|
-
|
|
|
- ns->freq= max_hz;
|
|
|
- ns->mode = mode;
|
|
|
- ns->to = SPI_TIMEOUT;
|
|
|
- ns->max_transfer_length = MAX_TRANSFER_LEN;
|
|
|
- ns->slave.max_write_size = MAX_TRANSFER_LEN;
|
|
|
-
|
|
|
- return &ns->slave;
|
|
|
-}
|
|
|
-
|
|
|
-void spi_free_slave(struct spi_slave *slave)
|
|
|
-{
|
|
|
- struct nds_spi_slave *ns = to_nds_spi_slave(slave);
|
|
|
- free(ns);
|
|
|
-}
|
|
|
-
|
|
|
-void spi_init(void)
|
|
|
-{
|
|
|
- /* do nothing */
|
|
|
-}
|
|
|
-
|
|
|
-int spi_claim_bus(struct spi_slave *slave)
|
|
|
-{
|
|
|
- struct nds_spi_slave *ns = to_nds_spi_slave(slave);
|
|
|
- return __atcspi200_spi_claim_bus(ns);
|
|
|
-}
|
|
|
-
|
|
|
-void spi_release_bus(struct spi_slave *slave)
|
|
|
-{
|
|
|
- struct nds_spi_slave *ns = to_nds_spi_slave(slave);
|
|
|
- __atcspi200_spi_release_bus(ns);
|
|
|
-}
|
|
|
-
|
|
|
-int spi_xfer(struct spi_slave *slave, unsigned int bitlen, const void *data_out,
|
|
|
- void *data_in, unsigned long flags)
|
|
|
-{
|
|
|
- struct nds_spi_slave *ns = to_nds_spi_slave(slave);
|
|
|
- return __atcspi200_spi_xfer(ns, bitlen, data_out, data_in, flags);
|
|
|
-}
|
|
|
-
|
|
|
-int spi_cs_is_valid(unsigned int bus, unsigned int cs)
|
|
|
-{
|
|
|
- return bus == 0 && cs < NSPI_MAX_CS_NUM;
|
|
|
-}
|
|
|
-
|
|
|
-void spi_cs_activate(struct spi_slave *slave)
|
|
|
-{
|
|
|
- struct nds_spi_slave *ns = to_nds_spi_slave(slave);
|
|
|
- __atcspi200_spi_start(ns);
|
|
|
-}
|
|
|
-
|
|
|
-void spi_cs_deactivate(struct spi_slave *slave)
|
|
|
-{
|
|
|
- struct nds_spi_slave *ns = to_nds_spi_slave(slave);
|
|
|
- __atcspi200_spi_stop(ns);
|
|
|
-}
|
|
|
-#else
|
|
|
static int atcspi200_spi_set_speed(struct udevice *bus, uint max_hz)
|
|
|
{
|
|
|
struct nds_spi_slave *ns = dev_get_priv(bus);
|
|
@@ -496,4 +410,3 @@ U_BOOT_DRIVER(atcspi200_spi) = {
|
|
|
.priv_auto_alloc_size = sizeof(struct nds_spi_slave),
|
|
|
.probe = atcspi200_spi_probe,
|
|
|
};
|
|
|
-#endif
|