From b76ac8fc500c51d3948b34db0c607dc6f46fab13 Mon Sep 17 00:00:00 2001 From: Rahix <rahix@rahix.de> Date: Mon, 19 Aug 2019 18:11:47 +0200 Subject: [PATCH] feat(epicardium): Mirror card10_init in hardware_early_init Signed-off-by: Rahix <rahix@rahix.de> --- epicardium/modules/hardware.c | 70 ++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/epicardium/modules/hardware.c b/epicardium/modules/hardware.c index 7ec18cd2..64581269 100644 --- a/epicardium/modules/hardware.c +++ b/epicardium/modules/hardware.c @@ -9,6 +9,15 @@ #include "modules/stream.h" #include "card10.h" +#include "display.h" +#include "leds.h" +#include "pb.h" +#include "pmic.h" +#include "portexpander.h" + +#include "gpio.h" +#include "i2c.h" +#include "spi.h" /* * Early init is called at the very beginning and is meant for modules which @@ -17,7 +26,66 @@ */ int hardware_early_init(void) { - card10_init(); + /* + * I2C bus for onboard peripherals (ie. PMIC, BMA400, BHI160, BME680, + * ...) + */ + I2C_Shutdown(MXC_I2C1_BUS0); + I2C_Init(MXC_I2C1_BUS0, I2C_FAST_MODE, NULL); + +#ifndef CARD10_DEBUG_CORE1 + /* + * SAO I2C bus + */ + I2C_Shutdown(MXC_I2C0_BUS0); + I2C_Init(MXC_I2C0_BUS0, I2C_FAST_MODE, NULL); +#endif + + /* + * GPIO peripheral. + */ + GPIO_Init(); + + /* + * PMIC (MAX77650) + */ + pmic_init(); + pmic_set_led(0, 0); + pmic_set_led(1, 0); + pmic_set_led(2, 0); + + /* + * Harmonic Board Portexpander + */ + portexpander_init(); + + /* + * Buttons + */ + PB_Init(); + + /* + * SPI for ECG + */ + const sys_cfg_spi_t spi17y_master_cfg = { + .map = MAP_A, + .ss0 = Enable, + .ss1 = Disable, + .ss2 = Disable, + }; + + if (SPI_Init(SPI0, 0, SPI_SPEED, spi17y_master_cfg) != 0) { + LOG_ERR("init", "Error configuring SPI"); + while (1) + ; + } + + display_init(); + + /* + * RGB LEDs + */ + leds_init(); #ifdef CARD10_DEBUG_CORE1 /* -- GitLab