tpm: Use livetree and allow children
authorSimon Glass <sjg@chromium.org>
Mon, 1 Oct 2018 18:22:27 +0000 (12:22 -0600)
committerSimon Glass <sjg@chromium.org>
Tue, 9 Oct 2018 10:40:27 +0000 (04:40 -0600)
Adjust the TPM drivers to use livetree (only one does not). Also,
sometimes TPMs can have child devices if they provide a service to the
system (such as storing secure data), so permit that.

Signed-off-by: Simon Glass <sjg@chromium.org>
drivers/tpm/tpm-uclass.c
drivers/tpm/tpm_tis_lpc.c

index 80fa0783d58b0837a78f435e86ca0c714787b4c9..1b11c93194d6827ce2600acf4af63bdf8f7b7643 100644 (file)
@@ -129,5 +129,8 @@ UCLASS_DRIVER(tpm) = {
        .id             = UCLASS_TPM,
        .name           = "tpm",
        .flags          = DM_UC_FLAG_SEQ_ALIAS,
+#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
+       .post_bind      = dm_scan_fdt_dev,
+#endif
        .per_device_auto_alloc_size     = sizeof(struct tpm_chip_priv),
 };
index 7664bb1a6057996b4d2a8c0d726fce1b370045c4..e993fd9f833d98d053d23377bc4a7ec87331c312 100644 (file)
@@ -164,7 +164,7 @@ static int tpm_tis_lpc_probe(struct udevice *dev)
        u32 didvid;
        ulong chip_type = dev_get_driver_data(dev);
 
-       addr = devfdt_get_addr(dev);
+       addr = dev_read_addr(dev);
        if (addr == FDT_ADDR_T_NONE)
                return -EINVAL;
        priv->regs = map_sysmem(addr, 0);