From 628ee7d7712ecdb007bc91e05d0eba8c4cb5b4ea Mon Sep 17 00:00:00 2001 From: Martino Facchin <m.facchin@arduino.cc> Date: Tue, 4 Jul 2017 17:26:26 +0200 Subject: [PATCH] Fix PMIC behaviour by borrowing Electron library PMIC initialization is now handled by the GSM init() if the selected board is suitable. The only hadcoded PMIC initialization is 500mA maximum charge current. --- variants/mkrgsm1400/variant.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/variants/mkrgsm1400/variant.cpp b/variants/mkrgsm1400/variant.cpp index 615a02a5..efd368b1 100644 --- a/variants/mkrgsm1400/variant.cpp +++ b/variants/mkrgsm1400/variant.cpp @@ -17,6 +17,7 @@ */ #include "variant.h" +#include "Arduino.h" const PinDescription g_APinDescription[] = { @@ -172,6 +173,12 @@ SERCOM sercom5(SERCOM5); #define PMIC_ADDRESS 0x6B #define PMIC_REG02 0x02 +#define PMIC_REG00 0x00 +#define INPUT_CURRENT_LIMIT_0A1 (0x0) +#define INPUT_CURRENT_LIMIT_0A9 (0x3) +#define INPUT_CURRENT_LIMIT_1A5 (0x5) +#define VOLTAGE_LIMIT_4V36 (0x6 << 3) +#define VOLTAGE_LIMIT_4V04 (0x2 << 3) static inline void set_pmic_safe_defaults() { PERIPH_WIRE.initMasterWIRE(100000); @@ -183,15 +190,20 @@ static inline void set_pmic_safe_defaults() { PERIPH_WIRE.sendDataMasterWIRE(PMIC_REG02); PERIPH_WIRE.sendDataMasterWIRE(0); PERIPH_WIRE.prepareCommandBitsWire(WIRE_MASTER_ACT_STOP); + PERIPH_WIRE.disableWIRE(); } +#else + +static inline void set_pmic_safe_defaults() {} + +#endif + void initVariant() { set_pmic_safe_defaults(); } -#endif - // Serial1 Uart Serial1(&sercom5, PIN_SERIAL1_RX, PIN_SERIAL1_TX, PAD_SERIAL1_RX, PAD_SERIAL1_TX); -- GitLab