[U-Boot] [PATCH 1/2] RFC: dm: Kconfig: Move all driver model CONFIGs to Kconfig

2014-12-09 Thread Simon Glass
Kconfig has been available for a while but there are still driver model
CONFIG options. Move all of these to Kconfig.

This patch isn't final - I need to wait until the SPL series can be fully
applied, which is in turn waiting on some ARM SPL problems. So for now it
is just a placeholder. But it needs to be sent out otherwise we will never
move over.

Signed-off-by: Simon Glass 
---

 Kconfig   |   2 +
 arch/arm/Kconfig  |   2 +
 arch/arm/cpu/arm1176/bcm2835/Kconfig  |  12 +++
 arch/arm/cpu/armv7/exynos/Kconfig |  15 
 arch/arm/cpu/armv7/tegra-common/Kconfig   |  21 +
 arch/sandbox/Kconfig  |  39 ++
 arch/x86/Kconfig  |   9 +++
 board/isee/igep0033/Kconfig   |   9 +++
 board/isee/igep00x0/Kconfig   |   9 +++
 board/logicpd/am3517evm/Kconfig   |   9 +++
 board/logicpd/omap3som/Kconfig|   9 +++
 board/logicpd/zoom1/Kconfig   |   9 +++
 board/overo/Kconfig   |   9 +++
 board/samsung/goni/Kconfig|   9 +++
 board/samsung/smdk5420/Kconfig|   6 ++
 board/samsung/smdkc100/Kconfig|   9 +++
 board/ti/am335x/Kconfig   |  10 +++
 common/Kconfig|  23 ++
 configs/Linksprite_pcDuino3_fdt_defconfig |   2 +
 configs/cm_fx6_defconfig  |   3 +
 configs/mx6qsabreauto_defconfig   |   2 +
 configs/mx6sabresd_spl_defconfig  |   3 +-
 configs/omap3_beagle_defconfig|   3 +
 configs/omap3_pandora_defconfig   |   3 +
 configs/snapper9260_defconfig |   3 +
 configs/snapper9g20_defconfig |   3 +
 doc/driver-model/spi-howto.txt|   4 +-
 drivers/Kconfig   |   4 +
 drivers/core/Kconfig  | 122 +-
 drivers/demo/Kconfig  |  26 +++
 drivers/thermal/Kconfig   |   7 ++
 include/config_defaults.h |   6 --
 include/configs/cm_fx6.h  |   4 -
 include/configs/exynos-common.h   |   6 --
 include/configs/mx6sabre_common.h |   2 -
 include/configs/peach-pi.h|   1 -
 include/configs/peach-pit.h   |   1 -
 include/configs/rpi.h |   6 --
 include/configs/s5p_goni.h|   4 -
 include/configs/sandbox.h |  13 
 include/configs/smdkc100.h|   4 -
 include/configs/snapper9260.h |   4 -
 include/configs/sunxi-common.h|   3 -
 include/configs/tegra-common.h|   9 ---
 include/configs/ti_am335x_common.h|   4 -
 include/configs/ti_omap3_common.h |   4 -
 include/configs/x86-common.h  |   5 --
 test/dm/Kconfig   |   8 ++
 48 files changed, 399 insertions(+), 81 deletions(-)
 create mode 100644 arch/arm/cpu/arm1176/bcm2835/Kconfig
 create mode 100644 drivers/demo/Kconfig
 create mode 100644 drivers/thermal/Kconfig
 create mode 100644 test/dm/Kconfig

diff --git a/Kconfig b/Kconfig
index 153ee2b..d4ca152 100644
--- a/Kconfig
+++ b/Kconfig
@@ -158,3 +158,5 @@ source "drivers/Kconfig"
 source "fs/Kconfig"
 
 source "lib/Kconfig"
+
+source "test/dm/Kconfig"
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 7a64b66..d46362c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -799,6 +799,8 @@ endchoice
 
 source "arch/arm/cpu/arm926ejs/davinci/Kconfig"
 
+source "arch/arm/cpu/arm1176/bcm2835/Kconfig"
+
 source "arch/arm/cpu/armv7/exynos/Kconfig"
 
 source "arch/arm/cpu/armv7/highbank/Kconfig"
diff --git a/arch/arm/cpu/arm1176/bcm2835/Kconfig 
b/arch/arm/cpu/arm1176/bcm2835/Kconfig
new file mode 100644
index 000..cb88664
--- /dev/null
+++ b/arch/arm/cpu/arm1176/bcm2835/Kconfig
@@ -0,0 +1,12 @@
+if TARGET_RPI_B
+
+config DM
+   default y
+
+config DM_SERIAL
+   default y
+
+config DM_GPIO
+   default y
+
+endif
diff --git a/arch/arm/cpu/armv7/exynos/Kconfig 
b/arch/arm/cpu/armv7/exynos/Kconfig
index f3eadb4..a5748ad 100644
--- a/arch/arm/cpu/armv7/exynos/Kconfig
+++ b/arch/arm/cpu/armv7/exynos/Kconfig
@@ -61,6 +61,21 @@ endchoice
 config SYS_SOC
default "exynos"
 
+config DM
+   default y
+
+config DM_SERIAL
+   default y
+
+config DM_SPI
+   default y
+
+config DM_SPI_FLASH
+   default y
+
+config DM_GPIO
+   default y
+
 source "board/samsung/smdkv310/Kconfig"
 source "board/samsung/trats/Kconfig"
 source "board/samsung/universal_c210/Kconfig"
diff --git a/arch/arm/cpu/armv7/tegra-common/Kconfig 
b/arch/arm/cpu/armv7/tegra-common/Kconfig
index 1446452..898e86d 100644
--- a/arch/arm/cpu/armv7/tegra-common/Kconfig
+++ b/arch/arm/cpu/armv7/tegra-common/Kconfig
@@ -20,6 +20,27 @@ endchoice
 config USE_PRIVATE_LIBGCC
default y if SPL_BUILD
 
+config DM
+   default y
+
+config SPL_DM
+   default y

Re: [U-Boot] [PATCH 1/2] RFC: dm: Kconfig: Move all driver model CONFIGs to Kconfig

2014-12-11 Thread Masahiro YAMADA
Hi Simon,



>
> diff --git a/Kconfig b/Kconfig
> index 153ee2b..d4ca152 100644
> --- a/Kconfig
> +++ b/Kconfig
> @@ -158,3 +158,5 @@ source "drivers/Kconfig"
>  source "fs/Kconfig"
>
>  source "lib/Kconfig"
> +
> +source "test/dm/Kconfig"

Perhaps we might want "test/Kconfig" in the future.





> --- a/arch/arm/cpu/armv7/tegra-common/Kconfig
> +++ b/arch/arm/cpu/armv7/tegra-common/Kconfig
> @@ -20,6 +20,27 @@ endchoice
>  config USE_PRIVATE_LIBGCC
> default y if SPL_BUILD
>
> +config DM
> +   default y
> +
> +config SPL_DM
> +   default y
> +
> +config DM_SERIAL
> +   default y
> +
> +config DM_SPI
> +   default y
> +
> +config DM_SPI_FLASH
> +   default y
> +
> +config DM_I2C
> +   default y
> +
> +config DM_GPIO
> +   default y
> +


Are all of these user-configurable?

I mean, do Tegra boards work fine without CONFIG_DM_* ?
I doubt it because you have already converted Tegra drivers.


- Use "select" if the option is mandatory for that board

- Use "default y" if the option is still optional, but recommended.







>  source "arch/arm/cpu/armv7/tegra20/Kconfig"
>  source "arch/arm/cpu/armv7/tegra30/Kconfig"
>  source "arch/arm/cpu/armv7/tegra114/Kconfig"
> diff --git a/arch/sandbox/Kconfig b/arch/sandbox/Kconfig
> index 3057325..1b4cbce 100644
> --- a/arch/sandbox/Kconfig
> +++ b/arch/sandbox/Kconfig
> @@ -10,4 +10,43 @@ config SYS_BOARD
>  config SYS_CONFIG_NAME
> default "sandbox"
>
> +config DM
> +   default y
> +
> +config DM_GPIO
> +   default y
> +
> +config DM_SERIAL
> +   default y
> +
> +config CMD_DEMO
> +   default y
> +
> +config CMD_DM
> +   default y
> +
> +config DM_DEMO
> +   default y
> +
> +config DM_DEMO_SIMPLE
> +   default y
> +
> +config DM_DEMO_SHAPE
> +   default y
> +
> +config DM_TEST
> +   default y
> +
> +config DM_CROS_EC
> +   default y
> +
> +config DM_SPI
> +   default y
> +
> +config DM_SPI_FLASH
> +   default y
> +
> +config DM_I2C
> +   default y
> +


Why do you like this syntax?

 - If the option is not user-configurable, use "select"
 - If the option is user-configurable and you want change the default value,
   add it to configs/sandbox_defconfig







> diff --git a/board/samsung/goni/Kconfig b/board/samsung/goni/Kconfig
> index cbbf5a9..006e864 100644
> --- a/board/samsung/goni/Kconfig
> +++ b/board/samsung/goni/Kconfig
> @@ -12,4 +12,13 @@ config SYS_SOC
>  config SYS_CONFIG_NAME
> default "s5p_goni"
>
> +config DM
> +   default y
> +
> +config DM_GPIO
> +   default y
> +
> +config DM_SERIAL
> +   default y
> +


"select" or "_defconfig"



> diff --git a/common/Kconfig b/common/Kconfig
> index fd84fa0..174bf4f 100644
> --- a/common/Kconfig
> +++ b/common/Kconfig
> @@ -153,6 +153,29 @@ endmenu
>
>  menu "Device access commands"
>
> +config CMD_DM
> +   bool "dm - Access to driver model information"
> +   depends on DM
> +   default y
> +   help
> + Provides access to driver model data structures and information,
> + such as a list of devices, list of uclasses and the state of each
> + device (e.g. activated). This is not required for operation, but
> + can be useful to see the state of driver model for debugging or
> + interest.
> +
> +config CMD_DEMO
> +   bool "demo - Demonstration commands for driver model"
> +   depends on DM
> +   help
> + Procides a 'demo' command which can be used to play around with
> + driver model. To use this properly you will need to enable one or
> + both of the demo devices (DM_DEMO_SHAPE and DM_DEMO_SIMPLE).
> + Otherwise you will always get an empty list of devices. The demo
> + devices are defined in the sandbox device tree, so the easiest
> + option is to use sandbox and pass the -d point to sandbox's
> + u-boot.dtb file.
> +


These seems rather "Misc commands".



>  config CMD_LOADB
> bool "loadb"
> help
> diff --git a/configs/Linksprite_pcDuino3_fdt_defconfig 
> b/configs/Linksprite_pcDuino3_fdt_defconfig
> index a33f3a7..931b5dd 100644
> --- a/configs/Linksprite_pcDuino3_fdt_defconfig
> +++ b/configs/Linksprite_pcDuino3_fdt_defconfig
> @@ -2,6 +2,8 @@ CONFIG_SPL=y
>  
> CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI"
>  CONFIG_FDTFILE="sun7i-a20-pcduino3.dtb"
>  CONFIG_DM=y
> +CONFIG_DM_GPIO=y
> +CONFIG_DM_SERIAL=y
>  CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3"
>  CONFIG_OF_CONTROL=y
>  CONFIG_OF_SEPARATE=y

Here, you use _defconfig.

What is the difference?



> diff --git a/drivers/core/Kconfig b/drivers/core/Kconfig
> index d2799dc..2ae2cc4 100644
> --- a/drivers/core/Kconfig
> +++ b/drivers/core/Kconfig
> @@ -2,5 +2,123 @@ config DM
> bool "Enable Driver Model"
> depends on !SPL_BUILD
> help
> - This config option enables Driver Model.
> - To use legacy drivers, say N.
> + Th

Re: [U-Boot] [PATCH 1/2] RFC: dm: Kconfig: Move all driver model CONFIGs to Kconfig

2015-01-27 Thread Joe Hershberger
On Tue, Dec 9, 2014 at 7:21 AM, Simon Glass  wrote:
>
> Kconfig has been available for a while but there are still driver model
> CONFIG options. Move all of these to Kconfig.
>
> This patch isn't final - I need to wait until the SPL series can be fully
> applied, which is in turn waiting on some ARM SPL problems. So for now it
> is just a placeholder. But it needs to be sent out otherwise we will never
> move over.
>
> Signed-off-by: Simon Glass 
> ---
> diff --git a/common/Kconfig b/common/Kconfig
> index fd84fa0..174bf4f 100644
> --- a/common/Kconfig
> +++ b/common/Kconfig
> @@ -153,6 +153,29 @@ endmenu
>
>  menu "Device access commands"
>
> +config CMD_DM
> +   bool "dm - Access to driver model information"
> +   depends on DM
> +   default y
> +   help
> + Provides access to driver model data structures and information,
> + such as a list of devices, list of uclasses and the state of
each
> + device (e.g. activated). This is not required for operation, but
> + can be useful to see the state of driver model for debugging or
> + interest.
> +
> +config CMD_DEMO
> +   bool "demo - Demonstration commands for driver model"
> +   depends on DM
> +   help
> + Procides a 'demo' command which can be used to play around with

Provides

> + driver model. To use this properly you will need to enable one
or
> + both of the demo devices (DM_DEMO_SHAPE and DM_DEMO_SIMPLE).
> + Otherwise you will always get an empty list of devices. The demo
> + devices are defined in the sandbox device tree, so the easiest
> + option is to use sandbox and pass the -d point to sandbox's
> + u-boot.dtb file.
> +
>  config CMD_LOADB
> bool "loadb"
> help
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [PATCH 1/2] RFC: dm: Kconfig: Move all driver model CONFIGs to Kconfig

2014-12-31 Thread Simon Glass
Hi Masahiro,

On 11 December 2014 at 10:37, Masahiro YAMADA  wrote:
> Hi Simon,
>
>
>
>>
>> diff --git a/Kconfig b/Kconfig
>> index 153ee2b..d4ca152 100644
>> --- a/Kconfig
>> +++ b/Kconfig
>> @@ -158,3 +158,5 @@ source "drivers/Kconfig"
>>  source "fs/Kconfig"
>>
>>  source "lib/Kconfig"
>> +
>> +source "test/dm/Kconfig"
>
> Perhaps we might want "test/Kconfig" in the future.
>
>
>
>
>
>> --- a/arch/arm/cpu/armv7/tegra-common/Kconfig
>> +++ b/arch/arm/cpu/armv7/tegra-common/Kconfig
>> @@ -20,6 +20,27 @@ endchoice
>>  config USE_PRIVATE_LIBGCC
>> default y if SPL_BUILD
>>
>> +config DM
>> +   default y
>> +
>> +config SPL_DM
>> +   default y
>> +
>> +config DM_SERIAL
>> +   default y
>> +
>> +config DM_SPI
>> +   default y
>> +
>> +config DM_SPI_FLASH
>> +   default y
>> +
>> +config DM_I2C
>> +   default y
>> +
>> +config DM_GPIO
>> +   default y
>> +
>
>
> Are all of these user-configurable?
>
> I mean, do Tegra boards work fine without CONFIG_DM_* ?
> I doubt it because you have already converted Tegra drivers.
>
>
> - Use "select" if the option is mandatory for that board
>
> - Use "default y" if the option is still optional, but recommended.
>
>

OK will change this for tegra.

>
>
>
>
>
>>  source "arch/arm/cpu/armv7/tegra20/Kconfig"
>>  source "arch/arm/cpu/armv7/tegra30/Kconfig"
>>  source "arch/arm/cpu/armv7/tegra114/Kconfig"
>> diff --git a/arch/sandbox/Kconfig b/arch/sandbox/Kconfig
>> index 3057325..1b4cbce 100644
>> --- a/arch/sandbox/Kconfig
>> +++ b/arch/sandbox/Kconfig
>> @@ -10,4 +10,43 @@ config SYS_BOARD
>>  config SYS_CONFIG_NAME
>> default "sandbox"
>>
>> +config DM
>> +   default y
>> +
>> +config DM_GPIO
>> +   default y
>> +
>> +config DM_SERIAL
>> +   default y
>> +
>> +config CMD_DEMO
>> +   default y
>> +
>> +config CMD_DM
>> +   default y
>> +
>> +config DM_DEMO
>> +   default y
>> +
>> +config DM_DEMO_SIMPLE
>> +   default y
>> +
>> +config DM_DEMO_SHAPE
>> +   default y
>> +
>> +config DM_TEST
>> +   default y
>> +
>> +config DM_CROS_EC
>> +   default y
>> +
>> +config DM_SPI
>> +   default y
>> +
>> +config DM_SPI_FLASH
>> +   default y
>> +
>> +config DM_I2C
>> +   default y
>> +
>
>
> Why do you like this syntax?
>
>  - If the option is not user-configurable, use "select"
>  - If the option is user-configurable and you want change the default value,
>add it to configs/sandbox_defconfig
>
>

OK I'll split these into two types.

>
>
>
>
>
>> diff --git a/board/samsung/goni/Kconfig b/board/samsung/goni/Kconfig
>> index cbbf5a9..006e864 100644
>> --- a/board/samsung/goni/Kconfig
>> +++ b/board/samsung/goni/Kconfig
>> @@ -12,4 +12,13 @@ config SYS_SOC
>>  config SYS_CONFIG_NAME
>> default "s5p_goni"
>>
>> +config DM
>> +   default y
>> +
>> +config DM_GPIO
>> +   default y
>> +
>> +config DM_SERIAL
>> +   default y
>> +
>
>
> "select" or "_defconfig"
>

Will go with select here.

>
>
>> diff --git a/common/Kconfig b/common/Kconfig
>> index fd84fa0..174bf4f 100644
>> --- a/common/Kconfig
>> +++ b/common/Kconfig
>> @@ -153,6 +153,29 @@ endmenu
>>
>>  menu "Device access commands"
>>
>> +config CMD_DM
>> +   bool "dm - Access to driver model information"
>> +   depends on DM
>> +   default y
>> +   help
>> + Provides access to driver model data structures and information,
>> + such as a list of devices, list of uclasses and the state of each
>> + device (e.g. activated). This is not required for operation, but
>> + can be useful to see the state of driver model for debugging or
>> + interest.
>> +
>> +config CMD_DEMO
>> +   bool "demo - Demonstration commands for driver model"
>> +   depends on DM
>> +   help
>> + Procides a 'demo' command which can be used to play around with
>> + driver model. To use this properly you will need to enable one or
>> + both of the demo devices (DM_DEMO_SHAPE and DM_DEMO_SIMPLE).
>> + Otherwise you will always get an empty list of devices. The demo
>> + devices are defined in the sandbox device tree, so the easiest
>> + option is to use sandbox and pass the -d point to sandbox's
>> + u-boot.dtb file.
>> +
>
>
> These seems rather "Misc commands".
>

They are driver-model-related though.

>
>
>>  config CMD_LOADB
>> bool "loadb"
>> help
>> diff --git a/configs/Linksprite_pcDuino3_fdt_defconfig 
>> b/configs/Linksprite_pcDuino3_fdt_defconfig
>> index a33f3a7..931b5dd 100644
>> --- a/configs/Linksprite_pcDuino3_fdt_defconfig
>> +++ b/configs/Linksprite_pcDuino3_fdt_defconfig
>> @@ -2,6 +2,8 @@ CONFIG_SPL=y
>>  
>> CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI"
>>  CONFIG_FDTFILE="sun7i-a20-pcduino3.dtb"
>>  CONFIG_DM=y
>> +CONFIG_DM_GPIO=y
>> +CONFIG_DM_SERIAL=y
>>  CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3"
>>  CONFIG_OF_CONTROL=y
>>  CONFIG_OF_SEPARATE=