diff options
-rw-r--r-- | board/freescale/imx8mq_phanbell/spl.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/board/freescale/imx8mq_phanbell/spl.c b/board/freescale/imx8mq_phanbell/spl.c index 1e22b004fb..c821169325 100644 --- a/board/freescale/imx8mq_phanbell/spl.c +++ b/board/freescale/imx8mq_phanbell/spl.c @@ -25,6 +25,8 @@ DECLARE_GLOBAL_DATA_PTR; +#define ENABLE_LTC1695_FAN + void spl_dram_init(void) { const int board_id = get_board_id(); @@ -57,6 +59,19 @@ struct i2c_pads_info i2c_pad_info1 = { }, }; +struct i2c_pads_info i2c_pad_info2 = { + .scl = { + .i2c_mode = IMX8MQ_PAD_I2C2_SCL__I2C2_SCL | PC, + .gpio_mode = IMX8MQ_PAD_I2C2_SCL__GPIO5_IO16 | PC, + .gp = IMX_GPIO_NR(5, 16), + }, + .sda = { + .i2c_mode = IMX8MQ_PAD_I2C2_SDA__I2C2_SDA | PC, + .gpio_mode = IMX8MQ_PAD_I2C2_SDA__GPIO5_IO17 | PC, + .gp = IMX_GPIO_NR(5, 17), + }, +}; + #define USDHC2_CD_GPIO IMX_GPIO_NR(2, 12) #define USDHC1_PWR_GPIO IMX_GPIO_NR(2, 10) #define USDHC2_PWR_GPIO IMX_GPIO_NR(2, 19) @@ -197,6 +212,23 @@ int power_init_board(void) } #endif +#ifdef ENABLE_LTC1695_FAN +#define I2C2_BUS 1 +void enable_ltc1695_fan() +{ + i2c_set_bus_num(I2C2_BUS); + uint8_t on = 0xff; + int r = i2c_write(0x74, 0, 0, &on, 1); + if (r == 0) { + printf("ltc1695 fan on\n"); + } else { + printf("write to ltc1695 failed:%d\n", r); + } + i2c_set_bus_num(0); +} + +#endif + #define ASRC_SBMR1 0x30390058 #define ASRC_SBMR2 0x30390070 @@ -213,6 +245,11 @@ void spl_board_init(void) *(volatile uint32_t*)ASRC_SBMR1, *(volatile uint32_t*)ASRC_SBMR2); +#ifdef ENABLE_LTC1695_FAN + setup_i2c(I2C2_BUS, CONFIG_SYS_I2C_SPEED, 0x7f, &i2c_pad_info2); + enable_ltc1695_fan(); +#endif + /* DDR initialization */ spl_dram_init(); |