diff options
Diffstat (limited to 'drivers/i2c')
46 files changed, 163 insertions, 229 deletions
diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig index 37958083af..403602fddf 100644 --- a/drivers/i2c/Kconfig +++ b/drivers/i2c/Kconfig @@ -11,7 +11,7 @@ config DM_I2C Enable driver model for I2C. The I2C uclass interface: probe, read, write and speed, is implemented with the bus drivers operations, which provide methods for bus setting and data transfer. Each chip - device (bus child) info is kept as parent platdata. The interface + device (bus child) info is kept as parent plat. The interface is defined in include/i2c.h. config I2C_CROS_EC_TUNNEL diff --git a/drivers/i2c/acpi_i2c.c b/drivers/i2c/acpi_i2c.c index 57d29683cb..142f41178c 100644 --- a/drivers/i2c/acpi_i2c.c +++ b/drivers/i2c/acpi_i2c.c @@ -174,7 +174,7 @@ int acpi_i2c_fill_ssdt(const struct udevice *dev, struct acpi_ctx *ctx) return 0; } -int acpi_i2c_ofdata_to_platdata(struct udevice *dev) +int acpi_i2c_of_to_plat(struct udevice *dev) { struct acpi_i2c_priv *priv = dev_get_priv(dev); @@ -210,7 +210,7 @@ int acpi_i2c_ofdata_to_platdata(struct udevice *dev) /* Use name specified in priv or build one from I2C address */ static int acpi_i2c_get_name(const struct udevice *dev, char *out_name) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); struct acpi_i2c_priv *priv = dev_get_priv(dev); snprintf(out_name, ACPI_NAME_MAX, diff --git a/drivers/i2c/acpi_i2c.h b/drivers/i2c/acpi_i2c.h index 1f4be29601..fc6616ade6 100644 --- a/drivers/i2c/acpi_i2c.h +++ b/drivers/i2c/acpi_i2c.h @@ -10,6 +10,6 @@ extern struct acpi_ops acpi_i2c_ops; -int acpi_i2c_ofdata_to_platdata(struct udevice *dev); +int acpi_i2c_of_to_plat(struct udevice *dev); #endif diff --git a/drivers/i2c/ast_i2c.c b/drivers/i2c/ast_i2c.c index 2cdfb5561b..2d3fecaa14 100644 --- a/drivers/i2c/ast_i2c.c +++ b/drivers/i2c/ast_i2c.c @@ -87,7 +87,7 @@ static void ast_i2c_init_bus(struct udevice *dev) | I2CD_INTR_ABNORMAL, &priv->regs->icr); } -static int ast_i2c_ofdata_to_platdata(struct udevice *dev) +static int ast_i2c_of_to_plat(struct udevice *dev) { struct ast_i2c_priv *priv = dev_get_priv(dev); int ret; @@ -110,7 +110,7 @@ static int ast_i2c_probe(struct udevice *dev) { struct ast2500_scu *scu; - debug("Enabling I2C%u\n", dev->seq); + debug("Enabling I2C%u\n", dev_seq(dev)); /* * Get all I2C devices out of Reset. @@ -307,7 +307,7 @@ static int ast_i2c_set_speed(struct udevice *dev, unsigned int speed) struct ast_i2c_regs *regs = priv->regs; ulong i2c_rate, divider; - debug("Setting speed for I2C%d to <%u>\n", dev->seq, speed); + debug("Setting speed for I2C%d to <%u>\n", dev_seq(dev), speed); if (!speed) { debug("No valid speed specified\n"); return -EINVAL; @@ -351,7 +351,7 @@ U_BOOT_DRIVER(ast_i2c) = { .id = UCLASS_I2C, .of_match = ast_i2c_ids, .probe = ast_i2c_probe, - .ofdata_to_platdata = ast_i2c_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct ast_i2c_priv), + .of_to_plat = ast_i2c_of_to_plat, + .priv_auto = sizeof(struct ast_i2c_priv), .ops = &ast_i2c_ops, }; diff --git a/drivers/i2c/at91_i2c.c b/drivers/i2c/at91_i2c.c index 9d6c6d80e2..3eb6db4878 100644 --- a/drivers/i2c/at91_i2c.c +++ b/drivers/i2c/at91_i2c.c @@ -219,7 +219,7 @@ int at91_i2c_get_bus_speed(struct udevice *dev) return bus->speed; } -static int at91_i2c_ofdata_to_platdata(struct udevice *dev) +static int at91_i2c_of_to_plat(struct udevice *dev) { const void *blob = gd->fdt_blob; struct at91_i2c_bus *bus = dev_get_priv(dev); @@ -317,8 +317,8 @@ U_BOOT_DRIVER(i2c_at91) = { .id = UCLASS_I2C, .of_match = at91_i2c_ids, .probe = at91_i2c_probe, - .ofdata_to_platdata = at91_i2c_ofdata_to_platdata, - .per_child_auto_alloc_size = sizeof(struct dm_i2c_chip), - .priv_auto_alloc_size = sizeof(struct at91_i2c_bus), + .of_to_plat = at91_i2c_of_to_plat, + .per_child_auto = sizeof(struct dm_i2c_chip), + .priv_auto = sizeof(struct at91_i2c_bus), .ops = &at91_i2c_ops, }; diff --git a/drivers/i2c/cros_ec_tunnel.c b/drivers/i2c/cros_ec_tunnel.c index a630817352..970b91cfd3 100644 --- a/drivers/i2c/cros_ec_tunnel.c +++ b/drivers/i2c/cros_ec_tunnel.c @@ -29,7 +29,7 @@ static int cros_ec_i2c_xfer(struct udevice *dev, struct i2c_msg *msg, return cros_ec_i2c_tunnel(dev->parent, i2c_bus->remote_bus, msg, nmsgs); } -static int cros_ec_i2c_ofdata_to_platdata(struct udevice *dev) +static int cros_ec_i2c_of_to_plat(struct udevice *dev) { struct cros_ec_i2c_bus *i2c_bus = dev_get_priv(dev); const void *blob = gd->fdt_blob; @@ -55,7 +55,7 @@ U_BOOT_DRIVER(cros_ec_tunnel) = { .name = "cros_ec_tunnel", .id = UCLASS_I2C, .of_match = cros_ec_i2c_ids, - .ofdata_to_platdata = cros_ec_i2c_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct cros_ec_i2c_bus), + .of_to_plat = cros_ec_i2c_of_to_plat, + .priv_auto = sizeof(struct cros_ec_i2c_bus), .ops = &cros_ec_i2c_ops, }; diff --git a/drivers/i2c/davinci_i2c.c b/drivers/i2c/davinci_i2c.c index a54f2151fd..7811abad80 100644 --- a/drivers/i2c/davinci_i2c.c +++ b/drivers/i2c/davinci_i2c.c @@ -470,7 +470,7 @@ static int davinci_i2c_probe(struct udevice *dev) { struct i2c_bus *i2c_bus = dev_get_priv(dev); - i2c_bus->id = dev->seq; + i2c_bus->id = dev_seq(dev); i2c_bus->regs = dev_read_addr_ptr(dev); i2c_bus->speed = 100000; @@ -504,7 +504,7 @@ U_BOOT_DRIVER(i2c_davinci) = { .id = UCLASS_I2C, .of_match = davinci_i2c_ids, .probe = davinci_i2c_probe, - .priv_auto_alloc_size = sizeof(struct i2c_bus), + .priv_auto = sizeof(struct i2c_bus), .ops = &davinci_i2c_ops, }; diff --git a/drivers/i2c/designware_i2c.c b/drivers/i2c/designware_i2c.c index c54989504e..60111b8419 100644 --- a/drivers/i2c/designware_i2c.c +++ b/drivers/i2c/designware_i2c.c @@ -762,7 +762,7 @@ static int designware_i2c_probe_chip(struct udevice *bus, uint chip_addr, return ret; } -int designware_i2c_ofdata_to_platdata(struct udevice *bus) +int designware_i2c_of_to_plat(struct udevice *bus) { struct dw_i2c *priv = dev_get_priv(bus); int ret; @@ -842,9 +842,9 @@ U_BOOT_DRIVER(i2c_designware) = { .name = "i2c_designware", .id = UCLASS_I2C, .of_match = designware_i2c_ids, - .ofdata_to_platdata = designware_i2c_ofdata_to_platdata, + .of_to_plat = designware_i2c_of_to_plat, .probe = designware_i2c_probe, - .priv_auto_alloc_size = sizeof(struct dw_i2c), + .priv_auto = sizeof(struct dw_i2c), .remove = designware_i2c_remove, .flags = DM_FLAG_OS_PREPARE, .ops = &designware_i2c_ops, diff --git a/drivers/i2c/designware_i2c.h b/drivers/i2c/designware_i2c.h index 18acf4e841..9b2349a0a2 100644 --- a/drivers/i2c/designware_i2c.h +++ b/drivers/i2c/designware_i2c.h @@ -212,7 +212,7 @@ extern const struct dm_i2c_ops designware_i2c_ops; int designware_i2c_probe(struct udevice *bus); int designware_i2c_remove(struct udevice *dev); -int designware_i2c_ofdata_to_platdata(struct udevice *bus); +int designware_i2c_of_to_plat(struct udevice *bus); /** * dw_i2c_gen_speed_config() - Calculate config info from requested speed diff --git a/drivers/i2c/designware_i2c_pci.c b/drivers/i2c/designware_i2c_pci.c index d0d869c81a..ec0cdf6220 100644 --- a/drivers/i2c/designware_i2c_pci.c +++ b/drivers/i2c/designware_i2c_pci.c @@ -34,7 +34,7 @@ static struct dw_scl_sda_cfg byt_config = { /* Have a weak function for now - possibly should be a new uclass */ __weak void lpss_reset_release(void *regs); -static int designware_i2c_pci_ofdata_to_platdata(struct udevice *dev) +static int designware_i2c_pci_of_to_plat(struct udevice *dev) { struct dw_i2c *priv = dev_get_priv(dev); @@ -71,7 +71,7 @@ static int designware_i2c_pci_ofdata_to_platdata(struct udevice *dev) if (dev_get_driver_data(dev) == INTEL_APL) priv->has_spk_cnt = true; - return designware_i2c_ofdata_to_platdata(dev); + return designware_i2c_of_to_plat(dev); } static int designware_i2c_pci_probe(struct udevice *dev) @@ -92,24 +92,10 @@ static int designware_i2c_pci_bind(struct udevice *dev) { char name[20]; - if (dev_of_valid(dev)) + if (dev_has_ofnode(dev)) return 0; - /* - * Create a unique device name for PCI type devices - * ToDo: - * Setting req_seq in the driver is probably not recommended. - * But without a DT alias the number is not configured. And - * using this driver is impossible for PCIe I2C devices. - * This can be removed, once a better (correct) way for this - * is found and implemented. - * - * TODO(sjg@chromium.org): Perhaps if uclasses had platdata this would - * be possible. We cannot use static data in drivers since they may be - * used in SPL or before relocation. - */ - dev->req_seq = uclass_find_next_free_req_seq(UCLASS_I2C); - sprintf(name, "i2c_designware#%u", dev->req_seq); + sprintf(name, "i2c_designware#%u", dev_seq(dev)); device_set_name(dev, name); return 0; @@ -166,7 +152,7 @@ static int dw_i2c_acpi_fill_ssdt(const struct udevice *dev, int ret; /* If no device-tree node, ignore this since we assume it isn't used */ - if (!dev_of_valid(dev)) + if (!dev_has_ofnode(dev)) return 0; ret = acpi_device_path(dev, path, sizeof(path)); @@ -211,9 +197,9 @@ U_BOOT_DRIVER(i2c_designware_pci) = { .id = UCLASS_I2C, .of_match = designware_i2c_pci_ids, .bind = designware_i2c_pci_bind, - .ofdata_to_platdata = designware_i2c_pci_ofdata_to_platdata, + .of_to_plat = designware_i2c_pci_of_to_plat, .probe = designware_i2c_pci_probe, - .priv_auto_alloc_size = sizeof(struct dw_i2c), + .priv_auto = sizeof(struct dw_i2c), .remove = designware_i2c_remove, .flags = DM_FLAG_OS_PREPARE, .ops = &designware_i2c_ops, diff --git a/drivers/i2c/exynos_hs_i2c.c b/drivers/i2c/exynos_hs_i2c.c index 5785adedb6..879ddc67b6 100644 --- a/drivers/i2c/exynos_hs_i2c.c +++ b/drivers/i2c/exynos_hs_i2c.c @@ -517,7 +517,7 @@ static int s3c24x0_i2c_probe(struct udevice *dev, uint chip, uint chip_flags) return ret != I2C_OK; } -static int s3c_i2c_ofdata_to_platdata(struct udevice *dev) +static int s3c_i2c_of_to_plat(struct udevice *dev) { const void *blob = gd->fdt_blob; struct s3c24x0_i2c_bus *i2c_bus = dev_get_priv(dev); @@ -533,7 +533,7 @@ static int s3c_i2c_ofdata_to_platdata(struct udevice *dev) dev_read_u32_default(dev, "clock-frequency", I2C_SPEED_STANDARD_RATE); i2c_bus->node = node; - i2c_bus->bus_num = dev->seq; + i2c_bus->bus_num = dev_seq(dev); exynos_pinmux_config(i2c_bus->id, PINMUX_FLAG_HS_MODE); @@ -557,7 +557,7 @@ U_BOOT_DRIVER(hs_i2c) = { .name = "i2c_s3c_hs", .id = UCLASS_I2C, .of_match = exynos_hs_i2c_ids, - .ofdata_to_platdata = s3c_i2c_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct s3c24x0_i2c_bus), + .of_to_plat = s3c_i2c_of_to_plat, + .priv_auto = sizeof(struct s3c24x0_i2c_bus), .ops = &exynos_hs_i2c_ops, }; diff --git a/drivers/i2c/fsl_i2c.c b/drivers/i2c/fsl_i2c.c index da933452f5..875d30762e 100644 --- a/drivers/i2c/fsl_i2c.c +++ b/drivers/i2c/fsl_i2c.c @@ -573,7 +573,7 @@ static int fsl_i2c_set_bus_speed(struct udevice *bus, uint speed) return __i2c_set_bus_speed(dev->base, speed, dev->i2c_clk); } -static int fsl_i2c_ofdata_to_platdata(struct udevice *bus) +static int fsl_i2c_of_to_plat(struct udevice *bus) { struct fsl_i2c_dev *dev = dev_get_priv(bus); struct clk clock; @@ -649,8 +649,8 @@ U_BOOT_DRIVER(i2c_fsl) = { .id = UCLASS_I2C, .of_match = fsl_i2c_ids, .probe = fsl_i2c_probe, - .ofdata_to_platdata = fsl_i2c_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct fsl_i2c_dev), + .of_to_plat = fsl_i2c_of_to_plat, + .priv_auto = sizeof(struct fsl_i2c_dev), .ops = &fsl_i2c_ops, }; diff --git a/drivers/i2c/i2c-cdns.c b/drivers/i2c/i2c-cdns.c index 7144d39984..db3c04fa6e 100644 --- a/drivers/i2c/i2c-cdns.c +++ b/drivers/i2c/i2c-cdns.c @@ -460,7 +460,7 @@ static int cdns_i2c_xfer(struct udevice *dev, struct i2c_msg *msg, return ret; } -static int cdns_i2c_ofdata_to_platdata(struct udevice *dev) +static int cdns_i2c_of_to_plat(struct udevice *dev) { struct i2c_cdns_bus *i2c_bus = dev_get_priv(dev); struct cdns_i2c_platform_data *pdata = @@ -503,7 +503,7 @@ U_BOOT_DRIVER(cdns_i2c) = { .name = "i2c_cdns", .id = UCLASS_I2C, .of_match = cdns_i2c_of_match, - .ofdata_to_platdata = cdns_i2c_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct i2c_cdns_bus), + .of_to_plat = cdns_i2c_of_to_plat, + .priv_auto = sizeof(struct i2c_cdns_bus), .ops = &cdns_i2c_ops, }; diff --git a/drivers/i2c/i2c-cortina.c b/drivers/i2c/i2c-cortina.c index 036fc4282b..960ae8c700 100644 --- a/drivers/i2c/i2c-cortina.c +++ b/drivers/i2c/i2c-cortina.c @@ -322,7 +322,7 @@ static int ca_i2c_probe(struct udevice *bus) return 0; } -static int ca_i2c_ofdata_to_platdata(struct udevice *bus) +static int ca_i2c_of_to_plat(struct udevice *bus) { struct ca_i2c *priv = dev_get_priv(bus); @@ -339,9 +339,9 @@ U_BOOT_DRIVER(i2c_cortina) = { .name = "i2c_cortina", .id = UCLASS_I2C, .of_match = ca_i2c_ids, - .ofdata_to_platdata = ca_i2c_ofdata_to_platdata, + .of_to_plat = ca_i2c_of_to_plat, .probe = ca_i2c_probe, - .priv_auto_alloc_size = sizeof(struct ca_i2c), + .priv_auto = sizeof(struct ca_i2c), .ops = &ca_i2c_ops, .flags = DM_FLAG_PRE_RELOC, }; diff --git a/drivers/i2c/i2c-emul-uclass.c b/drivers/i2c/i2c-emul-uclass.c index 84b6a219d1..085b824e89 100644 --- a/drivers/i2c/i2c-emul-uclass.c +++ b/drivers/i2c/i2c-emul-uclass.c @@ -14,7 +14,7 @@ * i2c emulation works using an 'emul' node at the bus level. Each device in * that node is in the UCLASS_I2C_EMUL uclass, and emulates one i2c device. A * pointer to the device it emulates is in the 'dev' property of the emul device - * uclass platdata (struct i2c_emul_platdata), put there by i2c_emul_find(). + * uclass plat (struct i2c_emul_plat), put there by i2c_emul_find(). * When sandbox wants an emulator for a device, it calls i2c_emul_find() which * searches for the emulator with the correct address. To find the device for an * emulator, call i2c_emul_get_device(). @@ -24,27 +24,27 @@ */ /** - * struct i2c_emul_uc_platdata - information about the emulator for this device + * struct i2c_emul_uc_plat - information about the emulator for this device * * This is used by devices in UCLASS_I2C_EMUL to record information about the - * device being emulated. It is accessible with dev_get_uclass_platdata() + * device being emulated. It is accessible with dev_get_uclass_plat() * * @dev: Device being emulated */ -struct i2c_emul_uc_platdata { +struct i2c_emul_uc_plat { struct udevice *dev; }; struct udevice *i2c_emul_get_device(struct udevice *emul) { - struct i2c_emul_uc_platdata *uc_plat = dev_get_uclass_platdata(emul); + struct i2c_emul_uc_plat *uc_plat = dev_get_uclass_plat(emul); return uc_plat->dev; } int i2c_emul_find(struct udevice *dev, struct udevice **emulp) { - struct i2c_emul_uc_platdata *uc_plat; + struct i2c_emul_uc_plat *uc_plat; struct udevice *emul; int ret; @@ -54,7 +54,7 @@ int i2c_emul_find(struct udevice *dev, struct udevice **emulp) log_err("No emulators for device '%s'\n", dev->name); return ret; } - uc_plat = dev_get_uclass_platdata(emul); + uc_plat = dev_get_uclass_plat(emul); uc_plat->dev = dev; *emulp = emul; @@ -64,14 +64,13 @@ int i2c_emul_find(struct udevice *dev, struct udevice **emulp) UCLASS_DRIVER(i2c_emul) = { .id = UCLASS_I2C_EMUL, .name = "i2c_emul", - .per_device_platdata_auto_alloc_size = - sizeof(struct i2c_emul_uc_platdata), + .per_device_plat_auto = sizeof(struct i2c_emul_uc_plat), }; /* - * This uclass is a child of the i2c bus. Its platdata is not defined here so + * This uclass is a child of the i2c bus. Its plat is not defined here so * is defined by its parent, UCLASS_I2C, which uses struct dm_i2c_chip. See - * per_child_platdata_auto_alloc_size in UCLASS_DRIVER(i2c). + * per_child_plat_auto in UCLASS_DRIVER(i2c). */ UCLASS_DRIVER(i2c_emul_parent) = { .id = UCLASS_I2C_EMUL_PARENT, diff --git a/drivers/i2c/i2c-gpio.c b/drivers/i2c/i2c-gpio.c index 381938c956..387f00b2cd 100644 --- a/drivers/i2c/i2c-gpio.c +++ b/drivers/i2c/i2c-gpio.c @@ -298,7 +298,7 @@ static int i2c_gpio_probe(struct udevice *dev, uint chip, uint chip_flags) i2c_gpio_send_stop(bus, delay); debug("%s: bus: %d (%s) chip: %x flags: %x ret: %d\n", - __func__, dev->seq, dev->name, chip, chip_flags, ret); + __func__, dev_seq(dev), dev->name, chip, chip_flags, ret); return ret; } @@ -329,7 +329,7 @@ static int i2c_gpio_drv_probe(struct udevice *dev) return 0; } -static int i2c_gpio_ofdata_to_platdata(struct udevice *dev) +static int i2c_gpio_of_to_plat(struct udevice *dev) { struct i2c_gpio_bus *bus = dev_get_priv(dev); int ret; @@ -371,7 +371,7 @@ U_BOOT_DRIVER(i2c_gpio) = { .id = UCLASS_I2C, .of_match = i2c_gpio_ids, .probe = i2c_gpio_drv_probe, - .ofdata_to_platdata = i2c_gpio_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct i2c_gpio_bus), + .of_to_plat = i2c_gpio_of_to_plat, + .priv_auto = sizeof(struct i2c_gpio_bus), .ops = &i2c_gpio_ops, }; diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c index 5c4626b044..be56785217 100644 --- a/drivers/i2c/i2c-uclass.c +++ b/drivers/i2c/i2c-uclass.c @@ -79,7 +79,7 @@ static int i2c_setup_offset(struct dm_i2c_chip *chip, uint offset, static int i2c_read_bytewise(struct udevice *dev, uint offset, uint8_t *buffer, int len) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); struct udevice *bus = dev_get_parent(dev); struct dm_i2c_ops *ops = i2c_get_ops(bus); struct i2c_msg msg[2], *ptr; @@ -108,7 +108,7 @@ static int i2c_read_bytewise(struct udevice *dev, uint offset, static int i2c_write_bytewise(struct udevice *dev, uint offset, const uint8_t *buffer, int len) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); struct udevice *bus = dev_get_parent(dev); struct dm_i2c_ops *ops = i2c_get_ops(bus); struct i2c_msg msg[1]; @@ -131,7 +131,7 @@ static int i2c_write_bytewise(struct udevice *dev, uint offset, int dm_i2c_read(struct udevice *dev, uint offset, uint8_t *buffer, int len) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); struct udevice *bus = dev_get_parent(dev); struct dm_i2c_ops *ops = i2c_get_ops(bus); struct i2c_msg msg[2], *ptr; @@ -162,7 +162,7 @@ int dm_i2c_read(struct udevice *dev, uint offset, uint8_t *buffer, int len) int dm_i2c_write(struct udevice *dev, uint offset, const uint8_t *buffer, int len) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); struct udevice *bus = dev_get_parent(dev); struct dm_i2c_ops *ops = i2c_get_ops(bus); struct i2c_msg msg[1]; @@ -297,7 +297,7 @@ static int i2c_bind_driver(struct udevice *bus, uint chip_addr, uint offset_len, goto err_bind; /* Tell the device what we know about it */ - chip = dev_get_parent_platdata(dev); + chip = dev_get_parent_plat(dev); chip->chip_addr = chip_addr; chip->offset_len = offset_len; ret = device_probe(dev); @@ -328,7 +328,7 @@ int i2c_get_chip(struct udevice *bus, uint chip_addr, uint offset_len, bus->name, chip_addr); for (device_find_first_child(bus, &dev); dev; device_find_next_child(&dev)) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); int ret; if (chip->chip_addr == (chip_addr & @@ -433,7 +433,7 @@ int dm_i2c_get_bus_speed(struct udevice *bus) int i2c_set_chip_flags(struct udevice *dev, uint flags) { struct udevice *bus = dev->parent; - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); struct dm_i2c_ops *ops = i2c_get_ops(bus); int ret; @@ -449,7 +449,7 @@ int i2c_set_chip_flags(struct udevice *dev, uint flags) int i2c_get_chip_flags(struct udevice *dev, uint *flagsp) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); *flagsp = chip->flags; @@ -458,7 +458,7 @@ int i2c_get_chip_flags(struct udevice *dev, uint *flagsp) int i2c_set_chip_offset_len(struct udevice *dev, uint offset_len) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); if (offset_len > I2C_MAX_OFFSET_LEN) return log_ret(-EINVAL); @@ -469,14 +469,14 @@ int i2c_set_chip_offset_len(struct udevice *dev, uint offset_len) int i2c_get_chip_offset_len(struct udevice *dev) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); return chip->offset_len; } int i2c_set_chip_addr_offset_mask(struct udevice *dev, uint mask) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); chip->chip_addr_offset_mask = mask; @@ -485,7 +485,7 @@ int i2c_set_chip_addr_offset_mask(struct udevice *dev, uint mask) uint i2c_get_chip_addr_offset_mask(struct udevice *dev) { - struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); + struct dm_i2c_chip *chip = dev_get_parent_plat(dev); return chip->chip_addr_offset_mask; } @@ -617,7 +617,7 @@ int i2c_deblock(struct udevice *bus) } #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) -int i2c_chip_ofdata_to_platdata(struct udevice *dev, struct dm_i2c_chip *chip) +int i2c_chip_of_to_plat(struct udevice *dev, struct dm_i2c_chip *chip) { int addr; @@ -676,37 +676,21 @@ static int i2c_post_probe(struct udevice *dev) static int i2c_child_post_bind(struct udevice *dev) { #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) - struct dm_i2c_chip *plat = dev_get_parent_platdata(dev); + struct dm_i2c_chip *plat = dev_get_parent_plat(dev); - if (!dev_of_valid(dev)) + if (!dev_has_ofnode(dev)) return 0; - return i2c_chip_ofdata_to_platdata(dev, plat); + return i2c_chip_of_to_plat(dev, plat); #else return 0; #endif } -struct i2c_priv { - int max_id; -}; - static int i2c_post_bind(struct udevice *dev) { - struct uclass *class = dev->uclass; - struct i2c_priv *priv = class->priv; int ret = 0; - /* Just for sure */ - if (!priv) - return -ENOMEM; - - debug("%s: %s, req_seq=%d\n", __func__, dev->name, dev->req_seq); - - /* if there is no alias ID, use the first free */ - if (dev->req_seq == -1) - dev->req_seq = ++priv->max_id; - - debug("%s: %s, new req_seq=%d\n", __func__, dev->name, dev->req_seq); + debug("%s: %s, seq=%d\n", __func__, dev->name, dev_seq(dev)); #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) ret = dm_scan_fdt_dev(dev); @@ -714,36 +698,15 @@ static int i2c_post_bind(struct udevice *dev) return ret; } -int i2c_uclass_init(struct uclass *class) -{ - struct i2c_priv *priv = class->priv; - - /* Just for sure */ - if (!priv) - return -ENOMEM; - - /* Get the last allocated alias. */ - if (CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)) - priv->max_id = dev_read_alias_highest_id("i2c"); - else - priv->max_id = -1; - - debug("%s: highest alias id is %d\n", __func__, priv->max_id); - - return 0; -} - UCLASS_DRIVER(i2c) = { .id = UCLASS_I2C, .name = "i2c", .flags = DM_UC_FLAG_SEQ_ALIAS, .post_bind = i2c_post_bind, - .init = i2c_uclass_init, - .priv_auto_alloc_size = sizeof(struct i2c_priv), .pre_probe = i2c_pre_probe, .post_probe = i2c_post_probe, - .per_device_auto_alloc_size = sizeof(struct dm_i2c_bus), - .per_child_platdata_auto_alloc_size = sizeof(struct dm_i2c_chip), + .per_device_auto = sizeof(struct dm_i2c_bus), + .per_child_plat_auto = sizeof(struct dm_i2c_chip), .child_post_bind = i2c_child_post_bind, }; @@ -765,8 +728,8 @@ U_BOOT_DRIVER(i2c_generic_chip_drv) = { .id = UCLASS_I2C_GENERIC, .of_match = generic_chip_i2c_ids, #if CONFIG_IS_ENABLED(ACPIGEN) - .ofdata_to_platdata = acpi_i2c_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct acpi_i2c_priv), + .of_to_plat = acpi_i2c_of_to_plat, + .priv_auto = sizeof(struct acpi_i2c_priv), #endif ACPI_OPS_PTR(&acpi_i2c_ops) }; diff --git a/drivers/i2c/i2c-uniphier-f.c b/drivers/i2c/i2c-uniphier-f.c index a110fe9e8d..9d6f1688cb 100644 --- a/drivers/i2c/i2c-uniphier-f.c +++ b/drivers/i2c/i2c-uniphier-f.c @@ -326,6 +326,6 @@ U_BOOT_DRIVER(uniphier_fi2c) = { .id = UCLASS_I2C, .of_match = uniphier_fi2c_of_match, .probe = uniphier_fi2c_probe, - .priv_auto_alloc_size = sizeof(struct uniphier_fi2c_priv), + .priv_auto = sizeof(struct uniphier_fi2c_priv), .ops = &uniphier_fi2c_ops, }; diff --git a/drivers/i2c/i2c-uniphier.c b/drivers/i2c/i2c-uniphier.c index e7f44e14e9..6eafbeeef4 100644 --- a/drivers/i2c/i2c-uniphier.c +++ b/drivers/i2c/i2c-uniphier.c @@ -214,6 +214,6 @@ U_BOOT_DRIVER(uniphier_i2c) = { .id = UCLASS_I2C, .of_match = uniphier_i2c_of_match, .probe = uniphier_i2c_probe, - .priv_auto_alloc_size = sizeof(struct uniphier_i2c_priv), + .priv_auto = sizeof(struct uniphier_i2c_priv), .ops = &uniphier_i2c_ops, }; diff --git a/drivers/i2c/i2c-versatile.c b/drivers/i2c/i2c-versatile.c index 62831522bd..0a1a85dfc2 100644 --- a/drivers/i2c/i2c-versatile.c +++ b/drivers/i2c/i2c-versatile.c @@ -252,11 +252,6 @@ static int versatile_i2c_probe(struct udevice *dev) priv->base = (phys_addr_t)dev_read_addr(dev); priv->delay = 25; /* 25us * 4 = 100kHz */ - /* - * U-Boot still doesn't assign automatically - * sequence numbers to devices - */ - dev->req_seq = 1; return 0; } @@ -277,6 +272,6 @@ U_BOOT_DRIVER(versatile_i2c) = { .id = UCLASS_I2C, .of_match = versatile_i2c_of_match, .probe = versatile_i2c_probe, - .priv_auto_alloc_size = sizeof(struct versatile_i2c_priv), + .priv_auto = sizeof(struct versatile_i2c_priv), .ops = &versatile_i2c_ops, }; diff --git a/drivers/i2c/ihs_i2c.c b/drivers/i2c/ihs_i2c.c index cec38538da..f91a96a3aa 100644 --- a/drivers/i2c/ihs_i2c.c +++ b/drivers/i2c/ihs_i2c.c @@ -354,7 +354,7 @@ U_BOOT_DRIVER(i2c_ihs) = { .id = UCLASS_I2C, .of_match = ihs_i2c_ids, .probe = ihs_i2c_probe, - .priv_auto_alloc_size = sizeof(struct ihs_i2c_priv), + .priv_auto = sizeof(struct ihs_i2c_priv), .ops = &ihs_i2c_ops, }; diff --git a/drivers/i2c/imx_lpi2c.c b/drivers/i2c/imx_lpi2c.c index feeed1e9a2..92c500327b 100644 --- a/drivers/i2c/imx_lpi2c.c +++ b/drivers/i2c/imx_lpi2c.c @@ -289,7 +289,7 @@ static int bus_i2c_set_bus_speed(struct udevice *bus, int speed) return clock_rate; } } else { - clock_rate = imx_get_i2cclk(bus->seq); + clock_rate = imx_get_i2cclk(dev_seq(bus)); if (!clock_rate) return -EPERM; } @@ -377,7 +377,7 @@ static int bus_i2c_init(struct udevice *bus, int speed) val = readl(®s->mcr) & ~LPI2C_MCR_MEN_MASK; writel(val | LPI2C_MCR_MEN(1), ®s->mcr); - debug("i2c : controller bus %d, speed %d:\n", bus->seq, speed); + debug("i2c : controller bus %d, speed %d:\n", dev_seq(bus), speed); return ret; } @@ -452,11 +452,11 @@ static int imx_lpi2c_probe(struct udevice *bus) return -EINVAL; i2c_bus->base = addr; - i2c_bus->index = bus->seq; + i2c_bus->index = dev_seq(bus); i2c_bus->bus = bus; /* power up i2c resource */ - ret = init_i2c_power(bus->seq); + ret = init_i2c_power(dev_seq(bus)); if (ret) { debug("init_i2c_power err = %d\n", ret); return ret; @@ -486,7 +486,7 @@ static int imx_lpi2c_probe(struct udevice *bus) } } else { /* To i.MX7ULP, only i2c4-7 can be handled by A7 core */ - ret = enable_i2c_clk(1, bus->seq); + ret = enable_i2c_clk(1, dev_seq(bus)); if (ret < 0) return ret; } @@ -496,7 +496,7 @@ static int imx_lpi2c_probe(struct udevice *bus) return ret; debug("i2c : controller bus %d at 0x%lx , speed %d: ", - bus->seq, i2c_bus->base, + dev_seq(bus), i2c_bus->base, i2c_bus->speed); return 0; @@ -519,6 +519,6 @@ U_BOOT_DRIVER(imx_lpi2c) = { .id = UCLASS_I2C, .of_match = imx_lpi2c_ids, .probe = imx_lpi2c_probe, - .priv_auto_alloc_size = sizeof(struct imx_lpi2c_bus), + .priv_auto = sizeof(struct imx_lpi2c_bus), .ops = &imx_lpi2c_ops, }; diff --git a/drivers/i2c/intel_i2c.c b/drivers/i2c/intel_i2c.c index 3b79cb40cd..52f7a528ef 100644 --- a/drivers/i2c/intel_i2c.c +++ b/drivers/i2c/intel_i2c.c @@ -269,21 +269,11 @@ static int intel_i2c_probe(struct udevice *dev) static int intel_i2c_bind(struct udevice *dev) { - static int num_cards __attribute__ ((section(".data"))); char name[20]; /* Create a unique device name for PCI type devices */ if (device_is_on_pci_bus(dev)) { - /* - * ToDo: - * Setting req_seq in the driver is probably not recommended. - * But without a DT alias the number is not configured. And - * using this driver is impossible for PCIe I2C devices. - * This can be removed, once a better (correct) way for this - * is found and implemented. - */ - dev->req_seq = num_cards; - sprintf(name, "intel_i2c#%u", num_cards++); + sprintf(name, "intel_i2c#%u", dev_seq(dev)); device_set_name(dev, name); } @@ -306,7 +296,7 @@ U_BOOT_DRIVER(intel_i2c) = { .id = UCLASS_I2C, .of_match = intel_i2c_ids, .ops = &intel_i2c_ops, - .priv_auto_alloc_size = sizeof(struct intel_i2c), + .priv_auto = sizeof(struct intel_i2c), .bind = intel_i2c_bind, .probe = intel_i2c_probe, }; diff --git a/drivers/i2c/iproc_i2c.c b/drivers/i2c/iproc_i2c.c index b7e9ced898..83301bbf1b 100644 --- a/drivers/i2c/iproc_i2c.c +++ b/drivers/i2c/iproc_i2c.c @@ -672,7 +672,7 @@ static int iproc_i2c_probe(struct udevice *bus) return iproc_i2c_init(bus); } -static int iproc_i2c_ofdata_to_platdata(struct udevice *bus) +static int iproc_i2c_of_to_plat(struct udevice *bus) { struct iproc_i2c *bus_prvdata = dev_get_priv(bus); int node = dev_of_offset(bus); @@ -705,9 +705,9 @@ U_BOOT_DRIVER(iproc_i2c) = { .name = "iproc_i2c", .id = UCLASS_I2C, .of_match = iproc_i2c_ids, - .ofdata_to_platdata = iproc_i2c_ofdata_to_platdata, + .of_to_plat = iproc_i2c_of_to_plat, .probe = iproc_i2c_probe, - .priv_auto_alloc_size = sizeof(struct iproc_i2c), + .priv_auto = sizeof(struct iproc_i2c), .ops = &iproc_i2c_ops, .flags = DM_FLAG_PRE_RELOC, }; diff --git a/drivers/i2c/lpc32xx_i2c.c b/drivers/i2c/lpc32xx_i2c.c index 6af2e975cf..ad11e978cc 100644 --- a/drivers/i2c/lpc32xx_i2c.c +++ b/drivers/i2c/lpc32xx_i2c.c @@ -281,8 +281,12 @@ U_BOOT_I2C_ADAP_COMPLETE(lpc32xx_2, lpc32xx_i2c_init, NULL, #else /* CONFIG_DM_I2C */ static int lpc32xx_i2c_probe(struct udevice *bus) { - struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus); - bus->seq = dev->index; + struct lpc32xx_i2c_dev *dev = dev_get_plat(bus); + + /* + * FIXME: This is not permitted + * dev_seq(bus) = dev->index; + */ __i2c_init(dev->base, dev->speed, 0, dev->index); return 0; @@ -291,14 +295,14 @@ static int lpc32xx_i2c_probe(struct udevice *bus) static int lpc32xx_i2c_probe_chip(struct udevice *bus, u32 chip_addr, u32 chip_flags) { - struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus); + struct lpc32xx_i2c_dev *dev = dev_get_plat(bus); return __i2c_probe_chip(dev->base, chip_addr); } static int lpc32xx_i2c_xfer(struct udevice *bus, struct i2c_msg *msg, int nmsgs) { - struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus); + struct lpc32xx_i2c_dev *dev = dev_get_plat(bus); struct i2c_msg *dmsg, *omsg, dummy; uint i = 0, address = 0; @@ -330,13 +334,13 @@ static int lpc32xx_i2c_xfer(struct udevice *bus, struct i2c_msg *msg, static int lpc32xx_i2c_set_bus_speed(struct udevice *bus, unsigned int speed) { - struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus); + struct lpc32xx_i2c_dev *dev = dev_get_plat(bus); return __i2c_set_bus_speed(dev->base, speed, dev->index); } static int lpc32xx_i2c_reset(struct udevice *bus) { - struct lpc32xx_i2c_dev *dev = dev_get_platdata(bus); + struct lpc32xx_i2c_dev *dev = dev_get_plat(bus); __i2c_init(dev->base, dev->speed, 0, dev->index); return 0; diff --git a/drivers/i2c/meson_i2c.c b/drivers/i2c/meson_i2c.c index e070caf43f..434e3461b1 100644 --- a/drivers/i2c/meson_i2c.c +++ b/drivers/i2c/meson_i2c.c @@ -308,6 +308,6 @@ U_BOOT_DRIVER(i2c_meson) = { .id = UCLASS_I2C, .of_match = meson_i2c_ids, .probe = meson_i2c_probe, - .priv_auto_alloc_size = sizeof(struct meson_i2c), + .priv_auto = sizeof(struct meson_i2c), .ops = &meson_i2c_ops, }; diff --git a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c index 584d0a4fef..928e02b7af 100644 --- a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c +++ b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c @@ -145,5 +145,5 @@ U_BOOT_DRIVER(i2c_arbitrator) = { .probe = i2c_arbitrator_probe, .remove = i2c_arbitrator_remove, .ops = &i2c_arbitrator_ops, - .priv_auto_alloc_size = sizeof(struct i2c_arbitrator_priv), + .priv_auto = sizeof(struct i2c_arbitrator_priv), }; diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c index 83dcb40213..8d6e208a0b 100644 --- a/drivers/i2c/muxes/i2c-mux-gpio.c +++ b/drivers/i2c/muxes/i2c-mux-gpio.c @@ -136,5 +136,5 @@ U_BOOT_DRIVER(i2c_mux_gpio) = { .of_match = i2c_mux_gpio_ids, .ops = &i2c_mux_gpio_ops, .probe = i2c_mux_gpio_probe, - .priv_auto_alloc_size = sizeof(struct i2c_mux_gpio_priv), + .priv_auto = sizeof(struct i2c_mux_gpio_priv), }; diff --git a/drivers/i2c/muxes/i2c-mux-uclass.c b/drivers/i2c/muxes/i2c-mux-uclass.c index 26897554b0..dbca409ee3 100644 --- a/drivers/i2c/muxes/i2c-mux-uclass.c +++ b/drivers/i2c/muxes/i2c-mux-uclass.c @@ -36,7 +36,7 @@ struct i2c_mux_bus { /* Find out the mux channel number */ static int i2c_mux_child_post_bind(struct udevice *dev) { - struct i2c_mux_bus *plat = dev_get_parent_platdata(dev); + struct i2c_mux_bus *plat = dev_get_parent_plat(dev); int channel; channel = dev_read_u32_default(dev, "reg", -1); @@ -87,8 +87,8 @@ static int i2c_mux_post_bind(struct udevice *mux) ret = device_bind_driver_to_node(mux, "i2c_mux_bus_drv", full_name, node, &dev); - debug(" - bind ret=%d, %s, req_seq %d\n", ret, - dev ? dev->name : NULL, dev->req_seq); + debug(" - bind ret=%d, %s, seq %d\n", ret, + dev ? dev->name : NULL, dev_seq(dev)); if (ret) return ret; } @@ -126,7 +126,7 @@ static int i2c_mux_post_probe(struct udevice *mux) int i2c_mux_select(struct udevice *dev) { - struct i2c_mux_bus *plat = dev_get_parent_platdata(dev); + struct i2c_mux_bus *plat = dev_get_parent_plat(dev); struct udevice *mux = dev->parent; struct i2c_mux_ops *ops = i2c_mux_get_ops(mux); @@ -138,7 +138,7 @@ int i2c_mux_select(struct udevice *dev) int i2c_mux_deselect(struct udevice *dev) { - struct i2c_mux_bus *plat = dev_get_parent_platdata(dev); + struct i2c_mux_bus *plat = dev_get_parent_plat(dev); struct udevice *mux = dev->parent; struct i2c_mux_ops *ops = i2c_mux_get_ops(mux); @@ -220,7 +220,7 @@ UCLASS_DRIVER(i2c_mux) = { .name = "i2c_mux", .post_bind = i2c_mux_post_bind, .post_probe = i2c_mux_post_probe, - .per_device_auto_alloc_size = sizeof(struct i2c_mux), - .per_child_platdata_auto_alloc_size = sizeof(struct i2c_mux_bus), + .per_device_auto = sizeof(struct i2c_mux), + .per_child_plat_auto = sizeof(struct i2c_mux_bus), .child_post_bind = i2c_mux_child_post_bind, }; diff --git a/drivers/i2c/muxes/pca954x.c b/drivers/i2c/muxes/pca954x.c index 7360e162ee..d21a84c4fa 100644 --- a/drivers/i2c/muxes/pca954x.c +++ b/drivers/i2c/muxes/pca954x.c @@ -108,7 +108,7 @@ static const struct udevice_id pca954x_ids[] = { { } }; -static int pca954x_ofdata_to_platdata(struct udevice *dev) +static int pca954x_of_to_plat(struct udevice *dev) { struct pca954x_priv *priv = dev_get_priv(dev); const struct chip_desc *chip = &chips[dev_get_driver_data(dev)]; @@ -171,6 +171,6 @@ U_BOOT_DRIVER(pca954x) = { .probe = pca954x_probe, .remove = pca954x_remove, .ops = &pca954x_ops, - .ofdata_to_platdata = pca954x_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct pca954x_priv), + .of_to_plat = pca954x_of_to_plat, + .priv_auto = sizeof(struct pca954x_priv), }; diff --git a/drivers/i2c/mv_i2c.c b/drivers/i2c/mv_i2c.c index 82e8fdac41..ef1007de14 100644 --- a/drivers/i2c/mv_i2c.c +++ b/drivers/i2c/mv_i2c.c @@ -600,7 +600,7 @@ U_BOOT_DRIVER(i2c_mv) = { .id = UCLASS_I2C, .of_match = mv_i2c_ids, .probe = mv_i2c_probe, - .priv_auto_alloc_size = sizeof(struct mv_i2c_priv), + .priv_auto = sizeof(struct mv_i2c_priv), .ops = &mv_i2c_ops, }; #endif /* CONFIG_DM_I2C */ diff --git a/drivers/i2c/mvtwsi.c b/drivers/i2c/mvtwsi.c index 14c594d648..a4d59b67a2 100644 --- a/drivers/i2c/mvtwsi.c +++ b/drivers/i2c/mvtwsi.c @@ -794,7 +794,7 @@ static int mvtwsi_i2c_set_bus_speed(struct udevice *bus, uint speed) return 0; } -static int mvtwsi_i2c_ofdata_to_platdata(struct udevice *bus) +static int mvtwsi_i2c_of_to_plat(struct udevice *bus) { struct mvtwsi_i2c_dev *dev = dev_get_priv(bus); @@ -823,9 +823,9 @@ static int mvtwsi_i2c_bind(struct udevice *bus) struct mvtwsi_registers *twsi = dev_read_addr_ptr(bus); /* Disable the hidden slave in i2c0 of these platforms */ - if ((IS_ENABLED(CONFIG_ARMADA_38X) || IS_ENABLED(CONFIG_ARCH_KIRKWOOD) - || IS_ENABLED(CONFIG_ARMADA_8K)) - && bus->req_seq == 0) + if ((IS_ENABLED(CONFIG_ARMADA_38X) || + IS_ENABLED(CONFIG_ARCH_KIRKWOOD) || + IS_ENABLED(CONFIG_ARMADA_8K)) && !dev_seq(bus)) twsi_disable_i2c_slave(twsi); return 0; @@ -888,8 +888,8 @@ U_BOOT_DRIVER(i2c_mvtwsi) = { .of_match = mvtwsi_i2c_ids, .bind = mvtwsi_i2c_bind, .probe = mvtwsi_i2c_probe, - .ofdata_to_platdata = mvtwsi_i2c_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct mvtwsi_i2c_dev), + .of_to_plat = mvtwsi_i2c_of_to_plat, + .priv_auto = sizeof(struct mvtwsi_i2c_dev), .ops = &mvtwsi_i2c_ops, }; #endif /* CONFIG_DM_I2C */ diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c index 7609594bd0..0362ec6763 100644 --- a/drivers/i2c/mxc_i2c.c +++ b/drivers/i2c/mxc_i2c.c @@ -914,7 +914,7 @@ static int mxc_i2c_probe(struct udevice *bus) } i2c_bus->base = addr; - i2c_bus->index = bus->seq; + i2c_bus->index = dev_seq(bus); i2c_bus->bus = bus; /* Enable clk */ @@ -930,7 +930,7 @@ static int mxc_i2c_probe(struct udevice *bus) return ret; } #else - ret = enable_i2c_clk(1, bus->seq); + ret = enable_i2c_clk(1, dev_seq(bus)); if (ret < 0) return ret; #endif @@ -942,7 +942,7 @@ static int mxc_i2c_probe(struct udevice *bus) ret = fdt_stringlist_search(fdt, node, "pinctrl-names", "gpio"); if (ret < 0) { debug("i2c bus %d at 0x%2lx, no gpio pinctrl state.\n", - bus->seq, i2c_bus->base); + dev_seq(bus), i2c_bus->base); } else { ret = gpio_request_by_name_nodev(offset_to_ofnode(node), "scl-gpios", 0, &i2c_bus->scl_gpio, @@ -954,8 +954,8 @@ static int mxc_i2c_probe(struct udevice *bus) !dm_gpio_is_valid(&i2c_bus->scl_gpio) || ret || ret2) { dev_err(bus, - "i2c bus %d at %lu, fail to request scl/sda gpio\n", - bus->seq, i2c_bus->base); + "i2c bus %d at 0x%2lx, fail to request scl/sda gpio\n", + dev_seq(bus), i2c_bus->base); return -EINVAL; } } @@ -966,7 +966,7 @@ static int mxc_i2c_probe(struct udevice *bus) */ debug("i2c : controller bus %d at %lu , speed %d: ", - bus->seq, i2c_bus->base, + dev_seq(bus), i2c_bus->base, i2c_bus->speed); return 0; @@ -1072,7 +1072,7 @@ U_BOOT_DRIVER(i2c_mxc) = { .id = UCLASS_I2C, .of_match = mxc_i2c_ids, .probe = mxc_i2c_probe, - .priv_auto_alloc_size = sizeof(struct mxc_i2c_bus), + .priv_auto = sizeof(struct mxc_i2c_bus), .ops = &mxc_i2c_ops, .flags = DM_FLAG_PRE_RELOC, }; diff --git a/drivers/i2c/nx_i2c.c b/drivers/i2c/nx_i2c.c index ca14a0ecac..c63a732557 100644 --- a/drivers/i2c/nx_i2c.c +++ b/drivers/i2c/nx_i2c.c @@ -240,7 +240,7 @@ static int nx_i2c_probe(struct udevice *dev) return -EINVAL; bus->regs = (struct nx_i2c_regs *)addr; - bus->bus_num = dev->seq; + bus->bus_num = dev_seq(dev); /* i2c node parsing */ i2c_process_node(dev); @@ -621,6 +621,6 @@ U_BOOT_DRIVER(i2c_nexell) = { .id = UCLASS_I2C, .of_match = nx_i2c_ids, .probe = nx_i2c_probe, - .priv_auto_alloc_size = sizeof(struct nx_i2c_bus), + .priv_auto = sizeof(struct nx_i2c_bus), .ops = &nx_i2c_ops, }; diff --git a/drivers/i2c/ocores_i2c.c b/drivers/i2c/ocores_i2c.c index c4f2cc43f9..48ed1d5bff 100644 --- a/drivers/i2c/ocores_i2c.c +++ b/drivers/i2c/ocores_i2c.c @@ -632,6 +632,6 @@ U_BOOT_DRIVER(i2c_ocores) = { .id = UCLASS_I2C, .of_match = ocores_i2c_ids, .probe = ocores_i2c_probe, - .priv_auto_alloc_size = sizeof(struct ocores_i2c_bus), + .priv_auto = sizeof(struct ocores_i2c_bus), .ops = &ocores_i2c_ops, }; diff --git a/drivers/i2c/octeon_i2c.c b/drivers/i2c/octeon_i2c.c index 23dcb1563e..ea2cc33f9d 100644 --- a/drivers/i2c/octeon_i2c.c +++ b/drivers/i2c/octeon_i2c.c @@ -791,7 +791,6 @@ static int octeon_i2c_probe(struct udevice *dev) pci_dev_t bdf = dm_pci_get_bdf(dev); debug("TWSI PCI device: %x\n", bdf); - dev->req_seq = PCI_FUNC(bdf); twsi->base = dm_pci_map_bar(dev, PCI_BASE_ADDRESS_0, PCI_REGION_MEM); @@ -811,7 +810,7 @@ static int octeon_i2c_probe(struct udevice *dev) if (ret) return ret; - debug("TWSI bus %d at %p\n", dev->seq, twsi->base); + debug("TWSI bus %d at %p\n", dev_seq(dev), twsi->base); /* Start with standard speed, real speed set via DT or cmd */ return twsi_init(twsi->base, i2c_slave_addr); @@ -835,6 +834,6 @@ U_BOOT_DRIVER(octeon_pci_twsi) = { .id = UCLASS_I2C, .of_match = octeon_i2c_ids, .probe = octeon_i2c_probe, - .priv_auto_alloc_size = sizeof(struct octeon_twsi), + .priv_auto = sizeof(struct octeon_twsi), .ops = &octeon_i2c_ops, }; diff --git a/drivers/i2c/omap24xx_i2c.c b/drivers/i2c/omap24xx_i2c.c index 0af4e333c4..1355dc274e 100644 --- a/drivers/i2c/omap24xx_i2c.c +++ b/drivers/i2c/omap24xx_i2c.c @@ -1049,7 +1049,7 @@ static int omap_i2c_probe_chip(struct udevice *bus, uint chip_addr, static int omap_i2c_probe(struct udevice *bus) { struct omap_i2c *priv = dev_get_priv(bus); - struct omap_i2c_platdata *plat = dev_get_platdata(bus); + struct omap_i2c_plat *plat = dev_get_plat(bus); priv->speed = plat->speed; priv->regs = map_physmem(plat->base, sizeof(void *), @@ -1063,9 +1063,9 @@ static int omap_i2c_probe(struct udevice *bus) } #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) -static int omap_i2c_ofdata_to_platdata(struct udevice *bus) +static int omap_i2c_of_to_plat(struct udevice *bus) { - struct omap_i2c_platdata *plat = dev_get_platdata(bus); + struct omap_i2c_plat *plat = dev_get_plat(bus); plat->base = dev_read_addr(bus); plat->speed = dev_read_u32_default(bus, "clock-frequency", @@ -1093,11 +1093,11 @@ U_BOOT_DRIVER(i2c_omap) = { .id = UCLASS_I2C, #if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) .of_match = omap_i2c_ids, - .ofdata_to_platdata = omap_i2c_ofdata_to_platdata, - .platdata_auto_alloc_size = sizeof(struct omap_i2c_platdata), + .of_to_plat = omap_i2c_of_to_plat, + .plat_auto = sizeof(struct omap_i2c_plat), #endif .probe = omap_i2c_probe, - .priv_auto_alloc_size = sizeof(struct omap_i2c), + .priv_auto = sizeof(struct omap_i2c), .ops = &omap_i2c_ops, #if !CONFIG_IS_ENABLED(OF_CONTROL) .flags = DM_FLAG_PRE_RELOC, diff --git a/drivers/i2c/rcar_i2c.c b/drivers/i2c/rcar_i2c.c index 663c342cd8..14bb6603d5 100644 --- a/drivers/i2c/rcar_i2c.c +++ b/drivers/i2c/rcar_i2c.c @@ -371,6 +371,6 @@ U_BOOT_DRIVER(i2c_rcar) = { .id = UCLASS_I2C, .of_match = rcar_i2c_ids, .probe = rcar_i2c_probe, - .priv_auto_alloc_size = sizeof(struct rcar_i2c_priv), + .priv_auto = sizeof(struct rcar_i2c_priv), .ops = &rcar_i2c_ops, }; diff --git a/drivers/i2c/rcar_iic.c b/drivers/i2c/rcar_iic.c index cad0a623d3..f0e50914c6 100644 --- a/drivers/i2c/rcar_iic.c +++ b/drivers/i2c/rcar_iic.c @@ -269,6 +269,6 @@ U_BOOT_DRIVER(iic_rcar) = { .id = UCLASS_I2C, .of_match = rcar_iic_ids, .probe = rcar_iic_probe, - .priv_auto_alloc_size = sizeof(struct rcar_iic_priv), + .priv_auto = sizeof(struct rcar_iic_priv), .ops = &rcar_iic_ops, }; diff --git a/drivers/i2c/rk_i2c.c b/drivers/i2c/rk_i2c.c index 659461088b..f8fac45b6c 100644 --- a/drivers/i2c/rk_i2c.c +++ b/drivers/i2c/rk_i2c.c @@ -375,7 +375,7 @@ int rockchip_i2c_set_bus_speed(struct udevice *bus, unsigned int speed) return 0; } -static int rockchip_i2c_ofdata_to_platdata(struct udevice *bus) +static int rockchip_i2c_of_to_plat(struct udevice *bus) { struct rk_i2c *priv = dev_get_priv(bus); int ret; @@ -489,10 +489,10 @@ U_BOOT_DRIVER(rockchip_rk3066_i2c) = { .name = "rockchip_rk3066_i2c", .id = UCLASS_I2C, .of_match = rockchip_i2c_ids, - .ofdata_to_platdata = rockchip_i2c_ofdata_to_platdata, + .of_to_plat = rockchip_i2c_of_to_plat, .probe = rockchip_i2c_probe, - .priv_auto_alloc_size = sizeof(struct rk_i2c), + .priv_auto = sizeof(struct rk_i2c), .ops = &rockchip_i2c_ops, }; -U_BOOT_DRIVER_ALIAS(rockchip_rk3066_i2c, rockchip_rk3288_i2c) +DM_DRIVER_ALIAS(rockchip_rk3066_i2c, rockchip_rk3288_i2c) diff --git a/drivers/i2c/s3c24x0_i2c.c b/drivers/i2c/s3c24x0_i2c.c index cb45d3c100..0c8915605d 100644 --- a/drivers/i2c/s3c24x0_i2c.c +++ b/drivers/i2c/s3c24x0_i2c.c @@ -302,7 +302,7 @@ static int s3c24x0_i2c_xfer(struct udevice *dev, struct i2c_msg *msg, return ret ? -EREMOTEIO : 0; } -static int s3c_i2c_ofdata_to_platdata(struct udevice *dev) +static int s3c_i2c_of_to_plat(struct udevice *dev) { const void *blob = gd->fdt_blob; struct s3c24x0_i2c_bus *i2c_bus = dev_get_priv(dev); @@ -318,7 +318,7 @@ static int s3c_i2c_ofdata_to_platdata(struct udevice *dev) dev_read_u32_default(dev, "clock-frequency", I2C_SPEED_STANDARD_RATE); i2c_bus->node = node; - i2c_bus->bus_num = dev->seq; + i2c_bus->bus_num = dev_seq(dev); exynos_pinmux_config(i2c_bus->id, 0); @@ -342,7 +342,7 @@ U_BOOT_DRIVER(i2c_s3c) = { .name = "i2c_s3c", .id = UCLASS_I2C, .of_match = s3c_i2c_ids, - .ofdata_to_platdata = s3c_i2c_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct s3c24x0_i2c_bus), + .of_to_plat = s3c_i2c_of_to_plat, + .priv_auto = sizeof(struct s3c24x0_i2c_bus), .ops = &s3c_i2c_ops, }; diff --git a/drivers/i2c/sandbox_i2c.c b/drivers/i2c/sandbox_i2c.c index 2cbdaf9cc7..c99e6de933 100644 --- a/drivers/i2c/sandbox_i2c.c +++ b/drivers/i2c/sandbox_i2c.c @@ -10,15 +10,12 @@ #include <errno.h> #include <i2c.h> #include <log.h> +#include <asm/i2c.h> #include <asm/test.h> #include <dm/acpi.h> #include <dm/lists.h> #include <dm/device-internal.h> -struct sandbox_i2c_priv { - bool test_mode; -}; - static int get_emul(struct udevice *dev, struct udevice **devp, struct dm_i2c_ops **opsp) { @@ -27,7 +24,7 @@ static int get_emul(struct udevice *dev, struct udevice **devp, *devp = NULL; *opsp = NULL; - plat = dev_get_parent_platdata(dev); + plat = dev_get_parent_plat(dev); if (!plat->emul) { ret = i2c_emul_find(dev, &plat->emul); if (ret) @@ -98,5 +95,5 @@ U_BOOT_DRIVER(sandbox_i2c) = { .id = UCLASS_I2C, .of_match = sandbox_i2c_ids, .ops = &sandbox_i2c_ops, - .priv_auto_alloc_size = sizeof(struct sandbox_i2c_priv), + .priv_auto = sizeof(struct sandbox_i2c_priv), }; diff --git a/drivers/i2c/stm32f7_i2c.c b/drivers/i2c/stm32f7_i2c.c index 2f60911549..6553bdc610 100644 --- a/drivers/i2c/stm32f7_i2c.c +++ b/drivers/i2c/stm32f7_i2c.c @@ -901,7 +901,7 @@ clk_free: return ret; } -static int stm32_ofdata_to_platdata(struct udevice *dev) +static int stm32_of_to_plat(struct udevice *dev) { struct stm32_i2c_priv *i2c_priv = dev_get_priv(dev); u32 rise_time, fall_time; @@ -953,8 +953,8 @@ U_BOOT_DRIVER(stm32f7_i2c) = { .name = "stm32f7-i2c", .id = UCLASS_I2C, .of_match = stm32_i2c_of_match, - .ofdata_to_platdata = stm32_ofdata_to_platdata, + .of_to_plat = stm32_of_to_plat, .probe = stm32_i2c_probe, - .priv_auto_alloc_size = sizeof(struct stm32_i2c_priv), + .priv_auto = sizeof(struct stm32_i2c_priv), .ops = &stm32_i2c_ops, }; diff --git a/drivers/i2c/tegra186_bpmp_i2c.c b/drivers/i2c/tegra186_bpmp_i2c.c index 37204718ca..88e4e9a5c9 100644 --- a/drivers/i2c/tegra186_bpmp_i2c.c +++ b/drivers/i2c/tegra186_bpmp_i2c.c @@ -122,6 +122,6 @@ U_BOOT_DRIVER(i2c_gpio) = { .id = UCLASS_I2C, .of_match = tegra186_bpmp_i2c_ids, .probe = tegra186_bpmp_i2c_probe, - .priv_auto_alloc_size = sizeof(struct tegra186_bpmp_i2c), + .priv_auto = sizeof(struct tegra186_bpmp_i2c), .ops = &tegra186_bpmp_i2c_ops, }; diff --git a/drivers/i2c/tegra_i2c.c b/drivers/i2c/tegra_i2c.c index 65b3734348..1e74484542 100644 --- a/drivers/i2c/tegra_i2c.c +++ b/drivers/i2c/tegra_i2c.c @@ -362,7 +362,7 @@ static int tegra_i2c_probe(struct udevice *dev) int ret; bool is_dvc; - i2c_bus->id = dev->seq; + i2c_bus->id = dev_seq(dev); i2c_bus->type = dev_get_driver_data(dev); i2c_bus->regs = (struct i2c_ctlr *)dev_read_addr(dev); if ((ulong)i2c_bus->regs == FDT_ADDR_T_NONE) { @@ -408,7 +408,8 @@ static int tegra_i2c_probe(struct udevice *dev) } i2c_init_controller(i2c_bus); debug("%s: controller bus %d at %p, speed %d: ", - is_dvc ? "dvc" : "i2c", dev->seq, i2c_bus->regs, i2c_bus->speed); + is_dvc ? "dvc" : "i2c", dev_seq(dev), i2c_bus->regs, + i2c_bus->speed); return 0; } @@ -523,6 +524,6 @@ U_BOOT_DRIVER(i2c_tegra) = { .id = UCLASS_I2C, .of_match = tegra_i2c_ids, .probe = tegra_i2c_probe, - .priv_auto_alloc_size = sizeof(struct i2c_bus), + .priv_auto = sizeof(struct i2c_bus), .ops = &tegra_i2c_ops, }; diff --git a/drivers/i2c/xilinx_xiic.c b/drivers/i2c/xilinx_xiic.c index 149bd327bd..72199a62b2 100644 --- a/drivers/i2c/xilinx_xiic.c +++ b/drivers/i2c/xilinx_xiic.c @@ -348,6 +348,6 @@ U_BOOT_DRIVER(xilinx_xiic) = { .id = UCLASS_I2C, .of_match = xilinx_xiic_ids, .probe = xilinx_xiic_probe, - .priv_auto_alloc_size = sizeof(struct xilinx_xiic_priv), + .priv_auto = sizeof(struct xilinx_xiic_priv), .ops = &xilinx_xiic_ops, }; |