pico-imx6ul: Add PMIC support
PATCH v2 1/1 pico-imx6ul: Add PMIC support
Add PMIC support. Tested by command "pmic PFUZE3000 dump".
Signed-off-by Vanessa Maegima <[email protected]>
---
Changes since v1:
- Remove use of "reg" variable in function "pmic_reg_write".
board/technexion/pico-imx6ul/pico-imx6ul.c | 70 ++++++++++++++++++++++++++++++ include/configs/pico-imx6ul.h | 12 +++++ 2 files changed, 82 insertions(+)
board/technexion/pico-imx6ul/pico-imx6ul.c +70 -0
@@ -14,13 +14,18 @@#include <asm/arch/sys_proto.h> #include <asm/gpio.h> #include <asm/imx-common/iomux-v3.h> +#include <asm/imx-common/mxc_i2c.h> #include <asm/io.h> #include <common.h> #include <miiphy.h> #include <netdev.h> #include <fsl_esdhc.h> +#include <i2c.h> #include <linux/sizes.h> #include <usb.h> +#include <power/pmic.h> +#include <power/pfuze3000_pmic.h> +#include "../../freescale/common/pfuze.h" DECLARE_GLOBAL_DATA_PTR ;
@@ -32,6 +37,11 @@ DECLARE_GLOBAL_DATA_PTR; PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \ PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) +#define I2C_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ + PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \ + PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \ + PAD_CTL_ODE) +#define OTG_ID_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_LOW | \ PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
@@ -47,6 +57,23 @@ DECLARE_GLOBAL_DATA_PTR;#define RMII_PHY_RESET IMX_GPIO_NR(1, 28) +#ifdef CONFIG_SYS_I2C_MXC +#define PC MUX_PAD_CTRL(I2C_PAD_CTRL) +/* I2C2 for PMIC */ +struct i2c_pads_info i2c_pad_info1 = { + .scl = { + .i2c_mode =MX6_PAD_GPIO1_IO02__I2C1_SCL |PC , + .gpio_mode =MX6_PAD_GPIO1_IO02__GPIO1_IO02 |PC , + .gp =IMX_GPIO_NR (1 ,2 ), + }, + .sda = { + .i2c_mode =MX6_PAD_GPIO1_IO03__I2C1_SDA |PC , + .gpio_mode =MX6_PAD_GPIO1_IO03__GPIO1_IO03 |PC , + .gp =IMX_GPIO_NR (1 ,3 ), + }, +}; +#endif +static iomux_v3_cfg_t const fec_pads[] = {MX6_PAD_ENET1_TX_EN__ENET2_MDC |MUX_PAD_CTRL (MDIO_PAD_CTRL ),MX6_PAD_ENET1_TX_DATA1__ENET2_MDIO |MUX_PAD_CTRL (MDIO_PAD_CTRL ),
@@ -182,6 +209,45 @@ int board_early_init_f(void)return 0 ; } +#ifdef CONFIG_POWER +#define I2C_PMIC 0 +static struct pmic *pfuze; +int power_init_board (void ) +{ +int ret; +unsigned int reg, rev_id; + + ret =power_pfuze3000_init (I2C_PMIC ); +if (ret) +return ret; + + pfuze =pmic_get ("PFUZE3000" ); + ret =pmic_probe (pfuze); +if (ret) +return ret; + +pmic_reg_read (pfuze,PFUZE3000_DEVICEID , ®); +pmic_reg_read (pfuze,PFUZE3000_REVID , &rev_id); +printf ("PMIC: PFUZE3000 DEV_ID=0x%x REV_ID=0x%x\n" , reg, rev_id); + +/* disable Low Power Mode during standby mode */ +pmic_reg_read (pfuze,PFUZE3000_LDOGCTL , ®); + reg |=0x1 ; +pmic_reg_write (pfuze,PFUZE3000_LDOGCTL , reg); + +/* SW1B step ramp up time from 2us to 4us/25mV */ +pmic_reg_write (pfuze,PFUZE3000_SW1BCONF ,0x40 ); + +/* SW1B mode to APS/PFM */ +pmic_reg_write (pfuze,PFUZE3000_SW1BMODE ,0xc ); + +/* SW1B standby voltage set to 0.975V */ +pmic_reg_write (pfuze,PFUZE3000_SW1BSTBY ,0xb ); + +return 0 ; +} +#endif +int board_usb_phy_mode (int port) {if (port ==1 )
@@ -211,6 +277,10 @@ int board_init(void)/* Address of boot parameters */ gd->bd->bi_boot_params =PHYS_SDRAM +0x100 ; +#ifdef CONFIG_SYS_I2C_MXC +setup_i2c (0 ,CONFIG_SYS_I2C_SPEED ,0x7f , &i2c_pad_info1); +#endif +setup_fec ();setup_usb ();
include/configs/pico-imx6ul.h +12 -0
@@ -158,6 +158,18 @@#define CONFIG_SYS_INIT_SP_ADDR \ (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) +/* I2C configs */ +#define CONFIG_SYS_I2C +#define CONFIG_SYS_I2C_MXC +#define CONFIG_SYS_I2C_MXC_I2C1 +#define CONFIG_SYS_I2C_SPEED 100000 + +/* PMIC */ +#define CONFIG_POWER +#define CONFIG_POWER_I2C +#define CONFIG_POWER_PFUZE3000 +#define CONFIG_POWER_PFUZE3000_I2C_ADDR 0x08 +/* FLASH and environment organization */ #define CONFIG_SYS_NO_FLASH
Signature · 1 line
2.7.4
Fabio Estevam
reviewerPATCH v2 1/1 pico-imx6ul: Add PMIC support
Quoted 3 lines · Vanessa Maegima
Add PMIC support. Tested by command "pmic PFUZE3000 dump".
Signed-off-by Vanessa Maegima <[email protected]>
Reviewed-by Fabio Estevam <[email protected]>
PATCH v2 1/1 pico-imx6ul: Add PMIC support
In reply to Vanessa MaegimaHi Vanessa,
Quoted 4 lines · Vanessa Maegima
Add PMIC support. Tested by command "pmic PFUZE3000 dump".
Signed-off-by Vanessa Maegima <[email protected]>---
Applied to u-boot-imx, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================