Hi Masahiro, On 11 December 2014 at 10:37, Masahiro YAMADA <yamad...@jp.panasonic.com> 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=y > > Here, you use _defconfig. > > What is the difference? This board shares config with others so I can't change the defaults. In fact this board still uses CONFIG_SYS_EXTRA_OPTIONS which is unfortunate a) because it should use device tree for GPIOs and b) because we are trying to deprecate these. > > > >> 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. >> + This config option enables Driver Model. This brings in the core >> + support, including scanning of platform data on start-up. If >> + CONFIG_OF_CONTROL is enabled, the device tree will be scanned also >> + when available. >> + >> +config DM_SERIAL >> + bool "Enable Driver Model for serial" >> + depends on DM >> + help >> + Enable driver model for serial. This replaces >> + drivers/serial/serial.c with the serial uclass, which >> + implements serial_putc() etc. The uclass interface is >> + defined in include/serial.h. >> + >> +config DM_GPIO >> + bool "Enable Driver Model for GPIO" >> + depends on DM >> + help >> + Enable driver model for GPIO access. The standard GPIO >> + interface (gpio_get_value(), etc.) is then implemented by >> + the GPIO uclass. Drivers provide methods to query the >> + particular GPIOs that they provide. The uclass interface >> + is defined in include/asm-generic/gpio.h. >> >> +config DM_SPI >> + bool "Enable Driver Model for SPI" >> + depends on DM >> + help >> + Enable driver model for SPI. The SPI slave interface >> + (spi_setup_slave(), spi_xfer(), etc.) is then implemented by >> + the SPI uclass. Drivers provide methods to access the SPI >> + buses that they control. The uclass interface is defined in >> + include/spi.h. The existing spi_slave structure is attached >> + as 'parent data' to every slave on each bus. Slaves >> + typically use driver-private data instead of extending the >> + spi_slave structure. >> + > > > > DM_{SERIAL,GPIO,SPI} is already in drivers/{serial,gpio,spi}/Kconfig. > > IMHO, I think drivers/*/Kconfig would be a suitable place, > but it is OK if you want to move them. Yes I agree, let's leave them there. Maybe I didn't notice that you had already done this work. > > Anyway, these configs are temporary. > When we finish DM conversion, CONFIG_DM* will go away. Yes, looking forward to it. I'm planning to start deprecation for serial and GPIO soon. > > > >> new file mode 100644 >> index 0000000..4234fe4 >> --- /dev/null >> +++ b/drivers/demo/Kconfig >> @@ -0,0 +1,26 @@ >> +config DM_DEMO >> + bool "Enable demo uclass support" >> + depends on DM >> + help >> + This uclass allows you to play around with driver model. It >> provides >> + an interface to a couple of demo devices. You can access it using >> + the 'demo' command or by calling the uclass functions from your >> + own code. >> + >> +config DM_DEMO_SIMPLE >> + bool "Enable simple demo device for driver model" >> + depends on DM > > depends on DM_DEMO > >> + help >> + This device allows you to play around with driver model. It prints >> + a message when the 'demo hello' command is executed which targets >> + this device. It can be used to help understand how driver model >> + works. >> + >> +config DM_DEMO_SHAPE >> + bool "Enable shape demo device for driver model" >> + depends on DM > > Ditto. > > OK > > > > >> +++ b/test/dm/Kconfig >> @@ -0,0 +1,8 @@ >> +config DM_TEST >> + bool "Enable driver model test command" >> + depends on SANDBOX > > also depends on CMD_DM ?? Yes, that seem right. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot