Merge git://git.denx.de/u-boot-dm
diff --git a/Kconfig b/Kconfig
index 1119b19..cb5af5b 100644
--- a/Kconfig
+++ b/Kconfig
@@ -344,6 +344,20 @@
injected into the FIT creation (i.e. the blobs would have been pre-
processed before being added to the FIT image).
+config FIT_IMAGE_POST_PROCESS
+ bool "Enable post-processing of FIT artifacts after loading by U-Boot"
+ depends on FIT && TI_SECURE_DEVICE
+ help
+ Allows doing any sort of manipulation to blobs after they got extracted
+ from FIT images like stripping off headers or modifying the size of the
+ blob, verification, authentication, decryption etc. in a platform or
+ board specific way. In order to use this feature a platform or board-
+ specific implementation of board_fit_image_post_process() must be
+ provided. Also, anything done during this post-processing step would
+ need to be comprehended in how the images were prepared before being
+ injected into the FIT creation (i.e. the blobs would have been pre-
+ processed before being added to the FIT image).
+
config SYS_CLK_FREQ
depends on ARC || ARCH_SUNXI
int "CPU clock frequency"
diff --git a/arch/arm/cpu/armv7/Kconfig b/arch/arm/cpu/armv7/Kconfig
index bd6108e..41c6639 100644
--- a/arch/arm/cpu/armv7/Kconfig
+++ b/arch/arm/cpu/armv7/Kconfig
@@ -7,14 +7,14 @@
bool
config ARMV7_NONSEC
- boolean "Enable support for booting in non-secure mode" if EXPERT
+ bool "Enable support for booting in non-secure mode" if EXPERT
depends on CPU_V7_HAS_NONSEC
default y
---help---
Say Y here to enable support for booting in non-secure / SVC mode.
config ARMV7_BOOT_SEC_DEFAULT
- boolean "Boot in secure mode by default" if EXPERT
+ bool "Boot in secure mode by default" if EXPERT
depends on ARMV7_NONSEC
default y if TEGRA
---help---
@@ -25,14 +25,14 @@
variable to "sec" or "nonsec".
config ARMV7_VIRT
- boolean "Enable support for hardware virtualization" if EXPERT
+ bool "Enable support for hardware virtualization" if EXPERT
depends on CPU_V7_HAS_VIRT && ARMV7_NONSEC
default y
---help---
Say Y here to boot in hypervisor (HYP) mode when booting non-secure.
config ARMV7_LPAE
- boolean "Use LPAE page table format" if EXPERT
+ bool "Use LPAE page table format" if EXPERT
depends on CPU_V7
default n
---help---
diff --git a/arch/arm/cpu/armv7/virt-v7.c b/arch/arm/cpu/armv7/virt-v7.c
index 9c53306..d33e5c6 100644
--- a/arch/arm/cpu/armv7/virt-v7.c
+++ b/arch/arm/cpu/armv7/virt-v7.c
@@ -54,10 +54,12 @@
{
#ifdef CONFIG_ARMV7_SECURE_BASE
size_t sz = __secure_end - __secure_start;
+ unsigned long szflush = ALIGN(sz + 1, CONFIG_SYS_CACHELINE_SIZE);
memcpy((void *)CONFIG_ARMV7_SECURE_BASE, __secure_start, sz);
+
flush_dcache_range(CONFIG_ARMV7_SECURE_BASE,
- CONFIG_ARMV7_SECURE_BASE + sz + 1);
+ CONFIG_ARMV7_SECURE_BASE + szflush);
protect_secure_section();
invalidate_icache_all();
#endif
diff --git a/arch/arm/cpu/armv8/Kconfig b/arch/arm/cpu/armv8/Kconfig
index acf2460..7e1fc4c 100644
--- a/arch/arm/cpu/armv8/Kconfig
+++ b/arch/arm/cpu/armv8/Kconfig
@@ -1,7 +1,7 @@
if ARM64
config ARMV8_MULTIENTRY
- boolean "Enable multiple CPUs to enter into U-Boot"
+ bool "Enable multiple CPUs to enter into U-Boot"
config ARMV8_SPIN_TABLE
bool "Support spin-table enable method"
diff --git a/arch/arm/dts/dra7-evm.dts b/arch/arm/dts/dra7-evm.dts
index 06b7b36..fe755c0 100644
--- a/arch/arm/dts/dra7-evm.dts
+++ b/arch/arm/dts/dra7-evm.dts
@@ -24,6 +24,15 @@
reg = <0x80000000 0x60000000>; /* 1536 MB */
};
+ evm_3v3_sd: fixedregulator-sd {
+ compatible = "regulator-fixed";
+ regulator-name = "evm_3v3_sd";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ enable-active-high;
+ gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
+ };
+
mmc2_3v3: fixedregulator-mmc2 {
compatible = "regulator-fixed";
regulator-name = "mmc2_3v3";
@@ -468,7 +477,8 @@
&mmc1 {
status = "okay";
- vmmc-supply = <&ldo1_reg>;
+ vmmc-supply = <&evm_3v3_sd>;
+ vmmc_aux-supply = <&ldo1_reg>;
bus-width = <4>;
/*
* SDCD signal is not being used here - using the fact that GPIO mode
diff --git a/arch/arm/dts/dra72-evm.dts b/arch/arm/dts/dra72-evm.dts
index e78ec2e..4ca37fa 100644
--- a/arch/arm/dts/dra72-evm.dts
+++ b/arch/arm/dts/dra72-evm.dts
@@ -35,6 +35,15 @@
regulator-max-microvolt = <3300000>;
};
+ evm_3v3_sd: fixedregulator-sd {
+ compatible = "regulator-fixed";
+ regulator-name = "evm_3v3_sd";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ enable-active-high;
+ gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
+ };
+
extcon_usb1: extcon_usb1 {
compatible = "linux,extcon-usb-gpio";
id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
@@ -499,7 +508,8 @@
pinctrl-names = "default";
pinctrl-0 = <&mmc1_pins_default>;
- vmmc-supply = <&ldo1_reg>;
+ vmmc_aux-supply = <&ldo1_reg>;
+ vmmc-supply = <&evm_3v3_sd>;
bus-width = <4>;
/*
* SDCD signal is not being used here - using the fact that GPIO mode
diff --git a/arch/arm/mach-rockchip/rk3036/Makefile b/arch/arm/mach-rockchip/rk3036/Makefile
index 6095777..916a7a4 100644
--- a/arch/arm/mach-rockchip/rk3036/Makefile
+++ b/arch/arm/mach-rockchip/rk3036/Makefile
@@ -5,7 +5,6 @@
#
ifndef CONFIG_SPL_BUILD
-obj-y += reset_rk3036.o
obj-y += syscon_rk3036.o
endif
diff --git a/arch/arm/mach-rockchip/rk3288/Makefile b/arch/arm/mach-rockchip/rk3288/Makefile
index 82b00a1..5ec3f0d 100644
--- a/arch/arm/mach-rockchip/rk3288/Makefile
+++ b/arch/arm/mach-rockchip/rk3288/Makefile
@@ -5,6 +5,5 @@
#
obj-y += clk_rk3288.o
-obj-y += reset_rk3288.o
obj-y += sdram_rk3288.o
obj-y += syscon_rk3288.o
diff --git a/arch/arm/mach-rockchip/rk3399/Makefile b/arch/arm/mach-rockchip/rk3399/Makefile
index 3ca2028..607f9c9 100644
--- a/arch/arm/mach-rockchip/rk3399/Makefile
+++ b/arch/arm/mach-rockchip/rk3399/Makefile
@@ -5,5 +5,4 @@
#
obj-y += rk3399.o
-obj-y += reset_rk3399.o
obj-y += syscon_rk3399.o
diff --git a/arch/arm/mach-snapdragon/Makefile b/arch/arm/mach-snapdragon/Makefile
index 4735844..d82a04d 100644
--- a/arch/arm/mach-snapdragon/Makefile
+++ b/arch/arm/mach-snapdragon/Makefile
@@ -6,4 +6,3 @@
obj-y += clock-apq8016.o
obj-y += sysmap-apq8016.o
-obj-y += reset.o
diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
index 323e972..1b30669 100644
--- a/board/sunxi/Kconfig
+++ b/board/sunxi/Kconfig
@@ -249,7 +249,7 @@
Only enable this if you really know what you are doing.
config OLD_SUNXI_KERNEL_COMPAT
- boolean "Enable workarounds for booting old kernels"
+ bool "Enable workarounds for booting old kernels"
default n
---help---
Set this to enable various workarounds for old kernels, this results in
@@ -419,13 +419,13 @@
endif
config AXP_GPIO
- boolean "Enable support for gpio-s on axp PMICs"
+ bool "Enable support for gpio-s on axp PMICs"
default n
---help---
Say Y here to enable support for the gpio pins of the axp PMIC ICs.
config VIDEO
- boolean "Enable graphical uboot console on HDMI, LCD or VGA"
+ bool "Enable graphical uboot console on HDMI, LCD or VGA"
depends on !MACH_SUN8I_A83T && !MACH_SUN8I_H3 && !MACH_SUN9I && !MACH_SUN50I_A64
default y
---help---
@@ -434,21 +434,21 @@
info on how to select the video output and mode.
config VIDEO_HDMI
- boolean "HDMI output support"
+ bool "HDMI output support"
depends on VIDEO && !MACH_SUN8I
default y
---help---
Say Y here to add support for outputting video over HDMI.
config VIDEO_VGA
- boolean "VGA output support"
+ bool "VGA output support"
depends on VIDEO && (MACH_SUN4I || MACH_SUN7I)
default n
---help---
Say Y here to add support for outputting video over VGA.
config VIDEO_VGA_VIA_LCD
- boolean "VGA via LCD controller support"
+ bool "VGA via LCD controller support"
depends on VIDEO && (MACH_SUN5I || MACH_SUN6I || MACH_SUN8I)
default n
---help---
@@ -457,7 +457,7 @@
Olimex A13 boards.
config VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH
- boolean "Force sync active high for VGA via LCD controller support"
+ bool "Force sync active high for VGA via LCD controller support"
depends on VIDEO_VGA_VIA_LCD
default n
---help---
@@ -475,7 +475,7 @@
format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
config VIDEO_COMPOSITE
- boolean "Composite video output support"
+ bool "Composite video output support"
depends on VIDEO && (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
default n
---help---
diff --git a/common/image-fit.c b/common/image-fit.c
index 73ad34e..d8d4e95 100644
--- a/common/image-fit.c
+++ b/common/image-fit.c
@@ -11,9 +11,9 @@
#ifdef USE_HOSTCC
#include "mkimage.h"
-#include <image.h>
#include <time.h>
#else
+#include <linux/compiler.h>
#include <common.h>
#include <errno.h>
#include <mapmem.h>
@@ -21,6 +21,7 @@
DECLARE_GLOBAL_DATA_PTR;
#endif /* !USE_HOSTCC*/
+#include <image.h>
#include <bootstage.h>
#include <u-boot/crc.h>
#include <u-boot/md5.h>
@@ -1507,6 +1508,12 @@
static int fit_image_select(const void *fit, int rd_noffset, int verify)
{
+#if !defined(USE_HOSTCC) && defined(CONFIG_FIT_IMAGE_POST_PROCESS)
+ const void *data;
+ size_t size;
+ int ret;
+#endif
+
fit_image_print(fit, rd_noffset, " ");
if (verify) {
@@ -1518,6 +1525,23 @@
puts("OK\n");
}
+#if !defined(USE_HOSTCC) && defined(CONFIG_FIT_IMAGE_POST_PROCESS)
+ ret = fit_image_get_data(fit, rd_noffset, &data, &size);
+ if (ret)
+ return ret;
+
+ /* perform any post-processing on the image data */
+ board_fit_image_post_process((void **)&data, &size);
+
+ /*
+ * update U-Boot's understanding of the "data" property start address
+ * and size according to the performed post-processing
+ */
+ ret = fdt_setprop((void *)fit, rd_noffset, FIT_DATA_PROP, data, size);
+ if (ret)
+ return ret;
+#endif
+
return 0;
}
diff --git a/configs/am43xx_evm_defconfig b/configs/am43xx_evm_defconfig
index b3fe269..56782f1 100644
--- a/configs/am43xx_evm_defconfig
+++ b/configs/am43xx_evm_defconfig
@@ -56,3 +56,4 @@
CONFIG_G_DNL_PRODUCT_NUM=0xbd00
CONFIG_SPL_OF_LIBFDT=y
CONFIG_DM_I2C=y
+CONFIG_DM_ETH=y
diff --git a/configs/am43xx_hs_evm_defconfig b/configs/am43xx_hs_evm_defconfig
index c8ce723..1553196 100644
--- a/configs/am43xx_hs_evm_defconfig
+++ b/configs/am43xx_hs_evm_defconfig
@@ -59,3 +59,4 @@
CONFIG_G_DNL_PRODUCT_NUM=0xbd00
CONFIG_SPL_OF_LIBFDT=y
CONFIG_DM_I2C=y
+CONFIG_DM_ETH=y
diff --git a/configs/dra7xx_evm_defconfig b/configs/dra7xx_evm_defconfig
index 81d2a0e..956b83e 100644
--- a/configs/dra7xx_evm_defconfig
+++ b/configs/dra7xx_evm_defconfig
@@ -59,3 +59,7 @@
CONFIG_OF_LIST="dra7-evm dra72-evm"
CONFIG_DM_I2C=y
CONFIG_PCF8575_GPIO=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_CMD_REGULATOR=y
+CONFIG_DM_ETH=y
diff --git a/configs/dra7xx_hs_evm_defconfig b/configs/dra7xx_hs_evm_defconfig
index ab68b1c..ae08e6d 100644
--- a/configs/dra7xx_hs_evm_defconfig
+++ b/configs/dra7xx_hs_evm_defconfig
@@ -62,3 +62,6 @@
CONFIG_OF_LIST="dra7-evm dra72-evm"
CONFIG_DM_I2C=y
CONFIG_PCF8575_GPIO=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_CMD_REGULATOR=y
diff --git a/drivers/Kconfig b/drivers/Kconfig
index f6003a0..4f84469 100644
--- a/drivers/Kconfig
+++ b/drivers/Kconfig
@@ -68,6 +68,8 @@
source "drivers/spmi/Kconfig"
+source "drivers/sysreset/Kconfig"
+
source "drivers/thermal/Kconfig"
source "drivers/timer/Kconfig"
diff --git a/drivers/Makefile b/drivers/Makefile
index ad5cbae..7861d34 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -22,7 +22,7 @@
obj-$(CONFIG_SPL_SPI_SUPPORT) += spi/
obj-$(CONFIG_SPL_POWER_SUPPORT) += power/ power/pmic/
obj-$(CONFIG_SPL_POWER_SUPPORT) += power/regulator/
-obj-$(CONFIG_SPL_DRIVERS_MISC_SUPPORT) += misc/
+obj-$(CONFIG_SPL_DRIVERS_MISC_SUPPORT) += misc/ sysreset/
obj-$(CONFIG_SPL_MTD_SUPPORT) += mtd/
obj-$(CONFIG_SPL_NAND_SUPPORT) += mtd/nand/
obj-$(CONFIG_SPL_ONENAND_SUPPORT) += mtd/onenand/
@@ -59,6 +59,7 @@
obj-y += rtc/
obj-y += sound/
obj-y += spmi/
+obj-y += sysreset/
obj-y += timer/
obj-y += tpm/
obj-y += twserial/
diff --git a/drivers/i2c/cros_ec_ldo.c b/drivers/i2c/cros_ec_ldo.c
index b817c61..a4cd660 100644
--- a/drivers/i2c/cros_ec_ldo.c
+++ b/drivers/i2c/cros_ec_ldo.c
@@ -72,6 +72,5 @@
.name = "cros_ec_ldo_tunnel",
.id = UCLASS_I2C,
.of_match = cros_ec_i2c_ids,
- .per_child_auto_alloc_size = sizeof(struct dm_i2c_chip),
.ops = &cros_ec_i2c_ops,
};
diff --git a/drivers/i2c/cros_ec_tunnel.c b/drivers/i2c/cros_ec_tunnel.c
index 7ab1fd8..e2c6e44 100644
--- a/drivers/i2c/cros_ec_tunnel.c
+++ b/drivers/i2c/cros_ec_tunnel.c
@@ -36,6 +36,5 @@
.name = "cros_ec_tunnel",
.id = UCLASS_I2C,
.of_match = cros_ec_i2c_ids,
- .per_child_auto_alloc_size = sizeof(struct dm_i2c_chip),
.ops = &cros_ec_i2c_ops,
};
diff --git a/drivers/i2c/intel_i2c.c b/drivers/i2c/intel_i2c.c
index 3d777ff..ba80662 100644
--- a/drivers/i2c/intel_i2c.c
+++ b/drivers/i2c/intel_i2c.c
@@ -69,7 +69,6 @@
.name = "i2c_intel",
.id = UCLASS_I2C,
.of_match = intel_i2c_ids,
- .per_child_auto_alloc_size = sizeof(struct dm_i2c_chip),
.ops = &intel_i2c_ops,
.probe = intel_i2c_probe,
};
diff --git a/drivers/i2c/muxes/i2c-mux-uclass.c b/drivers/i2c/muxes/i2c-mux-uclass.c
index 3f52bff..7a698b6 100644
--- a/drivers/i2c/muxes/i2c-mux-uclass.c
+++ b/drivers/i2c/muxes/i2c-mux-uclass.c
@@ -183,7 +183,6 @@
U_BOOT_DRIVER(i2c_mux_bus) = {
.name = "i2c_mux_bus_drv",
.id = UCLASS_I2C,
- .per_child_auto_alloc_size = sizeof(struct dm_i2c_chip),
.ops = &i2c_mux_bus_ops,
};
diff --git a/drivers/i2c/s3c24x0_i2c.c b/drivers/i2c/s3c24x0_i2c.c
index dc9b661..eab49d0 100644
--- a/drivers/i2c/s3c24x0_i2c.c
+++ b/drivers/i2c/s3c24x0_i2c.c
@@ -1433,7 +1433,6 @@
.id = UCLASS_I2C,
.of_match = s3c_i2c_ids,
.ofdata_to_platdata = s3c_i2c_ofdata_to_platdata,
- .per_child_auto_alloc_size = sizeof(struct dm_i2c_chip),
.priv_auto_alloc_size = sizeof(struct s3c24x0_i2c_bus),
.ops = &s3c_i2c_ops,
};
@@ -1458,7 +1457,6 @@
.id = UCLASS_I2C,
.of_match = exynos_hs_i2c_ids,
.ofdata_to_platdata = s3c_i2c_ofdata_to_platdata,
- .per_child_auto_alloc_size = sizeof(struct dm_i2c_chip),
.priv_auto_alloc_size = sizeof(struct s3c24x0_i2c_bus),
.ops = &exynos_hs_i2c_ops,
};
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index b84e351..80c1558 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -121,15 +121,6 @@
help
The I2C address of the PCA9551 LED controller.
-config SYSRESET
- bool "Enable support for system reset drivers"
- depends on DM
- help
- Enable system reset drivers which can be used to reset the CPU or
- board. Each driver can provide a reset method which will be called
- to effect a reset. The uclass will try all available drivers when
- reset_walk() is called.
-
config WINBOND_W83627
bool "Enable Winbond Super I/O driver"
help
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index fff6f0c..af541c6 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -27,7 +27,6 @@
obj-$(CONFIG_NS87308) += ns87308.o
obj-$(CONFIG_PDSP188x) += pdsp188x.o
obj-$(CONFIG_$(SPL_)PWRSEQ) += pwrseq-uclass.o
-obj-$(CONFIG_SANDBOX) += sysreset_sandbox.o
ifdef CONFIG_DM_I2C
ifndef CONFIG_SPL_BUILD
obj-$(CONFIG_SANDBOX) += i2c_eeprom_emul.o
@@ -47,7 +46,6 @@
obj-$(CONFIG_FSL_IFC) += fsl_ifc.o
obj-$(CONFIG_FSL_SEC_MON) += fsl_sec_mon.o
obj-$(CONFIG_PCA9551_LED) += pca9551_led.o
-obj-$(CONFIG_SYSRESET) += sysreset-uclass.o
obj-$(CONFIG_FSL_DEVICE_DISABLE) += fsl_devdis.o
obj-$(CONFIG_WINBOND_W83627) += winbond_w83627.o
obj-$(CONFIG_QFW) += qfw.o
diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c
index 8a2f88a..81ccc61 100644
--- a/drivers/net/cpsw.c
+++ b/drivers/net/cpsw.c
@@ -908,7 +908,7 @@
int timeout = CPDMA_TIMEOUT;
flush_dcache_range((unsigned long)packet,
- (unsigned long)packet + length);
+ (unsigned long)packet + ALIGN(length, PKTALIGN));
/* first reap completed packets */
while (timeout-- &&
diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
index b422703..f2c5629 100644
--- a/drivers/power/Kconfig
+++ b/drivers/power/Kconfig
@@ -15,12 +15,12 @@
default SUNXI_NO_PMIC if MACH_SUN8I_H3 || MACH_SUN50I
config SUNXI_NO_PMIC
- boolean "board without a pmic"
+ bool "board without a pmic"
---help---
Select this for boards which do not use a PMIC.
config AXP152_POWER
- boolean "axp152 pmic support"
+ bool "axp152 pmic support"
depends on MACH_SUN5I
select CMD_POWEROFF
---help---
@@ -28,7 +28,7 @@
A10s boards.
config AXP209_POWER
- boolean "axp209 pmic support"
+ bool "axp209 pmic support"
depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
select CMD_POWEROFF
---help---
@@ -36,7 +36,7 @@
A10, A13 and A20 boards.
config AXP221_POWER
- boolean "axp221 / axp223 pmic support"
+ bool "axp221 / axp223 pmic support"
depends on MACH_SUN6I || MACH_SUN8I_A23 || MACH_SUN8I_A33
select CMD_POWEROFF
---help---
@@ -44,14 +44,14 @@
A23 and A31 boards.
config AXP809_POWER
- boolean "axp809 pmic support"
+ bool "axp809 pmic support"
depends on MACH_SUN9I
select CMD_POWEROFF
---help---
Say y here to enable support for the axp809 pmic found on A80 boards.
config AXP818_POWER
- boolean "axp818 pmic support"
+ bool "axp818 pmic support"
depends on MACH_SUN8I_A83T
select CMD_POWEROFF
---help---
@@ -59,7 +59,7 @@
A83T dev board.
config SY8106A_POWER
- boolean "SY8106A pmic support"
+ bool "SY8106A pmic support"
depends on MACH_SUN8I_H3
---help---
Select this to enable support for the SY8106A pmic found on some
diff --git a/drivers/spmi/Kconfig b/drivers/spmi/Kconfig
index 8d25b45..ab4878e 100644
--- a/drivers/spmi/Kconfig
+++ b/drivers/spmi/Kconfig
@@ -9,13 +9,13 @@
to connect PMIC devices on various SoCs.
config SPMI_MSM
- boolean "Support Qualcomm SPMI bus"
+ bool "Support Qualcomm SPMI bus"
depends on SPMI
---help---
Support SPMI bus implementation found on Qualcomm Snapdragon SoCs.
config SPMI_SANDBOX
- boolean "Support for Sandbox SPMI bus"
+ bool "Support for Sandbox SPMI bus"
depends on SPMI
---help---
Demo SPMI bus implementation. Emulates part of PM8916 as single
diff --git a/drivers/sysreset/Kconfig b/drivers/sysreset/Kconfig
new file mode 100644
index 0000000..05a37b9
--- /dev/null
+++ b/drivers/sysreset/Kconfig
@@ -0,0 +1,16 @@
+#
+# System reset devices
+#
+
+menu "System reset device drivers"
+
+config SYSRESET
+ bool "Enable support for system reset drivers"
+ depends on DM
+ help
+ Enable system reset drivers which can be used to reset the CPU or
+ board. Each driver can provide a reset method which will be called
+ to effect a reset. The uclass will try all available drivers when
+ reset_walk() is called.
+
+endmenu
diff --git a/drivers/sysreset/Makefile b/drivers/sysreset/Makefile
new file mode 100644
index 0000000..7db1b69
--- /dev/null
+++ b/drivers/sysreset/Makefile
@@ -0,0 +1,15 @@
+#
+# (C) Copyright 2016 Cadence Design Systems Inc.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-$(CONFIG_SYSRESET) += sysreset-uclass.o
+
+ifndef CONFIG_SPL_BUILD
+obj-$(CONFIG_ROCKCHIP_RK3036) += sysreset_rk3036.o
+endif
+obj-$(CONFIG_ROCKCHIP_RK3288) += sysreset_rk3288.o
+obj-$(CONFIG_ROCKCHIP_RK3399) += sysreset_rk3399.o
+obj-$(CONFIG_SANDBOX) += sysreset_sandbox.o
+obj-$(CONFIG_ARCH_SNAPDRAGON) += sysreset_snapdragon.o
diff --git a/drivers/misc/sysreset-uclass.c b/drivers/sysreset/sysreset-uclass.c
similarity index 100%
rename from drivers/misc/sysreset-uclass.c
rename to drivers/sysreset/sysreset-uclass.c
diff --git a/arch/arm/mach-rockchip/rk3036/reset_rk3036.c b/drivers/sysreset/sysreset_rk3036.c
similarity index 100%
rename from arch/arm/mach-rockchip/rk3036/reset_rk3036.c
rename to drivers/sysreset/sysreset_rk3036.c
diff --git a/arch/arm/mach-rockchip/rk3288/reset_rk3288.c b/drivers/sysreset/sysreset_rk3288.c
similarity index 100%
rename from arch/arm/mach-rockchip/rk3288/reset_rk3288.c
rename to drivers/sysreset/sysreset_rk3288.c
diff --git a/arch/arm/mach-rockchip/rk3399/reset_rk3399.c b/drivers/sysreset/sysreset_rk3399.c
similarity index 100%
rename from arch/arm/mach-rockchip/rk3399/reset_rk3399.c
rename to drivers/sysreset/sysreset_rk3399.c
diff --git a/drivers/misc/sysreset_sandbox.c b/drivers/sysreset/sysreset_sandbox.c
similarity index 100%
rename from drivers/misc/sysreset_sandbox.c
rename to drivers/sysreset/sysreset_sandbox.c
diff --git a/arch/arm/mach-snapdragon/reset.c b/drivers/sysreset/sysreset_snapdragon.c
similarity index 100%
rename from arch/arm/mach-snapdragon/reset.c
rename to drivers/sysreset/sysreset_snapdragon.c