diff mbox

[U-Boot,v2,1/9] dm: Use dm.h header when driver mode is used

Message ID 20170501151852.26670-2-sjg@chromium.org
State Superseded
Delegated to: Simon Glass
Headers show

Commit Message

Simon Glass May 1, 2017, 3:18 p.m. UTC
This header includes things that are needed to make driver build. Adjust
existing users to include that always, even if other dm/ includes are
present

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v2: None

 arch/arm/lib/bootm.c                               | 2 +-
 arch/arm/mach-uniphier/pinctrl-glue.c              | 3 +--
 arch/sandbox/cpu/cpu.c                             | 1 +
 board/amlogic/odroid-c2/odroid-c2.c                | 2 +-
 board/armltd/integrator/integrator.c               | 2 +-
 board/armltd/vexpress64/vexpress64.c               | 2 +-
 board/beckhoff/mx53cx9020/mx53cx9020.c             | 2 +-
 board/cadence/xtfpga/xtfpga.c                      | 2 +-
 board/cavium/thunderx/thunderx.c                   | 2 +-
 board/freescale/common/fsl_chain_of_trust.c        | 1 +
 board/freescale/common/fsl_validate.c              | 2 +-
 board/st/stm32f429-discovery/stm32f429-discovery.c | 2 +-
 board/st/stm32f746-disco/stm32f746-disco.c         | 2 +-
 board/st/stv0991/stv0991.c                         | 2 +-
 board/toradex/apalis_imx6/apalis_imx6.c            | 1 +
 board/toradex/colibri_imx6/colibri_imx6.c          | 1 +
 board/toradex/colibri_pxa270/colibri_pxa270.c      | 1 +
 cmd/bootefi.c                                      | 2 +-
 common/env_sf.c                                    | 1 +
 drivers/clk/at91/clk-generated.c                   | 2 +-
 drivers/clk/at91/clk-h32mx.c                       | 2 +-
 drivers/clk/at91/clk-main.c                        | 2 +-
 drivers/clk/at91/clk-master.c                      | 2 +-
 drivers/clk/at91/clk-peripheral.c                  | 2 +-
 drivers/clk/at91/clk-plla.c                        | 2 +-
 drivers/clk/at91/clk-slow.c                        | 2 +-
 drivers/clk/at91/clk-system.c                      | 2 +-
 drivers/clk/at91/clk-utmi.c                        | 2 +-
 drivers/clk/at91/pmc.c                             | 3 +--
 drivers/clk/at91/sckc.c                            | 3 +--
 drivers/clk/clk_fixed_rate.c                       | 2 +-
 drivers/clk/clk_zynqmp.c                           | 2 +-
 drivers/clk/uniphier/clk-uniphier-core.c           | 2 +-
 drivers/dma/ti-edma3.c                             | 2 +-
 drivers/firmware/firmware-uclass.c                 | 2 +-
 drivers/firmware/psci.c                            | 2 +-
 drivers/gpio/gpio-uniphier.c                       | 2 +-
 drivers/i2c/i2c-cdns.c                             | 2 +-
 drivers/i2c/i2c-uniphier-f.c                       | 2 +-
 drivers/i2c/i2c-uniphier.c                         | 2 +-
 drivers/mmc/gen_atmel_mci.c                        | 2 +-
 drivers/mmc/meson_gx_mmc.c                         | 2 +-
 drivers/mmc/sdhci-cadence.c                        | 2 +-
 drivers/mmc/tegra_mmc.c                            | 2 +-
 drivers/mmc/uniphier-sd.c                          | 2 +-
 drivers/net/ethoc.c                                | 2 +-
 drivers/pinctrl/meson/pinctrl-meson-gxbb.c         | 2 +-
 drivers/pinctrl/meson/pinctrl-meson.c              | 2 +-
 drivers/pinctrl/nxp/pinctrl-imx.c                  | 2 +-
 drivers/pinctrl/nxp/pinctrl-imx5.c                 | 2 +-
 drivers/pinctrl/nxp/pinctrl-imx6.c                 | 2 +-
 drivers/pinctrl/nxp/pinctrl-imx7.c                 | 2 +-
 drivers/pinctrl/nxp/pinctrl-imx7ulp.c              | 2 +-
 drivers/pinctrl/pinctrl-at91-pio4.c                | 2 +-
 drivers/pinctrl/pinctrl-at91.c                     | 2 +-
 drivers/pinctrl/pinctrl-generic.c                  | 2 +-
 drivers/pinctrl/pinctrl-sandbox.c                  | 2 +-
 drivers/pinctrl/pinctrl-single.c                   | 2 +-
 drivers/pinctrl/pinctrl-uclass.c                   | 3 +--
 drivers/pinctrl/uniphier/pinctrl-uniphier-core.c   | 2 +-
 drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c   | 2 +-
 drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c   | 2 +-
 drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c    | 2 +-
 drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c   | 2 +-
 drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c   | 2 +-
 drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c   | 2 +-
 drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c   | 2 +-
 drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c   | 2 +-
 drivers/pinctrl/uniphier/pinctrl-uniphier-sld3.c   | 2 +-
 drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c   | 2 +-
 drivers/reset/reset-uniphier.c                     | 2 +-
 drivers/serial/serial_uniphier.c                   | 2 +-
 drivers/sysreset/sysreset_psci.c                   | 2 +-
 drivers/usb/musb-new/sunxi.c                       | 1 +
 74 files changed, 74 insertions(+), 71 deletions(-)

Comments

Tom Rini May 10, 2017, 9:43 p.m. UTC | #1
On Mon, May 01, 2017 at 09:18:44AM -0600, Simon Glass wrote:

> This header includes things that are needed to make driver build. Adjust
> existing users to include that always, even if other dm/ includes are
> present
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Reviewed-by: Tom Rini <trini@konsulko.com>
Masahiro Yamada May 11, 2017, 2:12 a.m. UTC | #2
Hi Simon,


2017-05-11 6:43 GMT+09:00 Tom Rini <trini@konsulko.com>:
> On Mon, May 01, 2017 at 09:18:44AM -0600, Simon Glass wrote:
>
>> This header includes things that are needed to make driver build. Adjust
>> existing users to include that always, even if other dm/ includes are
>> present
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>
> Reviewed-by: Tom Rini <trini@konsulko.com>
>

I'd say this is a bad idea.
I believe .c files should include headers that are really necessary.

Mostly, drivers need only dm/device.h, but this commit
requires additional parse of dm/uclass.h and dm/platdata.h.

Rather, it is better to deprecate dm.h.

Its concept is DM common header that you force drivers to include
where some in them may not be necessary.

It is a similar idea to include/common.h,
which is one of the biggest design mistakes in U-Boot.
Simon Glass May 13, 2017, 1:11 a.m. UTC | #3
Hi Masahiro,

On 10 May 2017 at 20:12, Masahiro Yamada <yamada.masahiro@socionext.com> wrote:
> Hi Simon,
>
>
> 2017-05-11 6:43 GMT+09:00 Tom Rini <trini@konsulko.com>:
>> On Mon, May 01, 2017 at 09:18:44AM -0600, Simon Glass wrote:
>>
>>> This header includes things that are needed to make driver build. Adjust
>>> existing users to include that always, even if other dm/ includes are
>>> present
>>>
>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>
>> Reviewed-by: Tom Rini <trini@konsulko.com>
>>
>
> I'd say this is a bad idea.
> I believe .c files should include headers that are really necessary.
>
> Mostly, drivers need only dm/device.h, but this commit
> requires additional parse of dm/uclass.h and dm/platdata.h.
>
> Rather, it is better to deprecate dm.h.
>
> Its concept is DM common header that you force drivers to include
> where some in them may not be necessary.

I did consider this right at the start but I think it is too painful
for users. There are only a few files that we pull in so the overhead
is not great. It avoids having to add new headers because some other
function is used.

One option might be to define all the structs in one header, since
those are the things that are really painful to figure out. We could
then make the function name prefixes fully consistent with the header
file name (mostly they are, but see lists.h and root.h). That would
make it easier.

>
> It is a similar idea to include/common.h,
> which is one of the biggest design mistakes in U-Boot.

We have been slowing pulling things out of common.h - see for example
mapmem.h and vsprint.h. We also have a lot of files in include/ which
really should be arch-specific.

But in any case I think common.h is useful just to include the
configuration and some common declarations (like global_data). The
problem is that it has too much in it.

Regards,
Simon
Masahiro Yamada May 16, 2017, 9:56 a.m. UTC | #4
Hi Simon,

2017-05-13 10:11 GMT+09:00 Simon Glass <sjg@chromium.org>:
> Hi Masahiro,
>
> On 10 May 2017 at 20:12, Masahiro Yamada <yamada.masahiro@socionext.com> wrote:
>> Hi Simon,
>>
>>
>> 2017-05-11 6:43 GMT+09:00 Tom Rini <trini@konsulko.com>:
>>> On Mon, May 01, 2017 at 09:18:44AM -0600, Simon Glass wrote:
>>>
>>>> This header includes things that are needed to make driver build. Adjust
>>>> existing users to include that always, even if other dm/ includes are
>>>> present
>>>>
>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>
>>> Reviewed-by: Tom Rini <trini@konsulko.com>
>>>
>>
>> I'd say this is a bad idea.
>> I believe .c files should include headers that are really necessary.
>>
>> Mostly, drivers need only dm/device.h, but this commit
>> requires additional parse of dm/uclass.h and dm/platdata.h.
>>
>> Rather, it is better to deprecate dm.h.
>>
>> Its concept is DM common header that you force drivers to include
>> where some in them may not be necessary.
>
> I did consider this right at the start but I think it is too painful
> for users. There are only a few files that we pull in so the overhead
> is not great. It avoids having to add new headers because some other
> function is used.
>
> One option might be to define all the structs in one header, since
> those are the things that are really painful to figure out. We could
> then make the function name prefixes fully consistent with the header
> file name (mostly they are, but see lists.h and root.h). That would
> make it easier.

Still I do not get your point.

include/dm.h includes 3 headers and they are used for different purposes.

Most of drivers need only <dm/device.h>.
<dm/platdata.h> is mostly used in board files.
<dm/uclass.h> is used for core frameworks,
(and when getting access to a different uclass).


Each file just includes only needed headers, and
nothing confusing.


I do not see any benefit in this patch.



>>
>> It is a similar idea to include/common.h,
>> which is one of the biggest design mistakes in U-Boot.
>
> We have been slowing pulling things out of common.h - see for example
> mapmem.h and vsprint.h. We also have a lot of files in include/ which
> really should be arch-specific.
>
> But in any case I think common.h is useful just to include the
> configuration and some common declarations (like global_data). The
> problem is that it has too much in it.

The concept of common.h itself is wrong.

If global_data is needed, <asm-generic/global_data.h> should be included.
If printf() is needed, it should be declared in include/stdio.h or somewhere.
Simon Glass May 17, 2017, 10:07 a.m. UTC | #5
Hi Masahiro,

On 16 May 2017 at 03:56, Masahiro Yamada <yamada.masahiro@socionext.com> wrote:
> Hi Simon,
>
> 2017-05-13 10:11 GMT+09:00 Simon Glass <sjg@chromium.org>:
>> Hi Masahiro,
>>
>> On 10 May 2017 at 20:12, Masahiro Yamada <yamada.masahiro@socionext.com> wrote:
>>> Hi Simon,
>>>
>>>
>>> 2017-05-11 6:43 GMT+09:00 Tom Rini <trini@konsulko.com>:
>>>> On Mon, May 01, 2017 at 09:18:44AM -0600, Simon Glass wrote:
>>>>
>>>>> This header includes things that are needed to make driver build. Adjust
>>>>> existing users to include that always, even if other dm/ includes are
>>>>> present
>>>>>
>>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>>
>>>> Reviewed-by: Tom Rini <trini@konsulko.com>
>>>>
>>>
>>> I'd say this is a bad idea.
>>> I believe .c files should include headers that are really necessary.
>>>
>>> Mostly, drivers need only dm/device.h, but this commit
>>> requires additional parse of dm/uclass.h and dm/platdata.h.
>>>
>>> Rather, it is better to deprecate dm.h.
>>>
>>> Its concept is DM common header that you force drivers to include
>>> where some in them may not be necessary.
>>
>> I did consider this right at the start but I think it is too painful
>> for users. There are only a few files that we pull in so the overhead
>> is not great. It avoids having to add new headers because some other
>> function is used.
>>
>> One option might be to define all the structs in one header, since
>> those are the things that are really painful to figure out. We could
>> then make the function name prefixes fully consistent with the header
>> file name (mostly they are, but see lists.h and root.h). That would
>> make it easier.
>
> Still I do not get your point.
>
> include/dm.h includes 3 headers and they are used for different purposes.
>
> Most of drivers need only <dm/device.h>.
> <dm/platdata.h> is mostly used in board files.
> <dm/uclass.h> is used for core frameworks,
> (and when getting access to a different uclass).
>
>
> Each file just includes only needed headers, and
> nothing confusing.
>
>
> I do not see any benefit in this patch.

See the next patch which moves some functions from device.h to
fdtaddr.h. The intent is to make it clear that these functions do not
support livetree. The next series sets up support for dev_read_...()
which is what each driver should use. Eventually we could make
fdtaddr.h private and only include it when needed (i.e. when not using
a live tree). I certainly don't want that inclusion logic to bleed
into drivers.

The implication of what you are asking is that I need to include
dm/fdtaddr.h in those drivers that don't include dm.h. Then in a later
patch I need to change this to dm/read.h.

In fact most people don't want to worry about which header to include
to get the common DM functions. For this sort of refactoring effort it
makes the job that much more painful if every C file does things its
own way.

I regard the actual dm/... headers as internal to driver model. I
don't want to expose particular headers in general, for the very
reason that it causes these sorts of problems.

I think once livetree is complete and the header files are stable then
we could look at the benefits of requiring files to include dm/read.h
since that will become the only file most drivers want. But it does
involve higher maintenance cost.

Right now I am really feeling the pain of the maintenance cost.

So while I understand the disadvantages, I'd like to leave this patch
as is. It is 74 files. I have a second series to get through and then
a third to enable on a real board. It is a lot of work even without
this sort of problem.

If you are really upset about it I am willing to come back when they
are converted and minimise the headers on these files.

>
>
>
>>>
>>> It is a similar idea to include/common.h,
>>> which is one of the biggest design mistakes in U-Boot.
>>
>> We have been slowing pulling things out of common.h - see for example
>> mapmem.h and vsprint.h. We also have a lot of files in include/ which
>> really should be arch-specific.
>>
>> But in any case I think common.h is useful just to include the
>> configuration and some common declarations (like global_data). The
>> problem is that it has too much in it.
>
> The concept of common.h itself is wrong.
>
> If global_data is needed, <asm-generic/global_data.h> should be included.
> If printf() is needed, it should be declared in include/stdio.h or somewhere.

It's all very well to talk about this problem, but we need to change
it. I think the best way is to remove things from common.h until it
contains nothing.

I'll send a series to pare this down a bit more
(u-boot-dm/common-working). If you have time, please help!

Regards
Simon
diff mbox

Patch

diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 4dbe6a5303..eb242223b4 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -14,7 +14,7 @@ 
 
 #include <common.h>
 #include <command.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/root.h>
 #include <image.h>
 #include <u-boot/zlib.h>
diff --git a/arch/arm/mach-uniphier/pinctrl-glue.c b/arch/arm/mach-uniphier/pinctrl-glue.c
index c52c6a6f6c..725569f90c 100644
--- a/arch/arm/mach-uniphier/pinctrl-glue.c
+++ b/arch/arm/mach-uniphier/pinctrl-glue.c
@@ -6,9 +6,8 @@ 
  */
 
 #include <linux/errno.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
-#include <dm/uclass.h>
 
 #include "init.h"
 
diff --git a/arch/sandbox/cpu/cpu.c b/arch/sandbox/cpu/cpu.c
index 2def72212d..3fe99b853d 100644
--- a/arch/sandbox/cpu/cpu.c
+++ b/arch/sandbox/cpu/cpu.c
@@ -4,6 +4,7 @@ 
  */
 #define DEBUG
 #include <common.h>
+#include <dm.h>
 #include <errno.h>
 #include <libfdt.h>
 #include <os.h>
diff --git a/board/amlogic/odroid-c2/odroid-c2.c b/board/amlogic/odroid-c2/odroid-c2.c
index b61daaa4a7..9306b56a6a 100644
--- a/board/amlogic/odroid-c2/odroid-c2.c
+++ b/board/amlogic/odroid-c2/odroid-c2.c
@@ -5,10 +5,10 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <asm/io.h>
 #include <asm/arch/gxbb.h>
 #include <asm/arch/sm.h>
-#include <dm/platdata.h>
 #include <phy.h>
 
 #define EFUSE_SN_OFFSET		20
diff --git a/board/armltd/integrator/integrator.c b/board/armltd/integrator/integrator.c
index cbe706170d..fabb8b1c57 100644
--- a/board/armltd/integrator/integrator.c
+++ b/board/armltd/integrator/integrator.c
@@ -18,9 +18,9 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <netdev.h>
 #include <asm/io.h>
-#include <dm/platdata.h>
 #include <dm/platform_data/serial_pl01x.h>
 #include "arm-ebi.h"
 #include "integrator-sc.h"
diff --git a/board/armltd/vexpress64/vexpress64.c b/board/armltd/vexpress64/vexpress64.c
index 0a224178df..26e22c4c25 100644
--- a/board/armltd/vexpress64/vexpress64.c
+++ b/board/armltd/vexpress64/vexpress64.c
@@ -6,12 +6,12 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 #include <common.h>
+#include <dm.h>
 #include <malloc.h>
 #include <errno.h>
 #include <netdev.h>
 #include <asm/io.h>
 #include <linux/compiler.h>
-#include <dm/platdata.h>
 #include <dm/platform_data/serial_pl01x.h>
 #include "pcie.h"
 #include <asm/armv8/mmu.h>
diff --git a/board/beckhoff/mx53cx9020/mx53cx9020.c b/board/beckhoff/mx53cx9020/mx53cx9020.c
index c5d55dc68f..e903bc1807 100644
--- a/board/beckhoff/mx53cx9020/mx53cx9020.c
+++ b/board/beckhoff/mx53cx9020/mx53cx9020.c
@@ -9,6 +9,7 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <asm/io.h>
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/sys_proto.h>
@@ -26,7 +27,6 @@ 
 #include <linux/fb.h>
 #include <ipu_pixfmt.h>
 #include <fs.h>
-#include <dm/platdata.h>
 #include <dm/platform_data/serial_mxc.h>
 
 enum LED_GPIOS {
diff --git a/board/cadence/xtfpga/xtfpga.c b/board/cadence/xtfpga/xtfpga.c
index 39b9b12567..0265e9bb36 100644
--- a/board/cadence/xtfpga/xtfpga.c
+++ b/board/cadence/xtfpga/xtfpga.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <command.h>
-#include <dm/platdata.h>
+#include <dm.h>
 #include <dm/platform_data/net_ethoc.h>
 #include <linux/ctype.h>
 #include <linux/string.h>
diff --git a/board/cavium/thunderx/thunderx.c b/board/cavium/thunderx/thunderx.c
index 960ca53b02..02253af5d9 100644
--- a/board/cavium/thunderx/thunderx.c
+++ b/board/cavium/thunderx/thunderx.c
@@ -5,6 +5,7 @@ 
 **/
 
 #include <common.h>
+#include <dm.h>
 #include <malloc.h>
 #include <errno.h>
 #include <linux/compiler.h>
@@ -13,7 +14,6 @@ 
 #include <asm/armv8/mmu.h>
 
 #if !CONFIG_IS_ENABLED(OF_CONTROL)
-#include <dm/platdata.h>
 #include <dm/platform_data/serial_pl01x.h>
 
 static const struct pl01x_serial_platdata serial0 = {
diff --git a/board/freescale/common/fsl_chain_of_trust.c b/board/freescale/common/fsl_chain_of_trust.c
index aad1b93d14..2cd4fba13f 100644
--- a/board/freescale/common/fsl_chain_of_trust.c
+++ b/board/freescale/common/fsl_chain_of_trust.c
@@ -5,6 +5,7 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <fsl_validate.h>
 #include <fsl_secboot_err.h>
 #include <fsl_sfp.h>
diff --git a/board/freescale/common/fsl_validate.c b/board/freescale/common/fsl_validate.c
index ed48c5c8bd..ef93407646 100644
--- a/board/freescale/common/fsl_validate.c
+++ b/board/freescale/common/fsl_validate.c
@@ -5,13 +5,13 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <fsl_validate.h>
 #include <fsl_secboot_err.h>
 #include <fsl_sfp.h>
 #include <fsl_sec.h>
 #include <command.h>
 #include <malloc.h>
-#include <dm/uclass.h>
 #include <u-boot/rsa-mod-exp.h>
 #include <hash.h>
 #include <fsl_secboot_err.h>
diff --git a/board/st/stm32f429-discovery/stm32f429-discovery.c b/board/st/stm32f429-discovery/stm32f429-discovery.c
index d16d73fc97..8c8abf6a06 100644
--- a/board/st/stm32f429-discovery/stm32f429-discovery.c
+++ b/board/st/stm32f429-discovery/stm32f429-discovery.c
@@ -12,12 +12,12 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <asm/io.h>
 #include <asm/armv7m.h>
 #include <asm/arch/stm32.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/fmc.h>
-#include <dm/platdata.h>
 #include <dm/platform_data/serial_stm32.h>
 #include <asm/arch/stm32_periph.h>
 #include <asm/arch/stm32_defs.h>
diff --git a/board/st/stm32f746-disco/stm32f746-disco.c b/board/st/stm32f746-disco/stm32f746-disco.c
index fdad8d13a7..8736124ecb 100644
--- a/board/st/stm32f746-disco/stm32f746-disco.c
+++ b/board/st/stm32f746-disco/stm32f746-disco.c
@@ -6,12 +6,12 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <asm/io.h>
 #include <asm/armv7m.h>
 #include <asm/arch/stm32.h>
 #include <asm/arch/gpio.h>
 #include <asm/arch/fmc.h>
-#include <dm/platdata.h>
 #include <dm/platform_data/serial_stm32x7.h>
 #include <asm/arch/stm32_periph.h>
 #include <asm/arch/stm32_defs.h>
diff --git a/board/st/stv0991/stv0991.c b/board/st/stv0991/stv0991.c
index 6a19730069..85ac66ec3a 100644
--- a/board/st/stv0991/stv0991.c
+++ b/board/st/stv0991/stv0991.c
@@ -6,6 +6,7 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <miiphy.h>
 #include <asm/arch/stv0991_periph.h>
 #include <asm/arch/stv0991_defs.h>
@@ -13,7 +14,6 @@ 
 #include <asm/arch/gpio.h>
 #include <netdev.h>
 #include <asm/io.h>
-#include <dm/platdata.h>
 #include <dm/platform_data/serial_pl01x.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/board/toradex/apalis_imx6/apalis_imx6.c b/board/toradex/apalis_imx6/apalis_imx6.c
index 09bebeb71b..d79f79cbb9 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -8,6 +8,7 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/mxc_hdmi.h>
diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c
index d070677054..69467ca895 100644
--- a/board/toradex/colibri_imx6/colibri_imx6.c
+++ b/board/toradex/colibri_imx6/colibri_imx6.c
@@ -8,6 +8,7 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/imx-regs.h>
diff --git a/board/toradex/colibri_pxa270/colibri_pxa270.c b/board/toradex/colibri_pxa270/colibri_pxa270.c
index 8e948545e3..5d62e66495 100644
--- a/board/toradex/colibri_pxa270/colibri_pxa270.c
+++ b/board/toradex/colibri_pxa270/colibri_pxa270.c
@@ -8,6 +8,7 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <asm/arch/hardware.h>
 #include <asm/arch/pxa.h>
 #include <asm/arch/regs-mmc.h>
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 3b777058f4..a0a5434967 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -8,7 +8,7 @@ 
 
 #include <common.h>
 #include <command.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <efi_loader.h>
 #include <errno.h>
 #include <libfdt.h>
diff --git a/common/env_sf.c b/common/env_sf.c
index 27b4d1226a..d427471e96 100644
--- a/common/env_sf.c
+++ b/common/env_sf.c
@@ -10,6 +10,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 #include <common.h>
+#include <dm.h>
 #include <environment.h>
 #include <malloc.h>
 #include <spi.h>
diff --git a/drivers/clk/at91/clk-generated.c b/drivers/clk/at91/clk-generated.c
index ac27d3e675..8c9a3cb053 100644
--- a/drivers/clk/at91/clk-generated.c
+++ b/drivers/clk/at91/clk-generated.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <linux/io.h>
 #include <mach/at91_pmc.h>
 #include "pmc.h"
diff --git a/drivers/clk/at91/clk-h32mx.c b/drivers/clk/at91/clk-h32mx.c
index 1a304bab21..dcc64fbd6d 100644
--- a/drivers/clk/at91/clk-h32mx.c
+++ b/drivers/clk/at91/clk-h32mx.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/util.h>
 #include <linux/io.h>
 #include <mach/at91_pmc.h>
diff --git a/drivers/clk/at91/clk-main.c b/drivers/clk/at91/clk-main.c
index 252d076bd5..a234ce8b7e 100644
--- a/drivers/clk/at91/clk-main.c
+++ b/drivers/clk/at91/clk-main.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <linux/io.h>
 #include <mach/at91_pmc.h>
 #include "pmc.h"
diff --git a/drivers/clk/at91/clk-master.c b/drivers/clk/at91/clk-master.c
index 72d0a739f1..6bc78bad0d 100644
--- a/drivers/clk/at91/clk-master.c
+++ b/drivers/clk/at91/clk-master.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/clk/at91/clk-peripheral.c b/drivers/clk/at91/clk-peripheral.c
index 62fabe304d..212a30bd5e 100644
--- a/drivers/clk/at91/clk-peripheral.c
+++ b/drivers/clk/at91/clk-peripheral.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <linux/io.h>
 #include <mach/at91_pmc.h>
 #include "pmc.h"
diff --git a/drivers/clk/at91/clk-plla.c b/drivers/clk/at91/clk-plla.c
index 2a71399741..f5b2ca1673 100644
--- a/drivers/clk/at91/clk-plla.c
+++ b/drivers/clk/at91/clk-plla.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <linux/io.h>
 #include <mach/at91_pmc.h>
 #include "pmc.h"
diff --git a/drivers/clk/at91/clk-slow.c b/drivers/clk/at91/clk-slow.c
index f7666b4041..f18f002bea 100644
--- a/drivers/clk/at91/clk-slow.c
+++ b/drivers/clk/at91/clk-slow.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 
 static int at91_slow_clk_enable(struct clk *clk)
 {
diff --git a/drivers/clk/at91/clk-system.c b/drivers/clk/at91/clk-system.c
index 5b59a0c852..24b271aa18 100644
--- a/drivers/clk/at91/clk-system.c
+++ b/drivers/clk/at91/clk-system.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <linux/io.h>
 #include <mach/at91_pmc.h>
 #include "pmc.h"
diff --git a/drivers/clk/at91/clk-utmi.c b/drivers/clk/at91/clk-utmi.c
index 369a6870d8..af5362da42 100644
--- a/drivers/clk/at91/clk-utmi.c
+++ b/drivers/clk/at91/clk-utmi.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <linux/io.h>
 #include <mach/at91_pmc.h>
 #include "pmc.h"
diff --git a/drivers/clk/at91/pmc.c b/drivers/clk/at91/pmc.c
index 72d52c5818..29067fa7bd 100644
--- a/drivers/clk/at91/pmc.c
+++ b/drivers/clk/at91/pmc.c
@@ -7,9 +7,8 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/lists.h>
-#include <dm/root.h>
 #include <dm/util.h>
 #include "pmc.h"
 
diff --git a/drivers/clk/at91/sckc.c b/drivers/clk/at91/sckc.c
index 6035e20959..0c0881237c 100644
--- a/drivers/clk/at91/sckc.c
+++ b/drivers/clk/at91/sckc.c
@@ -6,8 +6,7 @@ 
  */
 
 #include <common.h>
-#include <dm/device.h>
-#include <dm/root.h>
+#include <dm.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/clk/clk_fixed_rate.c b/drivers/clk/clk_fixed_rate.c
index 3911bf61a0..1cac4bbb85 100644
--- a/drivers/clk/clk_fixed_rate.c
+++ b/drivers/clk/clk_fixed_rate.c
@@ -6,7 +6,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/drivers/clk/clk_zynqmp.c b/drivers/clk/clk_zynqmp.c
index 694274d991..50eaf31613 100644
--- a/drivers/clk/clk_zynqmp.c
+++ b/drivers/clk/clk_zynqmp.c
@@ -9,8 +9,8 @@ 
 #include <common.h>
 #include <linux/bitops.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
 #include <clk.h>
+#include <dm.h>
 
 #define ZYNQMP_GEM0_REF_CTRL		0xFF5E0050
 #define ZYNQMP_IOPLL_CTRL		0xFF5E0020
diff --git a/drivers/clk/uniphier/clk-uniphier-core.c b/drivers/clk/uniphier/clk-uniphier-core.c
index bcb2d2edb7..c53dd911f1 100644
--- a/drivers/clk/uniphier/clk-uniphier-core.c
+++ b/drivers/clk/uniphier/clk-uniphier-core.c
@@ -7,7 +7,7 @@ 
 
 #include <common.h>
 #include <clk-uclass.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <linux/bitops.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
diff --git a/drivers/dma/ti-edma3.c b/drivers/dma/ti-edma3.c
index 247843891e..645aa2c4ae 100644
--- a/drivers/dma/ti-edma3.c
+++ b/drivers/dma/ti-edma3.c
@@ -11,8 +11,8 @@ 
 
 #include <asm/io.h>
 #include <common.h>
+#include <dm.h>
 #include <dma.h>
-#include <dm/device.h>
 #include <asm/omap_common.h>
 #include <asm/ti-common/ti-edma3.h>
 
diff --git a/drivers/firmware/firmware-uclass.c b/drivers/firmware/firmware-uclass.c
index 01b6a44b9d..6c96656dd0 100644
--- a/drivers/firmware/firmware-uclass.c
+++ b/drivers/firmware/firmware-uclass.c
@@ -2,7 +2,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/uclass.h>
+#include <dm.h>
 
 /* Firmware access is platform-dependent.  No generic code in uclass */
 UCLASS_DRIVER(firmware) = {
diff --git a/drivers/firmware/psci.c b/drivers/firmware/psci.c
index 40fba6432c..3ae627ce5d 100644
--- a/drivers/firmware/psci.c
+++ b/drivers/firmware/psci.c
@@ -8,7 +8,7 @@ 
  */
 
 #include <common.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/lists.h>
 #include <libfdt.h>
 #include <linux/arm-smccc.h>
diff --git a/drivers/gpio/gpio-uniphier.c b/drivers/gpio/gpio-uniphier.c
index ad1176420d..a10116c215 100644
--- a/drivers/gpio/gpio-uniphier.c
+++ b/drivers/gpio/gpio-uniphier.c
@@ -6,7 +6,7 @@ 
  */
 
 #include <common.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <linux/bitops.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
diff --git a/drivers/i2c/i2c-cdns.c b/drivers/i2c/i2c-cdns.c
index dec18200ce..db37444108 100644
--- a/drivers/i2c/i2c-cdns.c
+++ b/drivers/i2c/i2c-cdns.c
@@ -9,10 +9,10 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <linux/types.h>
 #include <linux/io.h>
 #include <linux/errno.h>
-#include <dm/device.h>
 #include <dm/root.h>
 #include <i2c.h>
 #include <fdtdec.h>
diff --git a/drivers/i2c/i2c-uniphier-f.c b/drivers/i2c/i2c-uniphier-f.c
index 9f0df599a0..be9fc8afc9 100644
--- a/drivers/i2c/i2c-uniphier-f.c
+++ b/drivers/i2c/i2c-uniphier-f.c
@@ -7,12 +7,12 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <linux/types.h>
 #include <linux/io.h>
 #include <linux/iopoll.h>
 #include <linux/sizes.h>
 #include <linux/errno.h>
-#include <dm/device.h>
 #include <i2c.h>
 #include <fdtdec.h>
 
diff --git a/drivers/i2c/i2c-uniphier.c b/drivers/i2c/i2c-uniphier.c
index 73575e9895..75d1c4cad8 100644
--- a/drivers/i2c/i2c-uniphier.c
+++ b/drivers/i2c/i2c-uniphier.c
@@ -7,11 +7,11 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <linux/types.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
 #include <linux/errno.h>
-#include <dm/device.h>
 #include <i2c.h>
 #include <fdtdec.h>
 
diff --git a/drivers/mmc/gen_atmel_mci.c b/drivers/mmc/gen_atmel_mci.c
index c25d9ed96e..d883da30a1 100644
--- a/drivers/mmc/gen_atmel_mci.c
+++ b/drivers/mmc/gen_atmel_mci.c
@@ -11,6 +11,7 @@ 
 
 #include <common.h>
 #include <clk.h>
+#include <dm.h>
 #include <mmc.h>
 #include <part.h>
 #include <malloc.h>
@@ -19,7 +20,6 @@ 
 #include <asm/byteorder.h>
 #include <asm/arch/clk.h>
 #include <asm/arch/hardware.h>
-#include <dm/device.h>
 #include "atmel_mci.h"
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c
index 8e28ab70f5..12da42d003 100644
--- a/drivers/mmc/meson_gx_mmc.c
+++ b/drivers/mmc/meson_gx_mmc.c
@@ -5,12 +5,12 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <fdtdec.h>
 #include <malloc.h>
 #include <mmc.h>
 #include <asm/io.h>
 #include <asm/arch/sd_emmc.h>
-#include <dm/device.h>
 #include <linux/log2.h>
 
 static inline void *get_regbase(const struct mmc *mmc)
diff --git a/drivers/mmc/sdhci-cadence.c b/drivers/mmc/sdhci-cadence.c
index 2253bbc518..6f3de3b6c3 100644
--- a/drivers/mmc/sdhci-cadence.c
+++ b/drivers/mmc/sdhci-cadence.c
@@ -6,9 +6,9 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
-#include <dm/device.h>
 #include <mmc.h>
 #include <sdhci.h>
 
diff --git a/drivers/mmc/tegra_mmc.c b/drivers/mmc/tegra_mmc.c
index 6c6affb925..9037ffb381 100644
--- a/drivers/mmc/tegra_mmc.c
+++ b/drivers/mmc/tegra_mmc.c
@@ -9,7 +9,7 @@ 
 
 #include <bouncebuf.h>
 #include <common.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <errno.h>
 #include <asm/gpio.h>
 #include <asm/io.h>
diff --git a/drivers/mmc/uniphier-sd.c b/drivers/mmc/uniphier-sd.c
index 7f20ef124d..195419ecda 100644
--- a/drivers/mmc/uniphier-sd.c
+++ b/drivers/mmc/uniphier-sd.c
@@ -9,7 +9,7 @@ 
 #include <clk.h>
 #include <fdtdec.h>
 #include <mmc.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <linux/compat.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
diff --git a/drivers/net/ethoc.c b/drivers/net/ethoc.c
index ad8c462a60..2f4cad6791 100644
--- a/drivers/net/ethoc.c
+++ b/drivers/net/ethoc.c
@@ -11,7 +11,7 @@ 
  */
 
 #include <common.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/platform_data/net_ethoc.h>
 #include <linux/io.h>
 #include <malloc.h>
diff --git a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
index a0a7de5f0f..0dc2438ebe 100644
--- a/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
+++ b/drivers/pinctrl/meson/pinctrl-meson-gxbb.c
@@ -7,7 +7,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 #include <dt-bindings/gpio/meson-gxbb-gpio.h>
 
diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c
index b5486b8fe4..6281f529ea 100644
--- a/drivers/pinctrl/meson/pinctrl-meson.c
+++ b/drivers/pinctrl/meson/pinctrl-meson.c
@@ -5,7 +5,7 @@ 
  */
 
 #include <common.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 #include <fdt_support.h>
 #include <linux/err.h>
diff --git a/drivers/pinctrl/nxp/pinctrl-imx.c b/drivers/pinctrl/nxp/pinctrl-imx.c
index f0321c4057..49e7abf038 100644
--- a/drivers/pinctrl/nxp/pinctrl-imx.c
+++ b/drivers/pinctrl/nxp/pinctrl-imx.c
@@ -8,7 +8,7 @@ 
 #include <mapmem.h>
 #include <linux/io.h>
 #include <linux/err.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-imx.h"
diff --git a/drivers/pinctrl/nxp/pinctrl-imx5.c b/drivers/pinctrl/nxp/pinctrl-imx5.c
index 6942f39670..5f3f94e750 100644
--- a/drivers/pinctrl/nxp/pinctrl-imx5.c
+++ b/drivers/pinctrl/nxp/pinctrl-imx5.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-imx.h"
diff --git a/drivers/pinctrl/nxp/pinctrl-imx6.c b/drivers/pinctrl/nxp/pinctrl-imx6.c
index 4488b16011..3842205420 100644
--- a/drivers/pinctrl/nxp/pinctrl-imx6.c
+++ b/drivers/pinctrl/nxp/pinctrl-imx6.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-imx.h"
diff --git a/drivers/pinctrl/nxp/pinctrl-imx7.c b/drivers/pinctrl/nxp/pinctrl-imx7.c
index eeb79426df..439c04e0cc 100644
--- a/drivers/pinctrl/nxp/pinctrl-imx7.c
+++ b/drivers/pinctrl/nxp/pinctrl-imx7.c
@@ -4,7 +4,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-imx.h"
diff --git a/drivers/pinctrl/nxp/pinctrl-imx7ulp.c b/drivers/pinctrl/nxp/pinctrl-imx7ulp.c
index 5f011757d8..1f81a66df4 100644
--- a/drivers/pinctrl/nxp/pinctrl-imx7ulp.c
+++ b/drivers/pinctrl/nxp/pinctrl-imx7ulp.c
@@ -6,7 +6,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-imx.h"
diff --git a/drivers/pinctrl/pinctrl-at91-pio4.c b/drivers/pinctrl/pinctrl-at91-pio4.c
index 5c6bff568a..d6f8a9ba1d 100644
--- a/drivers/pinctrl/pinctrl-at91-pio4.c
+++ b/drivers/pinctrl/pinctrl-at91-pio4.c
@@ -8,7 +8,7 @@ 
  */
 
 #include <common.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 #include <linux/io.h>
 #include <linux/err.h>
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index 904e1bdc68..3147b59d19 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -8,7 +8,7 @@ 
  */
 
 #include <common.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 #include <linux/io.h>
 #include <linux/err.h>
diff --git a/drivers/pinctrl/pinctrl-generic.c b/drivers/pinctrl/pinctrl-generic.c
index 0272496b51..49e36480df 100644
--- a/drivers/pinctrl/pinctrl-generic.c
+++ b/drivers/pinctrl/pinctrl-generic.c
@@ -5,8 +5,8 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <linux/compat.h>
-#include <dm/device.h>
 #include <dm/pinctrl.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/pinctrl/pinctrl-sandbox.c b/drivers/pinctrl/pinctrl-sandbox.c
index ab03d8bad4..e77b49c168 100644
--- a/drivers/pinctrl/pinctrl-sandbox.c
+++ b/drivers/pinctrl/pinctrl-sandbox.c
@@ -7,7 +7,7 @@ 
 /* #define DEBUG */
 
 #include <common.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 static const char * const sandbox_pins[] = {
diff --git a/drivers/pinctrl/pinctrl-single.c b/drivers/pinctrl/pinctrl-single.c
index d2dcec0d13..6c952cc591 100644
--- a/drivers/pinctrl/pinctrl-single.c
+++ b/drivers/pinctrl/pinctrl-single.c
@@ -5,7 +5,7 @@ 
  */
 
 #include <common.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 #include <libfdt.h>
 #include <asm/io.h>
diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
index 9efad0623a..0633b69bbe 100644
--- a/drivers/pinctrl/pinctrl-uclass.c
+++ b/drivers/pinctrl/pinctrl-uclass.c
@@ -8,10 +8,9 @@ 
 #include <libfdt.h>
 #include <linux/err.h>
 #include <linux/list.h>
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/lists.h>
 #include <dm/pinctrl.h>
-#include <dm/uclass.h>
 #include <dm/util.h>
 
 DECLARE_GLOBAL_DATA_PTR;
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c
index d8e9948ee7..4f369c9049 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-core.c
@@ -6,10 +6,10 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <linux/io.h>
 #include <linux/err.h>
 #include <linux/sizes.h>
-#include <dm/device.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
index 53c37cda7a..cc76fef0a1 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
index 5a7d142865..83d960f5e9 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c
index 9b3db9d812..84ee10387d 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld4.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c
index b25c7ea16e..15fab6a1b0 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-ld6b.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c
index f1624dab3f..cf1fc5aa32 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c
index 70c90bae54..788cfab47a 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro5.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c
index 60777c3045..8869fe4ed9 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs2.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c
index 65b56dac3f..5bff86b31a 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-sld3.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-sld3.c
index d3a507edc1..6127fd2111 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-sld3.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-sld3.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c
index 471fb673f7..5ed49f0070 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-sld8.c
@@ -5,7 +5,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <dm/pinctrl.h>
 
 #include "pinctrl-uniphier.h"
diff --git a/drivers/reset/reset-uniphier.c b/drivers/reset/reset-uniphier.c
index 29c4d4db97..5d17734090 100644
--- a/drivers/reset/reset-uniphier.c
+++ b/drivers/reset/reset-uniphier.c
@@ -6,8 +6,8 @@ 
  */
 
 #include <common.h>
+#include <dm.h>
 #include <reset-uclass.h>
-#include <dm/device.h>
 #include <linux/bitops.h>
 #include <linux/io.h>
 #include <linux/sizes.h>
diff --git a/drivers/serial/serial_uniphier.c b/drivers/serial/serial_uniphier.c
index 0e25cba6ac..7c6a049692 100644
--- a/drivers/serial/serial_uniphier.c
+++ b/drivers/serial/serial_uniphier.c
@@ -6,11 +6,11 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
+#include <dm.h>
 #include <linux/io.h>
 #include <linux/serial_reg.h>
 #include <linux/sizes.h>
 #include <linux/errno.h>
-#include <dm/device.h>
 #include <serial.h>
 #include <fdtdec.h>
 
diff --git a/drivers/sysreset/sysreset_psci.c b/drivers/sysreset/sysreset_psci.c
index a4911b7d8f..b39051c220 100644
--- a/drivers/sysreset/sysreset_psci.c
+++ b/drivers/sysreset/sysreset_psci.c
@@ -4,7 +4,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0+
  */
 
-#include <dm/device.h>
+#include <dm.h>
 #include <sysreset.h>
 #include <linux/errno.h>
 #include <linux/psci.h>
diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c
index 469377fe4e..5c1a902e42 100644
--- a/drivers/usb/musb-new/sunxi.c
+++ b/drivers/usb/musb-new/sunxi.c
@@ -17,6 +17,7 @@ 
  * SPDX-License-Identifier:	GPL-2.0
  */
 #include <common.h>
+#include <dm.h>
 #include <asm/arch/cpu.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/gpio.h>