summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/freescale/imx8mq_phanbell/spl.c37
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();