summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r--drivers/spi/spi.c71
1 files changed, 36 insertions, 35 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 25bb988794..7756304f19 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -54,22 +54,22 @@ static LIST_HEAD(board_list);
*
* Returns the new device, or NULL.
*/
-struct spi_device *spi_new_device(struct spi_master *master,
+struct spi_device *spi_new_device(struct spi_controller *ctrl,
struct spi_board_info *chip)
{
struct spi_device *proxy;
int status;
/* Chipselects are numbered 0..max; validate. */
- if (chip->chip_select >= master->num_chipselect) {
+ if (chip->chip_select >= ctrl->num_chipselect) {
debug("cs%d > max %d\n",
chip->chip_select,
- master->num_chipselect);
+ ctrl->num_chipselect);
return NULL;
}
proxy = xzalloc(sizeof *proxy);
- proxy->master = master;
+ proxy->master = ctrl;
proxy->chip_select = chip->chip_select;
proxy->max_speed_hz = chip->max_speed_hz;
proxy->mode = chip->mode;
@@ -81,10 +81,11 @@ struct spi_device *spi_new_device(struct spi_master *master,
proxy->dev.id = DEVICE_ID_DYNAMIC;
proxy->dev.type_data = proxy;
proxy->dev.device_node = chip->device_node;
- proxy->dev.parent = master->dev;
+ proxy->dev.parent = ctrl->dev;
+ proxy->master = proxy->controller = ctrl;
/* drivers may modify this initial i/o setup */
- status = master->setup(proxy);
+ status = ctrl->setup(proxy);
if (status < 0) {
printf("can't setup %s, status %d\n",
proxy->dev.name, status);
@@ -100,12 +101,12 @@ fail:
}
EXPORT_SYMBOL(spi_new_device);
-static void spi_of_register_slaves(struct spi_master *master)
+static void spi_of_register_slaves(struct spi_controller *ctrl)
{
struct device_node *n;
struct spi_board_info chip;
struct property *reg;
- struct device_node *node = master->dev->device_node;
+ struct device_node *node = ctrl->dev->device_node;
if (!IS_ENABLED(CONFIG_OFDEVICE))
return;
@@ -116,7 +117,7 @@ static void spi_of_register_slaves(struct spi_master *master)
for_each_available_child_of_node(node, n) {
memset(&chip, 0, sizeof(chip));
chip.name = xstrdup(n->name);
- chip.bus_num = master->bus_num;
+ chip.bus_num = ctrl->bus_num;
/* Mode (clock phase/polarity/etc.) */
if (of_property_read_bool(n, "spi-cpha"))
chip.mode |= SPI_CPHA;
@@ -171,7 +172,7 @@ spi_register_board_info(struct spi_board_info const *info, int n)
return 0;
}
-static void scan_boardinfo(struct spi_master *master)
+static void scan_boardinfo(struct spi_controller *ctrl)
{
struct boardinfo *bi;
@@ -180,27 +181,27 @@ static void scan_boardinfo(struct spi_master *master)
unsigned n;
for (n = bi->n_board_info; n > 0; n--, chip++) {
- debug("%s %d %d\n", __FUNCTION__, chip->bus_num, master->bus_num);
- if (chip->bus_num != master->bus_num)
+ debug("%s %d %d\n", __FUNCTION__, chip->bus_num, ctrl->bus_num);
+ if (chip->bus_num != ctrl->bus_num)
continue;
/* NOTE: this relies on spi_new_device to
* issue diagnostics when given bogus inputs
*/
- (void) spi_new_device(master, chip);
+ (void) spi_new_device(ctrl, chip);
}
}
}
-static LIST_HEAD(spi_master_list);
+static LIST_HEAD(spi_controller_list);
/**
- * spi_register_master - register SPI master controller
- * @master: initialized master, originally from spi_alloc_master()
+ * spi_register_ctrl - register SPI ctrl controller
+ * @ctrl: initialized ctrl, originally from spi_alloc_ctrl()
* Context: can sleep
*
- * SPI master controllers connect to their drivers using some non-SPI bus,
+ * SPI controllers connect to their drivers using some non-SPI bus,
* such as the platform bus. The final stage of probe() in that code
- * includes calling spi_register_master() to hook up to this SPI bus glue.
+ * includes calling spi_register_ctrl() to hook up to this SPI bus glue.
*
* SPI controllers use board specific (often SOC specific) bus numbers,
* and board-specific addressing for SPI devices combines those numbers
@@ -209,47 +210,47 @@ static LIST_HEAD(spi_master_list);
* chip is at which address.
*
* This must be called from context that can sleep. It returns zero on
- * success, else a negative error code (dropping the master's refcount).
+ * success, else a negative error code (dropping the ctrl's refcount).
* After a successful return, the caller is responsible for calling
- * spi_unregister_master().
+ * spi_unregister_ctrl().
*/
-int spi_register_master(struct spi_master *master)
+int spi_register_controller(struct spi_controller *ctrl)
{
static int dyn_bus_id = (1 << 15) - 1;
int status = -ENODEV;
- debug("%s: %s:%d\n", __func__, master->dev->name, master->dev->id);
+ debug("%s: %s:%d\n", __func__, ctrl->dev->name, ctrl->dev->id);
/* even if it's just one always-selected device, there must
* be at least one chipselect
*/
- if (master->num_chipselect == 0)
+ if (ctrl->num_chipselect == 0)
return -EINVAL;
- if ((master->bus_num < 0) && master->dev->device_node)
- master->bus_num = of_alias_get_id(master->dev->device_node, "spi");
+ if ((ctrl->bus_num < 0) && ctrl->dev->device_node)
+ ctrl->bus_num = of_alias_get_id(ctrl->dev->device_node, "spi");
/* convention: dynamically assigned bus IDs count down from the max */
- if (master->bus_num < 0)
- master->bus_num = dyn_bus_id--;
+ if (ctrl->bus_num < 0)
+ ctrl->bus_num = dyn_bus_id--;
- list_add_tail(&master->list, &spi_master_list);
+ list_add_tail(&ctrl->list, &spi_controller_list);
- spi_of_register_slaves(master);
+ spi_of_register_slaves(ctrl);
/* populate children from any spi device tables */
- scan_boardinfo(master);
+ scan_boardinfo(ctrl);
status = 0;
return status;
}
-EXPORT_SYMBOL(spi_register_master);
+EXPORT_SYMBOL(spi_register_ctrl);
-struct spi_master *spi_get_master(int bus)
+struct spi_controller *spi_get_controller(int bus)
{
- struct spi_master* m;
+ struct spi_controller* m;
- list_for_each_entry(m, &spi_master_list, list) {
+ list_for_each_entry(m, &spi_controller_list, list) {
if (m->bus_num == bus)
return m;
}
@@ -259,7 +260,7 @@ struct spi_master *spi_get_master(int bus)
int spi_sync(struct spi_device *spi, struct spi_message *message)
{
- return spi->master->transfer(spi, message);
+ return spi->controller->transfer(spi, message);
}
/**