Browse Source

i2c: Convert CONFIG_POWER_I2C et al to Kconfig

This converts the following to Kconfig:
   CONFIG_POWER_I2C
   CONFIG_POWER_LEGACY

They are handled at the same time due to a dependency between them.
Update the Makefile rule to use legacy power only in U-Boot proper.
Unfortunately a separate rule is needed in SPL to be able to build
legacy power.  Add SPL related symbols for both, to allow for SPL-only
usage.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
[trini: More SPL related cleanups, reword commit message]
Signed-off-by: Tom Rini <trini@konsulko.com>
Simon Glass 2 years ago
parent
commit
9d8665b709
68 changed files with 131 additions and 65 deletions
  1. 2 2
      board/compulab/cl-som-imx7/cl-som-imx7.c
  2. 1 1
      board/freescale/imx8mp_evk/spl.c
  3. 1 1
      board/freescale/imx8mq_evk/spl.c
  4. 1 1
      board/samsung/common/board.c
  5. 1 1
      board/technexion/pico-imx7d/pico-imx7d.c
  6. 1 1
      board/tqc/tqma6/tqma6.c
  7. 1 1
      board/udoo/neo/neo.c
  8. 2 0
      configs/am43xx_evm_qspiboot_defconfig
  9. 2 0
      configs/cl-som-imx7_defconfig
  10. 2 0
      configs/cm_t43_defconfig
  11. 2 0
      configs/gwventana_emmc_defconfig
  12. 2 0
      configs/gwventana_gw5904_defconfig
  13. 2 0
      configs/gwventana_nand_defconfig
  14. 1 0
      configs/hikey_defconfig
  15. 2 0
      configs/imx8mp_evk_defconfig
  16. 2 0
      configs/imx8mq_evk_defconfig
  17. 2 0
      configs/imx8mq_phanbell_defconfig
  18. 2 0
      configs/ls1046ardb_emmc_defconfig
  19. 2 0
      configs/ls1046ardb_qspi_SECURE_BOOT_defconfig
  20. 2 0
      configs/ls1046ardb_qspi_defconfig
  21. 2 0
      configs/ls1046ardb_qspi_spl_defconfig
  22. 2 0
      configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig
  23. 2 0
      configs/ls1046ardb_sdcard_defconfig
  24. 2 0
      configs/ls1046ardb_tfa_SECURE_BOOT_defconfig
  25. 2 0
      configs/ls1046ardb_tfa_defconfig
  26. 1 0
      configs/mx51evk_defconfig
  27. 2 0
      configs/mx53loco_defconfig
  28. 2 0
      configs/mx6sabreauto_defconfig
  29. 2 0
      configs/mx6sabresd_defconfig
  30. 2 0
      configs/novena_defconfig
  31. 2 0
      configs/phycore-imx8mp_defconfig
  32. 2 0
      configs/pico-dwarf-imx7d_defconfig
  33. 2 0
      configs/pico-hobbit-imx7d_defconfig
  34. 2 0
      configs/pico-imx7d_bl33_defconfig
  35. 2 0
      configs/pico-imx7d_defconfig
  36. 2 0
      configs/pico-imx8mq_defconfig
  37. 2 0
      configs/pico-nymph-imx7d_defconfig
  38. 2 0
      configs/pico-pi-imx7d_defconfig
  39. 2 0
      configs/udoo_neo_defconfig
  40. 2 0
      configs/vining_2000_defconfig
  41. 2 0
      configs/warp_defconfig
  42. 50 0
      drivers/power/Kconfig
  43. 2 2
      drivers/power/Makefile
  44. 0 4
      include/configs/am43xx_evm.h
  45. 0 2
      include/configs/cl-som-imx7.h
  46. 0 2
      include/configs/cm_t43.h
  47. 0 2
      include/configs/el6x_common.h
  48. 0 2
      include/configs/gw_ventana.h
  49. 0 1
      include/configs/hikey.h
  50. 0 2
      include/configs/imx8mp_evk.h
  51. 0 2
      include/configs/imx8mq_evk.h
  52. 0 3
      include/configs/imx8mq_phanbell.h
  53. 0 4
      include/configs/ls1046ardb.h
  54. 0 1
      include/configs/mx51evk.h
  55. 0 2
      include/configs/mx53loco.h
  56. 0 2
      include/configs/mx6sabreauto.h
  57. 0 2
      include/configs/mx6sabresd.h
  58. 0 2
      include/configs/novena.h
  59. 0 2
      include/configs/phycore_imx8mp.h
  60. 0 2
      include/configs/pico-imx7d.h
  61. 0 3
      include/configs/pico-imx8mq.h
  62. 0 2
      include/configs/tqma6.h
  63. 0 2
      include/configs/udoo_neo.h
  64. 0 2
      include/configs/vining_2000.h
  65. 0 2
      include/configs/warp.h
  66. 1 1
      include/power/max77686_pmic.h
  67. 4 4
      include/power/pmic.h
  68. 0 2
      scripts/config_whitelist.txt

+ 2 - 2
board/compulab/cl-som-imx7/cl-som-imx7.c

@@ -267,7 +267,7 @@ int board_init(void)
 	return 0;
 }
 
-#ifdef CONFIG_POWER_LEGACY
+#if CONFIG_IS_ENABLED(POWER_LEGACY)
 #define I2C_PMIC	0
 int power_init_board(void)
 {
@@ -293,7 +293,7 @@ int power_init_board(void)
 
 	return 0;
 }
-#endif /* CONFIG_POWER_LEGACY */
+#endif /* CONFIG_IS_ENABLED(POWER_LEGACY) */
 
 /*
  * cl_som_imx7_setup_wdog() - watchdog configuration.

+ 1 - 1
board/freescale/imx8mp_evk/spl.c

@@ -63,7 +63,7 @@ struct i2c_pads_info i2c_pad_info1 = {
 	},
 };
 
-#ifdef CONFIG_POWER_LEGACY
+#if CONFIG_IS_ENABLED(POWER_LEGACY)
 #define I2C_PMIC	0
 int power_init_board(void)
 {

+ 1 - 1
board/freescale/imx8mq_evk/spl.c

@@ -156,7 +156,7 @@ int board_mmc_init(struct bd_info *bis)
 	return 0;
 }
 
-#ifdef CONFIG_POWER_LEGACY
+#if CONFIG_IS_ENABLED(POWER_LEGACY)
 #define I2C_PMIC	0
 int power_init_board(void)
 {

+ 1 - 1
board/samsung/common/board.c

@@ -185,7 +185,7 @@ int board_early_init_f(void)
 }
 #endif
 
-#if defined(CONFIG_POWER_LEGACY) || defined(CONFIG_DM_PMIC)
+#if CONFIG_IS_ENABLED(POWER_LEGACY) || CONFIG_IS_ENABLED(DM_PMIC)
 int power_init_board(void)
 {
 	set_ps_hold_ctrl();

+ 1 - 1
board/technexion/pico-imx7d/pico-imx7d.c

@@ -60,7 +60,7 @@ int dram_init(void)
 	return 0;
 }
 
-#ifdef CONFIG_POWER_LEGACY
+#if CONFIG_IS_ENABLED(POWER_LEGACY)
 #define I2C_PMIC	3
 int power_init_board(void)
 {

+ 1 - 1
board/tqc/tqma6/tqma6.c

@@ -247,7 +247,7 @@ static const char *tqma6_get_boardname(void)
 	};
 }
 
-#ifdef CONFIG_POWER_LEGACY
+#if CONFIG_IS_ENABLED(POWER_LEGACY)
 /* setup board specific PMIC */
 int power_init_board(void)
 {

+ 1 - 1
board/udoo/neo/neo.c

@@ -96,7 +96,7 @@ static struct i2c_pads_info i2c_pad_info1 = {
 };
 #endif
 
-#ifdef CONFIG_POWER_LEGACY
+#if CONFIG_IS_ENABLED(POWER_LEGACY)
 int power_init_board(void)
 {
 	struct pmic *p;

+ 2 - 0
configs/am43xx_evm_qspiboot_defconfig

@@ -49,6 +49,8 @@ CONFIG_SF_DEFAULT_SPEED=48000000
 CONFIG_SPI_FLASH_MACRONIX=y
 CONFIG_MII=y
 CONFIG_DRIVER_TI_CPSW=y
+CONFIG_SPL_POWER_LEGACY=y
+CONFIG_SPL_POWER_I2C=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_TI_QSPI=y

+ 2 - 0
configs/cl-som-imx7_defconfig

@@ -82,7 +82,9 @@ CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_PHYLIB=y
 CONFIG_PHY_ATHEROS=y
 CONFIG_MII=y
+CONFIG_POWER_LEGACY=y
 CONFIG_DM_REGULATOR=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y

+ 2 - 0
configs/cm_t43_defconfig

@@ -82,6 +82,8 @@ CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_PHY_ATHEROS=y
 CONFIG_MII=y
 CONFIG_DRIVER_TI_CPSW=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_DM_SERIAL=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y

+ 2 - 0
configs/gwventana_emmc_defconfig

@@ -102,8 +102,10 @@ CONFIG_MII=y
 CONFIG_PCI=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_POWER_LEGACY=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_POWER_I2C=y
 CONFIG_CONS_INDEX=2
 CONFIG_DM_SERIAL=y
 CONFIG_MXC_UART=y

+ 2 - 0
configs/gwventana_gw5904_defconfig

@@ -106,8 +106,10 @@ CONFIG_MII=y
 CONFIG_PCI=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_POWER_LEGACY=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_POWER_I2C=y
 CONFIG_CONS_INDEX=2
 CONFIG_DM_SERIAL=y
 CONFIG_MXC_UART=y

+ 2 - 0
configs/gwventana_nand_defconfig

@@ -108,8 +108,10 @@ CONFIG_MII=y
 CONFIG_PCI=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_POWER_LEGACY=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_POWER_I2C=y
 CONFIG_CONS_INDEX=2
 CONFIG_DM_SERIAL=y
 CONFIG_MXC_UART=y

+ 1 - 0
configs/hikey_defconfig

@@ -26,6 +26,7 @@ CONFIG_SYS_MMC_ENV_PART=2
 CONFIG_MMC_DW=y
 CONFIG_MMC_DW_K3=y
 CONFIG_DM_ETH=y
+CONFIG_POWER_LEGACY=y
 CONFIG_CONS_INDEX=4
 CONFIG_USB=y
 CONFIG_USB_DWC2=y

+ 2 - 0
configs/imx8mp_evk_defconfig

@@ -81,9 +81,11 @@ CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_SPL_PINCTRL=y
 CONFIG_PINCTRL_IMX8M=y
+CONFIG_SPL_POWER_LEGACY=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_SPL_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_SYSRESET=y
 CONFIG_SPL_SYSRESET=y

+ 2 - 0
configs/imx8mq_evk_defconfig

@@ -52,11 +52,13 @@ CONFIG_PHY=y
 CONFIG_PHY_IMX8MQ_USB=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX8M=y
+CONFIG_SPL_POWER_LEGACY=y
 CONFIG_POWER_DOMAIN=y
 CONFIG_IMX8M_POWER_DOMAIN=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_SPL_POWER_I2C=y
 CONFIG_DM_RESET=y
 CONFIG_MXC_UART=y
 CONFIG_DM_THERMAL=y

+ 2 - 0
configs/imx8mq_phanbell_defconfig

@@ -54,11 +54,13 @@ CONFIG_FSL_USDHC=y
 CONFIG_DM_ETH=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX8M=y
+CONFIG_SPL_POWER_LEGACY=y
 CONFIG_POWER_DOMAIN=y
 CONFIG_IMX8M_POWER_DOMAIN=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_SPL_POWER_I2C=y
 CONFIG_DM_RESET=y
 CONFIG_MXC_UART=y
 CONFIG_DM_THERMAL=y

+ 2 - 0
configs/ls1046ardb_emmc_defconfig

@@ -83,6 +83,8 @@ CONFIG_NVME=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
 CONFIG_PCIE_LAYERSCAPE_EP=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y

+ 2 - 0
configs/ls1046ardb_qspi_SECURE_BOOT_defconfig

@@ -65,6 +65,8 @@ CONFIG_NVME=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
 CONFIG_PCIE_LAYERSCAPE_EP=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y

+ 2 - 0
configs/ls1046ardb_qspi_defconfig

@@ -69,6 +69,8 @@ CONFIG_NVME=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
 CONFIG_PCIE_LAYERSCAPE_EP=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y

+ 2 - 0
configs/ls1046ardb_qspi_spl_defconfig

@@ -87,6 +87,8 @@ CONFIG_NVME=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
 CONFIG_PCIE_LAYERSCAPE_EP=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_SYS_QE_FMAN_FW_IN_SPIFLASH=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y

+ 2 - 0
configs/ls1046ardb_sdcard_SECURE_BOOT_defconfig

@@ -81,6 +81,8 @@ CONFIG_FMAN_ENET=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
 CONFIG_PCIE_LAYERSCAPE_EP=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y

+ 2 - 0
configs/ls1046ardb_sdcard_defconfig

@@ -81,6 +81,8 @@ CONFIG_NVME=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
 CONFIG_PCIE_LAYERSCAPE_EP=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_SYS_QE_FMAN_FW_IN_MMC=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y

+ 2 - 0
configs/ls1046ardb_tfa_SECURE_BOOT_defconfig

@@ -62,6 +62,8 @@ CONFIG_NVME=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
 CONFIG_PCIE_LAYERSCAPE_EP=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y

+ 2 - 0
configs/ls1046ardb_tfa_defconfig

@@ -68,6 +68,8 @@ CONFIG_NVME=y
 CONFIG_PCI=y
 CONFIG_PCIE_LAYERSCAPE_RC=y
 CONFIG_PCIE_LAYERSCAPE_EP=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_DM_SCSI=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y

+ 1 - 0
configs/mx51evk_defconfig

@@ -42,6 +42,7 @@ CONFIG_FEC_MXC=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX5=y
+CONFIG_POWER_LEGACY=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y

+ 2 - 0
configs/mx53loco_defconfig

@@ -48,9 +48,11 @@ CONFIG_FEC_MXC=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX5=y
+CONFIG_POWER_LEGACY=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_USB=y
 CONFIG_USB_EHCI_MX5=y

+ 2 - 0
configs/mx6sabreauto_defconfig

@@ -90,7 +90,9 @@ CONFIG_RGMII=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_POWER_LEGACY=y
 CONFIG_DM_REGULATOR=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y

+ 2 - 0
configs/mx6sabresd_defconfig

@@ -99,8 +99,10 @@ CONFIG_MII=y
 CONFIG_PCI=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_POWER_LEGACY=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_SPI=y
 CONFIG_DM_SPI=y

+ 2 - 0
configs/novena_defconfig

@@ -70,6 +70,8 @@ CONFIG_MII=y
 CONFIG_PCI=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_DM_THERMAL=y
 CONFIG_IMX_THERMAL=y

+ 2 - 0
configs/phycore-imx8mp_defconfig

@@ -92,9 +92,11 @@ CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_SPL_PINCTRL=y
 CONFIG_PINCTRL_IMX8M=y
+CONFIG_SPL_POWER_LEGACY=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_SPL_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_SYSRESET=y
 CONFIG_SPL_SYSRESET=y

+ 2 - 0
configs/pico-dwarf-imx7d_defconfig

@@ -72,6 +72,8 @@ CONFIG_RGMII=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX7=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y

+ 2 - 0
configs/pico-hobbit-imx7d_defconfig

@@ -72,6 +72,8 @@ CONFIG_RGMII=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX7=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y

+ 2 - 0
configs/pico-imx7d_bl33_defconfig

@@ -66,6 +66,8 @@ CONFIG_RGMII=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX7=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_CONS_INDEX=4
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y

+ 2 - 0
configs/pico-imx7d_defconfig

@@ -72,6 +72,8 @@ CONFIG_RGMII=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX7=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y

+ 2 - 0
configs/pico-imx8mq_defconfig

@@ -52,11 +52,13 @@ CONFIG_FSL_USDHC=y
 CONFIG_DM_ETH=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX8M=y
+CONFIG_SPL_POWER_LEGACY=y
 CONFIG_POWER_DOMAIN=y
 CONFIG_IMX8M_POWER_DOMAIN=y
 CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_SPL_POWER_I2C=y
 CONFIG_DM_RESET=y
 CONFIG_MXC_UART=y
 CONFIG_DM_THERMAL=y

+ 2 - 0
configs/pico-nymph-imx7d_defconfig

@@ -72,6 +72,8 @@ CONFIG_RGMII=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX7=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y

+ 2 - 0
configs/pico-pi-imx7d_defconfig

@@ -72,6 +72,8 @@ CONFIG_RGMII=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX7=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y
 CONFIG_USB=y

+ 2 - 0
configs/udoo_neo_defconfig

@@ -50,5 +50,7 @@ CONFIG_RGMII=y
 CONFIG_MII=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_IMX_THERMAL=y

+ 2 - 0
configs/vining_2000_defconfig

@@ -78,6 +78,8 @@ CONFIG_MII=y
 CONFIG_PCI=y
 CONFIG_PINCTRL=y
 CONFIG_PINCTRL_IMX6=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_PWM_IMX=y
 CONFIG_DM_SERIAL=y
 CONFIG_MXC_UART=y

+ 2 - 0
configs/warp_defconfig

@@ -38,6 +38,8 @@ CONFIG_SYS_I2C_LEGACY=y
 CONFIG_SYS_I2C_MXC=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_USDHC=y
+CONFIG_POWER_LEGACY=y
+CONFIG_POWER_I2C=y
 CONFIG_MXC_UART=y
 CONFIG_USB=y
 CONFIG_WATCHDOG_TIMEOUT_MSECS=30000

+ 50 - 0
drivers/power/Kconfig

@@ -1,5 +1,34 @@
 menu "Power"
 
+config POWER_LEGACY
+	bool "Legacy power support"
+	help
+	  Note: This is a legacy option. Use DM_PMIC instead.
+
+	  Enable support for power control in U-Boot. This includes support
+	  for PMICs (Power-management Integrated Circuits) and some of the
+	  features provided by PMICs. In particular, voltage regulators can
+	  be used to enable/disable power and vary its voltage. That can be
+	  useful in U-Boot to turn on boot peripherals and adjust CPU voltage
+	  so that the clock speed can be increased. This enables the drivers
+	  in drivers/power, drivers/power/pmic and drivers/power/regulator
+	  as part of a build.
+
+config SPL_POWER_LEGACY
+	bool "Legacy power support in SPL"
+	default y if POWER_LEGACY
+	help
+	  Note: This is a legacy option. Use SPL_DM_PMIC instead.
+
+	  Enable support for power control in SPL. This includes support
+	  for PMICs (Power-management Integrated Circuits) and some of the
+	  features provided by PMICs. In particular, voltage regulators can
+	  be used to enable/disable power and vary its voltage. That can be
+	  useful in SPL to turn on boot peripherals and adjust CPU voltage
+	  so that the clock speed can be increased. This enables the drivers
+	  in drivers/power, drivers/power/pmic and drivers/power/regulator
+	  as part of a build.
+
 source "drivers/power/acpi_pmc/Kconfig"
 
 source "drivers/power/domain/Kconfig"
@@ -383,4 +412,25 @@ config POWER_MT6323
 	  This adds poweroff driver for mt6323
 	  this pmic is used on mt7623 / Bananapi R2
 
+config POWER_I2C
+	bool "I2C-based power control for legacy power"
+	depends on POWER_LEGACY
+	help
+	  Enable this to use the I2C driver designed for the legacy PMIC
+	  interface.
+
+	  Not to be used for new designs and existing ones should be moved to
+	  the new PMIC interface based on driver model.
+
+config SPL_POWER_I2C
+	bool "I2C-based power control for legacy power"
+	depends on SPL_POWER_LEGACY
+	default y if POWER_I2C
+	help
+	  Enable this to use the I2C driver designed for the legacy PMIC
+	  interface.
+
+	  Not to be used for new designs and existing ones should be moved to
+	  the new PMIC interface based on driver model.
+
 endmenu

+ 2 - 2
drivers/power/Makefile

@@ -16,9 +16,9 @@ obj-$(CONFIG_TPS6586X_POWER)	+= tps6586x.o
 obj-$(CONFIG_TWL4030_POWER)	+= twl4030.o
 obj-$(CONFIG_TWL6030_POWER)	+= twl6030.o
 obj-$(CONFIG_PALMAS_POWER)	+= palmas.o
-obj-$(CONFIG_POWER_LEGACY) += power_core.o
+obj-$(CONFIG_$(SPL_TPL_)POWER_LEGACY) += power_core.o
 obj-$(CONFIG_DIALOG_POWER) += power_dialog.o
 obj-$(CONFIG_POWER_FSL) += power_fsl.o
-obj-$(CONFIG_POWER_I2C) += power_i2c.o
+obj-$(CONFIG_$(SPL_TPL_)POWER_I2C) += power_i2c.o
 obj-$(CONFIG_POWER_SPI) += power_spi.o
 obj-$(CONFIG_POWER_MT6323) += mt6323.o

+ 0 - 4
include/configs/am43xx_evm.h

@@ -23,10 +23,6 @@
 /* I2C Configuration */
 
 /* Power */
-#if !CONFIG_IS_ENABLED(DM_I2C)
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
-#endif
 #define CONFIG_POWER_TPS65218
 #define CONFIG_POWER_TPS62362
 

+ 0 - 2
include/configs/cl-som-imx7.h

@@ -22,8 +22,6 @@
 #define IMX_FEC_BASE			ENET_IPS_BASE_ADDR
 
 /* PMIC */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE3000
 #define CONFIG_POWER_PFUZE3000_I2C_ADDR	0x08
 

+ 0 - 2
include/configs/cm_t43.h

@@ -50,8 +50,6 @@
 #define CONFIG_AM437X_USB2PHY2_HOST
 
 /* Power */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_TPS65218
 
 /* Enabling L2 Cache */

+ 0 - 2
include/configs/el6x_common.h

@@ -23,8 +23,6 @@
 #define CONFIG_SYS_FSL_USDHC_NUM	2
 
 /* PMIC */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE100
 #define CONFIG_POWER_PFUZE100_I2C_ADDR	0x08
 

+ 0 - 2
include/configs/gw_ventana.h

@@ -65,8 +65,6 @@
 /*
  * PMIC
  */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE100
 #define CONFIG_POWER_PFUZE100_I2C_ADDR	0x08
 #define CONFIG_POWER_LTC3676

+ 0 - 1
include/configs/hikey.h

@@ -13,7 +13,6 @@
 
 #include <linux/sizes.h>
 
-#define CONFIG_POWER_LEGACY
 #define CONFIG_POWER_HI6553
 
 #define CONFIG_REMAKE_ELF

+ 0 - 2
include/configs/imx8mp_evk.h

@@ -31,8 +31,6 @@
 
 #undef CONFIG_DM_MMC
 
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PCA9450
 
 #endif

+ 0 - 2
include/configs/imx8mq_evk.h

@@ -44,8 +44,6 @@
 
 #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
 
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE100
 #define CONFIG_POWER_PFUZE100_I2C_ADDR 0x08
 #endif

+ 0 - 3
include/configs/imx8mq_phanbell.h

@@ -40,9 +40,6 @@
 #undef CONFIG_DM_MMC
 
 #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
-
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #endif
 
 #define CONFIG_REMAKE_ELF

+ 0 - 4
include/configs/ls1046ardb.h

@@ -124,10 +124,6 @@
 #define I2C_RETIMER_ADDR			0x18
 
 /* PMIC */
-#define CONFIG_POWER_LEGACY
-#ifdef CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
-#endif
 
 /*
  * Environment

+ 0 - 1
include/configs/mx51evk.h

@@ -30,7 +30,6 @@
 #define CONFIG_MXC_UART_BASE	UART1_BASE
 
 /* PMIC Controller */
-#define CONFIG_POWER_LEGACY
 #define CONFIG_POWER_SPI
 #define CONFIG_POWER_FSL
 #define CONFIG_FSL_PMIC_BUS	0

+ 0 - 2
include/configs/mx53loco.h

@@ -33,8 +33,6 @@
 #define CONFIG_MXC_USB_FLAGS	0
 
 /* PMIC Controller */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_DIALOG_POWER
 #define CONFIG_POWER_FSL
 #define CONFIG_POWER_FSL_MC13892

+ 0 - 2
include/configs/mx6sabreauto.h

@@ -59,8 +59,6 @@
 /* DMA stuff, needed for GPMI/MXS NAND support */
 
 /* PMIC */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE100
 #define CONFIG_POWER_PFUZE100_I2C_ADDR	0x08
 

+ 0 - 2
include/configs/mx6sabresd.h

@@ -38,8 +38,6 @@
 #endif
 
 /* PMIC */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE100
 #define CONFIG_POWER_PFUZE100_I2C_ADDR	0x08
 

+ 0 - 2
include/configs/novena.h

@@ -68,8 +68,6 @@
 #endif
 
 /* PMIC */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE100
 #define CONFIG_POWER_PFUZE100_I2C_ADDR	0x08
 

+ 0 - 2
include/configs/phycore_imx8mp.h

@@ -29,8 +29,6 @@
 
 #define CONFIG_SPL_ABORT_ON_RAW_IMAGE
 
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PCA9450
 
 #endif

+ 0 - 2
include/configs/pico-imx7d.h

@@ -122,8 +122,6 @@
 	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
 
 /* PMIC */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE3000
 #define CONFIG_POWER_PFUZE3000_I2C_ADDR	0x08
 

+ 0 - 3
include/configs/pico-imx8mq.h

@@ -40,9 +40,6 @@
 #undef CONFIG_DM_MMC
 
 #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
-
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #endif
 
 #define CONFIG_REMAKE_ELF

+ 0 - 2
include/configs/tqma6.h

@@ -42,8 +42,6 @@
 #define CONFIG_SYS_I2C_EEPROM_PAGE_WRITE_DELAY_MS	20
 
 #if !defined(CONFIG_DM_PMIC)
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE100
 #define CONFIG_POWER_PFUZE100_I2C_ADDR	0x08
 #define TQMA6_PFUZE100_I2C_BUS		2

+ 0 - 2
include/configs/udoo_neo.h

@@ -68,8 +68,6 @@
 	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
 
 /* PMIC */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE3000
 #define CONFIG_POWER_PFUZE3000_I2C_ADDR	0x08
 #define PFUZE3000_I2C_BUS	0

+ 0 - 2
include/configs/vining_2000.h

@@ -40,8 +40,6 @@
 #define CONFIG_SYS_FSL_ESDHC_ADDR	USDHC4_BASE_ADDR
 
 /* PMIC */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 #define CONFIG_POWER_PFUZE100
 #define CONFIG_POWER_PFUZE100_I2C_ADDR	0x08
 

+ 0 - 2
include/configs/warp.h

@@ -52,8 +52,6 @@
 /* I2C Configs */
 
 /* PMIC */
-#define CONFIG_POWER_LEGACY
-#define CONFIG_POWER_I2C
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"script=boot.scr\0" \

+ 1 - 1
include/power/max77686_pmic.h

@@ -154,7 +154,7 @@ enum {
 	OPMODE_ON,
 };
 
-#ifdef CONFIG_POWER_LEGACY
+#if CONFIG_IS_ENABLED(POWER_LEGACY)
 int max77686_set_ldo_voltage(struct pmic *p, int ldo, ulong uV);
 int max77686_set_ldo_mode(struct pmic *p, int ldo, char opmode);
 int max77686_set_buck_voltage(struct pmic *p, int buck, ulong uV);

+ 4 - 4
include/power/pmic.h

@@ -18,7 +18,7 @@
 enum { PMIC_I2C, PMIC_SPI, PMIC_NONE};
 
 /* TODO: Change to !CONFIG_IS_ENABLED(DM_PMIC) when SPL_DM_PMIC exists */
-#ifdef CONFIG_POWER_LEGACY
+#if CONFIG_IS_ENABLED(POWER_LEGACY)
 enum { I2C_PMIC, I2C_NUM, };
 enum { PMIC_READ, PMIC_WRITE, };
 enum { PMIC_SENSOR_BYTE_ORDER_LITTLE, PMIC_SENSOR_BYTE_ORDER_BIG, };
@@ -83,7 +83,7 @@ struct pmic {
 	struct pmic *parent;
 	struct list_head list;
 };
-#endif /* CONFIG_POWER_LEGACY */
+#endif /* CONFIG_IS_ENABLED(POWER_LEGACY) */
 
 /* TODO: Change to CONFIG_IS_ENABLED(DM_PMIC) when SPL_DM_PMIC exists */
 #ifdef CONFIG_DM_PMIC
@@ -311,7 +311,7 @@ struct uc_pmic_priv {
 #endif /* DM_PMIC */
 
 /* TODO: Change to CONFIG_IS_ENABLED(DM_PMIC) when SPL_DM_PMIC exists */
-#ifdef CONFIG_POWER_LEGACY
+#if CONFIG_IS_ENABLED(POWER_LEGACY)
 
 /* Legacy API, do not use */
 int pmic_init(unsigned char bus);
@@ -324,7 +324,7 @@ int pmic_probe(struct pmic *p);
 int pmic_reg_read(struct pmic *p, u32 reg, u32 *val);
 int pmic_reg_write(struct pmic *p, u32 reg, u32 val);
 int pmic_set_output(struct pmic *p, u32 reg, int ldo, int on);
-#endif /* CONFIG_POWER_LEGACY */
+#endif /* CONFIG_IS_ENABLED(POWER_LEGACY) */
 
 #define pmic_i2c_addr (p->hw.i2c.addr)
 #define pmic_i2c_tx_num (p->hw.i2c.tx_num)

+ 0 - 2
scripts/config_whitelist.txt

@@ -1035,8 +1035,6 @@ CONFIG_POST_WATCHDOG
 CONFIG_POWER_FSL
 CONFIG_POWER_FSL_MC13892
 CONFIG_POWER_HI6553
-CONFIG_POWER_I2C
-CONFIG_POWER_LEGACY
 CONFIG_POWER_LTC3676
 CONFIG_POWER_LTC3676_I2C_ADDR
 CONFIG_POWER_MAX77696_I2C_ADDR