diff options
36 files changed, 131 insertions, 49 deletions
@@ -344,6 +344,20 @@ config SPL_FIT_IMAGE_POST_PROCESS 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 bd6108eec0..41c6639c13 100644 --- a/arch/arm/cpu/armv7/Kconfig +++ b/arch/arm/cpu/armv7/Kconfig @@ -7,14 +7,14 @@ config CPU_V7_HAS_VIRT 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 @@ config ARMV7_BOOT_SEC_DEFAULT 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 9c533060b8..d33e5c61a9 100644 --- a/arch/arm/cpu/armv7/virt-v7.c +++ b/arch/arm/cpu/armv7/virt-v7.c @@ -54,10 +54,12 @@ static void relocate_secure_section(void) { #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 acf2460ede..7e1fc4cbf9 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 06b7b367e4..fe755c0584 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 e78ec2e185..4ca37faa09 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 6095777b8f..916a7a4378 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 82b00a1b01..5ec3f0d7e2 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 3ca20284ef..607f9c9612 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 4735844b75..d82a04dda6 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 323e972932..1b30669230 100644 --- a/board/sunxi/Kconfig +++ b/board/sunxi/Kconfig @@ -249,7 +249,7 @@ config UART0_PORT_F 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 @@ config I2C4_ENABLE 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 @@ config VIDEO 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 @@ config VIDEO_VGA_VIA_LCD 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 @@ config VIDEO_VGA_EXTERNAL_DAC_EN 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 73ad34e491..d8d4e95030 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 @@ void fit_conf_print(const void *fit, int noffset, const char *p) 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 @@ static int fit_image_select(const void *fit, int rd_noffset, int verify) 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 b3fe2699fa..56782f1796 100644 --- a/configs/am43xx_evm_defconfig +++ b/configs/am43xx_evm_defconfig @@ -56,3 +56,4 @@ CONFIG_G_DNL_VENDOR_NUM=0x0403 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 c8ce72348e..1553196a1f 100644 --- a/configs/am43xx_hs_evm_defconfig +++ b/configs/am43xx_hs_evm_defconfig @@ -59,3 +59,4 @@ CONFIG_G_DNL_VENDOR_NUM=0x0403 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 81d2a0e30a..956b83e410 100644 --- a/configs/dra7xx_evm_defconfig +++ b/configs/dra7xx_evm_defconfig @@ -59,3 +59,7 @@ CONFIG_SPL_LOAD_FIT=y 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 ab68b1ceac..ae08e6d7dd 100644 --- a/configs/dra7xx_hs_evm_defconfig +++ b/configs/dra7xx_hs_evm_defconfig @@ -62,3 +62,6 @@ CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y 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 f6003a0a59..4f84469955 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -68,6 +68,8 @@ source "drivers/spi/Kconfig" 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 ad5cbae7ca..7861d34603 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -22,7 +22,7 @@ obj-$(CONFIG_SPL_SERIAL_SUPPORT) += serial/ 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-$(CONFIG_X86) += pch/ 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 b817c61f1c..a4cd660406 100644 --- a/drivers/i2c/cros_ec_ldo.c +++ b/drivers/i2c/cros_ec_ldo.c @@ -72,6 +72,5 @@ U_BOOT_DRIVER(cros_ec_ldo) = { .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 7ab1fd898a..e2c6e44795 100644 --- a/drivers/i2c/cros_ec_tunnel.c +++ b/drivers/i2c/cros_ec_tunnel.c @@ -36,6 +36,5 @@ U_BOOT_DRIVER(cros_ec_tunnel) = { .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 3d777ff23e..ba806627d0 100644 --- a/drivers/i2c/intel_i2c.c +++ b/drivers/i2c/intel_i2c.c @@ -69,7 +69,6 @@ U_BOOT_DRIVER(intel_i2c) = { .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 3f52bff2fb..7a698b62b5 100644 --- a/drivers/i2c/muxes/i2c-mux-uclass.c +++ b/drivers/i2c/muxes/i2c-mux-uclass.c @@ -183,7 +183,6 @@ static const struct dm_i2c_ops i2c_mux_bus_ops = { 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 dc9b661c1c..eab49d09ba 100644 --- a/drivers/i2c/s3c24x0_i2c.c +++ b/drivers/i2c/s3c24x0_i2c.c @@ -1433,7 +1433,6 @@ U_BOOT_DRIVER(i2c_s3c) = { .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 @@ U_BOOT_DRIVER(hs_i2c) = { .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 b84e351da7..80c15581b9 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -121,15 +121,6 @@ config PCA9551_I2C_ADDR 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 fff6f0cdf9..af541c6784 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -27,7 +27,6 @@ obj-$(CONFIG_MXS_OCOTP) += mxs_ocotp.o 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_TWL4030_LED) += twl4030_led.o 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 8a2f88a095..81ccc61a60 100644 --- a/drivers/net/cpsw.c +++ b/drivers/net/cpsw.c @@ -908,7 +908,7 @@ static int _cpsw_send(struct cpsw_priv *priv, void *packet, int length) 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 b422703126..f2c5629be2 100644 --- a/drivers/power/Kconfig +++ b/drivers/power/Kconfig @@ -15,12 +15,12 @@ choice 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 @@ config AXP152_POWER 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 @@ config AXP209_POWER 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 @@ config AXP221_POWER 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 @@ config AXP818_POWER 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 8d25b457a6..ab4878ebae 100644 --- a/drivers/spmi/Kconfig +++ b/drivers/spmi/Kconfig @@ -9,13 +9,13 @@ config SPMI 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 0000000000..05a37b9a14 --- /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 0000000000..7db1b69acc --- /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 index 3566d17fb1..3566d17fb1 100644 --- a/drivers/misc/sysreset-uclass.c +++ b/drivers/sysreset/sysreset-uclass.c diff --git a/arch/arm/mach-rockchip/rk3036/reset_rk3036.c b/drivers/sysreset/sysreset_rk3036.c index b3d2113239..b3d2113239 100644 --- a/arch/arm/mach-rockchip/rk3036/reset_rk3036.c +++ b/drivers/sysreset/sysreset_rk3036.c diff --git a/arch/arm/mach-rockchip/rk3288/reset_rk3288.c b/drivers/sysreset/sysreset_rk3288.c index 0aad1c2160..0aad1c2160 100644 --- a/arch/arm/mach-rockchip/rk3288/reset_rk3288.c +++ b/drivers/sysreset/sysreset_rk3288.c diff --git a/arch/arm/mach-rockchip/rk3399/reset_rk3399.c b/drivers/sysreset/sysreset_rk3399.c index 9a555464c6..9a555464c6 100644 --- a/arch/arm/mach-rockchip/rk3399/reset_rk3399.c +++ b/drivers/sysreset/sysreset_rk3399.c diff --git a/drivers/misc/sysreset_sandbox.c b/drivers/sysreset/sysreset_sandbox.c index 7ae7f386ee..7ae7f386ee 100644 --- a/drivers/misc/sysreset_sandbox.c +++ b/drivers/sysreset/sysreset_sandbox.c diff --git a/arch/arm/mach-snapdragon/reset.c b/drivers/sysreset/sysreset_snapdragon.c index a6cabfb8b0..a6cabfb8b0 100644 --- a/arch/arm/mach-snapdragon/reset.c +++ b/drivers/sysreset/sysreset_snapdragon.c |