dm: Use dm_scan_fdt_dev() directly where possible

Quite a few places have a bind() method which just calls dm_scan_fdt_dev().
We may as well call dm_scan_fdt_dev() directly. Update the code to do this.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2016-07-05 17:10:10 -06:00
parent 2e3f1ff63f
commit 911954859d
17 changed files with 25 additions and 131 deletions

View file

@ -10,19 +10,8 @@
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
static int lpc_uclass_post_bind(struct udevice *bus)
{
/*
* Scan the device tree for devices
*
* Before relocation, only bind devices marked for pre-relocation
* use.
*/
return dm_scan_fdt_dev(bus);
}
UCLASS_DRIVER(lpc) = { UCLASS_DRIVER(lpc) = {
.id = UCLASS_LPC, .id = UCLASS_LPC,
.name = "lpc", .name = "lpc",
.post_bind = lpc_uclass_post_bind, .post_bind = dm_scan_fdt_dev,
}; };

View file

@ -754,12 +754,6 @@ int usb_hub_scan(struct udevice *hub)
return usb_hub_configure(udev); return usb_hub_configure(udev);
} }
static int usb_hub_post_bind(struct udevice *dev)
{
/* Scan the bus for devices */
return dm_scan_fdt_dev(dev);
}
static int usb_hub_post_probe(struct udevice *dev) static int usb_hub_post_probe(struct udevice *dev)
{ {
debug("%s\n", __func__); debug("%s\n", __func__);
@ -781,7 +775,7 @@ U_BOOT_DRIVER(usb_generic_hub) = {
UCLASS_DRIVER(usb_hub) = { UCLASS_DRIVER(usb_hub) = {
.id = UCLASS_USB_HUB, .id = UCLASS_USB_HUB,
.name = "usb_hub", .name = "usb_hub",
.post_bind = usb_hub_post_bind, .post_bind = dm_scan_fdt_dev,
.post_probe = usb_hub_post_probe, .post_probe = usb_hub_post_probe,
.child_pre_probe = usb_child_pre_probe, .child_pre_probe = usb_child_pre_probe,
.per_child_auto_alloc_size = sizeof(struct usb_device), .per_child_auto_alloc_size = sizeof(struct usb_device),

View file

@ -498,16 +498,6 @@ static int i2c_post_probe(struct udevice *dev)
#endif #endif
} }
static int i2c_post_bind(struct udevice *dev)
{
#if CONFIG_IS_ENABLED(OF_CONTROL)
/* Scan the bus for devices */
return dm_scan_fdt_dev(dev);
#else
return 0;
#endif
}
static int i2c_child_post_bind(struct udevice *dev) static int i2c_child_post_bind(struct udevice *dev)
{ {
#if CONFIG_IS_ENABLED(OF_CONTROL) #if CONFIG_IS_ENABLED(OF_CONTROL)
@ -526,7 +516,9 @@ UCLASS_DRIVER(i2c) = {
.id = UCLASS_I2C, .id = UCLASS_I2C,
.name = "i2c", .name = "i2c",
.flags = DM_UC_FLAG_SEQ_ALIAS, .flags = DM_UC_FLAG_SEQ_ALIAS,
.post_bind = i2c_post_bind, #if CONFIG_IS_ENABLED(OF_CONTROL)
.post_bind = dm_scan_fdt_dev,
#endif
.post_probe = i2c_post_probe, .post_probe = i2c_post_probe,
.per_device_auto_alloc_size = sizeof(struct dm_i2c_bus), .per_device_auto_alloc_size = sizeof(struct dm_i2c_bus),
.per_child_platdata_auto_alloc_size = sizeof(struct dm_i2c_chip), .per_child_platdata_auto_alloc_size = sizeof(struct dm_i2c_chip),

View file

@ -1449,12 +1449,6 @@ static int do_cros_ec(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return ret; return ret;
} }
int cros_ec_post_bind(struct udevice *dev)
{
/* Scan for available EC devices (e.g. I2C tunnel) */
return dm_scan_fdt_dev(dev);
}
U_BOOT_CMD( U_BOOT_CMD(
crosec, 6, 1, do_cros_ec, crosec, 6, 1, do_cros_ec,
"CROS-EC utility command", "CROS-EC utility command",
@ -1481,5 +1475,5 @@ UCLASS_DRIVER(cros_ec) = {
.id = UCLASS_CROS_EC, .id = UCLASS_CROS_EC,
.name = "cros_ec", .name = "cros_ec",
.per_device_auto_alloc_size = sizeof(struct cros_ec_dev), .per_device_auto_alloc_size = sizeof(struct cros_ec_dev),
.post_bind = cros_ec_post_bind, .post_bind = dm_scan_fdt_dev,
}; };

View file

@ -54,19 +54,8 @@ int pch_get_io_base(struct udevice *dev, u32 *iobasep)
return ops->get_io_base(dev, iobasep); return ops->get_io_base(dev, iobasep);
} }
static int pch_uclass_post_bind(struct udevice *bus)
{
/*
* Scan the device tree for devices
*
* Before relocation, only bind devices marked for pre-relocation
* use.
*/
return dm_scan_fdt_dev(bus);
}
UCLASS_DRIVER(pch) = { UCLASS_DRIVER(pch) = {
.id = UCLASS_PCH, .id = UCLASS_PCH,
.name = "pch", .name = "pch",
.post_bind = pch_uclass_post_bind, .post_bind = dm_scan_fdt_dev,
}; };

View file

@ -752,19 +752,6 @@ error:
return ret; return ret;
} }
static int pci_uclass_post_bind(struct udevice *bus)
{
/*
* Scan the device tree for devices. This does not probe the PCI bus,
* as this is not permitted while binding. It just finds devices
* mentioned in the device tree.
*
* Before relocation, only bind devices marked for pre-relocation
* use.
*/
return dm_scan_fdt_dev(bus);
}
static int decode_regions(struct pci_controller *hose, const void *blob, static int decode_regions(struct pci_controller *hose, const void *blob,
int parent_node, int node) int parent_node, int node)
{ {
@ -1245,7 +1232,7 @@ UCLASS_DRIVER(pci) = {
.id = UCLASS_PCI, .id = UCLASS_PCI,
.name = "pci", .name = "pci",
.flags = DM_UC_FLAG_SEQ_ALIAS, .flags = DM_UC_FLAG_SEQ_ALIAS,
.post_bind = pci_uclass_post_bind, .post_bind = dm_scan_fdt_dev,
.pre_probe = pci_uclass_pre_probe, .pre_probe = pci_uclass_pre_probe,
.post_probe = pci_uclass_post_probe, .post_probe = pci_uclass_post_probe,
.child_post_bind = pci_uclass_child_post_bind, .child_post_bind = pci_uclass_child_post_bind,

View file

@ -51,12 +51,6 @@ static int sandbox_pci_read_config(struct udevice *bus, pci_dev_t devfn,
return ops->read_config(emul, offset, valuep, size); return ops->read_config(emul, offset, valuep, size);
} }
static int sandbox_pci_child_post_bind(struct udevice *dev)
{
/* Attach an emulator if we can */
return dm_scan_fdt_dev(dev);
}
static const struct dm_pci_ops sandbox_pci_ops = { static const struct dm_pci_ops sandbox_pci_ops = {
.read_config = sandbox_pci_read_config, .read_config = sandbox_pci_read_config,
.write_config = sandbox_pci_write_config, .write_config = sandbox_pci_write_config,
@ -72,7 +66,9 @@ U_BOOT_DRIVER(pci_sandbox) = {
.id = UCLASS_PCI, .id = UCLASS_PCI,
.of_match = sandbox_pci_ids, .of_match = sandbox_pci_ids,
.ops = &sandbox_pci_ops, .ops = &sandbox_pci_ops,
.child_post_bind = sandbox_pci_child_post_bind,
/* Attach an emulator if we can */
.child_post_bind = dm_scan_fdt_dev,
.per_child_platdata_auto_alloc_size = .per_child_platdata_auto_alloc_size =
sizeof(struct pci_child_platdata), sizeof(struct pci_child_platdata),
}; };

View file

@ -340,12 +340,6 @@ static int pic32_pinctrl_probe(struct udevice *dev)
return 0; return 0;
} }
static int pic32_pinctrl_bind(struct udevice *dev)
{
/* scan child GPIO banks */
return dm_scan_fdt_dev(dev);
}
static const struct udevice_id pic32_pinctrl_ids[] = { static const struct udevice_id pic32_pinctrl_ids[] = {
{ .compatible = "microchip,pic32mzda-pinctrl" }, { .compatible = "microchip,pic32mzda-pinctrl" },
{ } { }
@ -357,6 +351,6 @@ U_BOOT_DRIVER(pinctrl_pic32) = {
.of_match = pic32_pinctrl_ids, .of_match = pic32_pinctrl_ids,
.ops = &pic32_pinctrl_ops, .ops = &pic32_pinctrl_ops,
.probe = pic32_pinctrl_probe, .probe = pic32_pinctrl_probe,
.bind = pic32_pinctrl_bind, .bind = dm_scan_fdt_dev,
.priv_auto_alloc_size = sizeof(struct pic32_pinctrl_priv), .priv_auto_alloc_size = sizeof(struct pic32_pinctrl_priv),
}; };

View file

@ -252,12 +252,6 @@ static struct pinctrl_ops rk3036_pinctrl_ops = {
.get_periph_id = rk3036_pinctrl_get_periph_id, .get_periph_id = rk3036_pinctrl_get_periph_id,
}; };
static int rk3036_pinctrl_bind(struct udevice *dev)
{
/* scan child GPIO banks */
return dm_scan_fdt_dev(dev);
}
static int rk3036_pinctrl_probe(struct udevice *dev) static int rk3036_pinctrl_probe(struct udevice *dev)
{ {
struct rk3036_pinctrl_priv *priv = dev_get_priv(dev); struct rk3036_pinctrl_priv *priv = dev_get_priv(dev);
@ -278,6 +272,6 @@ U_BOOT_DRIVER(pinctrl_rk3036) = {
.of_match = rk3036_pinctrl_ids, .of_match = rk3036_pinctrl_ids,
.priv_auto_alloc_size = sizeof(struct rk3036_pinctrl_priv), .priv_auto_alloc_size = sizeof(struct rk3036_pinctrl_priv),
.ops = &rk3036_pinctrl_ops, .ops = &rk3036_pinctrl_ops,
.bind = rk3036_pinctrl_bind, .bind = dm_scan_fdt_dev,
.probe = rk3036_pinctrl_probe, .probe = rk3036_pinctrl_probe,
}; };

View file

@ -663,15 +663,6 @@ static struct pinctrl_ops rk3288_pinctrl_ops = {
.get_periph_id = rk3288_pinctrl_get_periph_id, .get_periph_id = rk3288_pinctrl_get_periph_id,
}; };
static int rk3288_pinctrl_bind(struct udevice *dev)
{
#if CONFIG_IS_ENABLED(OF_PLATDATA)
return 0;
#else
return dm_scan_fdt_dev(dev);
#endif
}
#ifndef CONFIG_SPL_BUILD #ifndef CONFIG_SPL_BUILD
static int rk3288_pinctrl_parse_tables(struct rk3288_pinctrl_priv *priv, static int rk3288_pinctrl_parse_tables(struct rk3288_pinctrl_priv *priv,
struct rockchip_pin_bank *banks, struct rockchip_pin_bank *banks,
@ -728,6 +719,8 @@ U_BOOT_DRIVER(pinctrl_rk3288) = {
.of_match = rk3288_pinctrl_ids, .of_match = rk3288_pinctrl_ids,
.priv_auto_alloc_size = sizeof(struct rk3288_pinctrl_priv), .priv_auto_alloc_size = sizeof(struct rk3288_pinctrl_priv),
.ops = &rk3288_pinctrl_ops, .ops = &rk3288_pinctrl_ops,
.bind = rk3288_pinctrl_bind, #if !CONFIG_IS_ENABLED(OF_PLATDATA)
.bind = dm_scan_fdt_dev,
#endif
.probe = rk3288_pinctrl_probe, .probe = rk3288_pinctrl_probe,
}; };

View file

@ -78,17 +78,11 @@ static int pm8916_probe(struct udevice *dev)
return 0; return 0;
} }
static int pm8916_bind(struct udevice *dev)
{
return dm_scan_fdt_dev(dev);
}
U_BOOT_DRIVER(pmic_pm8916) = { U_BOOT_DRIVER(pmic_pm8916) = {
.name = "pmic_pm8916", .name = "pmic_pm8916",
.id = UCLASS_PMIC, .id = UCLASS_PMIC,
.of_match = pm8916_ids, .of_match = pm8916_ids,
.bind = pm8916_bind, .bind = dm_scan_fdt_dev,
.probe = pm8916_probe, .probe = pm8916_probe,
.ops = &pm8916_ops, .ops = &pm8916_ops,
.priv_auto_alloc_size = sizeof(struct pm8916_priv), .priv_auto_alloc_size = sizeof(struct pm8916_priv),

View file

@ -108,12 +108,6 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen,
return dm_spi_xfer(slave->dev, bitlen, dout, din, flags); return dm_spi_xfer(slave->dev, bitlen, dout, din, flags);
} }
static int spi_post_bind(struct udevice *dev)
{
/* Scan the bus for devices */
return dm_scan_fdt_dev(dev);
}
static int spi_child_post_bind(struct udevice *dev) static int spi_child_post_bind(struct udevice *dev)
{ {
struct dm_spi_slave_platdata *plat = dev_get_parent_platdata(dev); struct dm_spi_slave_platdata *plat = dev_get_parent_platdata(dev);
@ -445,7 +439,7 @@ UCLASS_DRIVER(spi) = {
.id = UCLASS_SPI, .id = UCLASS_SPI,
.name = "spi", .name = "spi",
.flags = DM_UC_FLAG_SEQ_ALIAS, .flags = DM_UC_FLAG_SEQ_ALIAS,
.post_bind = spi_post_bind, .post_bind = dm_scan_fdt_dev,
.post_probe = spi_post_probe, .post_probe = spi_post_probe,
.child_pre_probe = spi_child_pre_probe, .child_pre_probe = spi_child_pre_probe,
.per_device_auto_alloc_size = sizeof(struct dm_spi_bus), .per_device_auto_alloc_size = sizeof(struct dm_spi_bus),

View file

@ -35,13 +35,8 @@ int spmi_reg_write(struct udevice *dev, int usid, int pid, int reg,
return ops->write(dev, usid, pid, reg, value); return ops->write(dev, usid, pid, reg, value);
} }
static int spmi_post_bind(struct udevice *dev)
{
return dm_scan_fdt_dev(dev);
}
UCLASS_DRIVER(spmi) = { UCLASS_DRIVER(spmi) = {
.id = UCLASS_SPMI, .id = UCLASS_SPMI,
.name = "spmi", .name = "spmi",
.post_bind = spmi_post_bind, .post_bind = dm_scan_fdt_dev,
}; };

View file

@ -264,12 +264,6 @@ int usb_emul_setup_device(struct udevice *dev, int maxpacketsize,
return 0; return 0;
} }
int usb_emul_post_bind(struct udevice *dev)
{
/* Scan the bus for devices */
return dm_scan_fdt_dev(dev);
}
void usb_emul_reset(struct udevice *dev) void usb_emul_reset(struct udevice *dev)
{ {
struct usb_dev_platdata *plat = dev_get_parent_platdata(dev); struct usb_dev_platdata *plat = dev_get_parent_platdata(dev);
@ -281,7 +275,7 @@ void usb_emul_reset(struct udevice *dev)
UCLASS_DRIVER(usb_emul) = { UCLASS_DRIVER(usb_emul) = {
.id = UCLASS_USB_EMUL, .id = UCLASS_USB_EMUL,
.name = "usb_emul", .name = "usb_emul",
.post_bind = usb_emul_post_bind, .post_bind = dm_scan_fdt_dev,
.per_child_auto_alloc_size = sizeof(struct usb_device), .per_child_auto_alloc_size = sizeof(struct usb_device),
.per_child_platdata_auto_alloc_size = sizeof(struct usb_dev_platdata), .per_child_platdata_auto_alloc_size = sizeof(struct usb_dev_platdata),
}; };

View file

@ -348,11 +348,6 @@ struct usb_device *usb_get_dev_index(struct udevice *bus, int index)
} }
#endif #endif
int usb_post_bind(struct udevice *dev)
{
return dm_scan_fdt_dev(dev);
}
int usb_setup_ehci_gadget(struct ehci_ctrl **ctlrp) int usb_setup_ehci_gadget(struct ehci_ctrl **ctlrp)
{ {
struct usb_platdata *plat; struct usb_platdata *plat;
@ -766,7 +761,7 @@ UCLASS_DRIVER(usb) = {
.id = UCLASS_USB, .id = UCLASS_USB,
.name = "usb", .name = "usb",
.flags = DM_UC_FLAG_SEQ_ALIAS, .flags = DM_UC_FLAG_SEQ_ALIAS,
.post_bind = usb_post_bind, .post_bind = dm_scan_fdt_dev,
.priv_auto_alloc_size = sizeof(struct usb_uclass_priv), .priv_auto_alloc_size = sizeof(struct usb_uclass_priv),
.per_child_auto_alloc_size = sizeof(struct usb_device), .per_child_auto_alloc_size = sizeof(struct usb_device),
.per_device_auto_alloc_size = sizeof(struct usb_bus_priv), .per_device_auto_alloc_size = sizeof(struct usb_bus_priv),

View file

@ -31,8 +31,8 @@ static int dm_test_i2c_find(struct unit_test_state *uts)
false, &bus)); false, &bus));
/* /*
* i2c_post_bind() will bind devices to chip selects. Check this then * The post_bind() method will bind devices to chip selects. Check
* remove the emulation and the slave device. * this then remove the emulation and the slave device.
*/ */
ut_assertok(uclass_get_device_by_seq(UCLASS_I2C, busnum, &bus)); ut_assertok(uclass_get_device_by_seq(UCLASS_I2C, busnum, &bus));
ut_assertok(dm_i2c_probe(bus, chip, 0, &dev)); ut_assertok(dm_i2c_probe(bus, chip, 0, &dev));

View file

@ -30,8 +30,8 @@ static int dm_test_spi_find(struct unit_test_state *uts)
false, &bus)); false, &bus));
/* /*
* spi_post_bind() will bind devices to chip selects. Check this then * The post_bind() method will bind devices to chip selects. Check
* remove the emulation and the slave device. * this then remove the emulation and the slave device.
*/ */
ut_asserteq(0, uclass_get_device_by_seq(UCLASS_SPI, busnum, &bus)); ut_asserteq(0, uclass_get_device_by_seq(UCLASS_SPI, busnum, &bus));
ut_assertok(spi_cs_info(bus, cs, &info)); ut_assertok(spi_cs_info(bus, cs, &info));