[MOS-981] Fix crash on phone turn off Fix of the issue that the phone might sometimes crash on shutdown.
[MOS-981] Magnetometer driver cleanup Cleanup of the magnetometer driver. Added checks of all I2C operations return codes and error messages in case of failures.
[BH-1671] Reinit eMMC driver Reinit eMMC driver if write/read transmission failed.
[BH-1661] E-ink display power management tweaks Tweaks and changes required to optimize power consumption for Harmony.
[BH-1672] Add logging of eMMC parameters Added logging of eMMC storage card parameters so that it's easy to determine what chip is installed in the device the logs are from.
[BH-1655] Fix memory leaks in clock faces and shortcuts Disable libphonenumber initialization since it is not used in Harmony but takes around 1.4MB of memory Add heap allocation statistics
[BH-1630] Turn off the device for low voltage The system closes only if the SoC is 0%, but it doesn't react if the voltage has low level. The new implementation invokes the close procedure if the voltage is less than 3.4V. This solution should avoid possiblity to hang the MCU.
[BH-1649] Reimplement I2C communication attempts The CW2015 driver should avoid any logic. Thus I2C communication attempts were moved to the BatteryCharger which is product specific.
[MOS-000] Remove redundant newlines when printing clocks As described.
[BH-1628] Reinit I2C after bus error A lack of timeout in I2C could cause the worker could get stuck in a loop if the communication has been broken somehow. The Harmony is unresponsive in this case. The only solution is just to perform a hardware reset using Frontlight and Back buttons simultaneously. There are also additional 5 attempts to read and write transactions if the bus error occurs in the Fuel Gauge driver. It should be sufficient but if it would still persists the system just will read 0% SOC and shutdown system.
[BH-1627] Enable brownout detection There is the possibility of hanging the MCU due to a power glitch if the voltage drops to 2.8V and the system wants to use some peripherals like the eink or the backlight. To prevent this situation brownout detection has been enabled which monitors the 1.1V and 2.5V LDO regulators. If the voltage will drop to the trigger voltages then the interrupt is invoked. The interrupt checks the source of the interrupt and then reset the MCU using WDOG_B pin which is connected to the main power source. After restarting, the MCU checks the voltage. If it is too low the system enters SNVS mode.
[BH-1554] Add delay after init external oscillator Some Harmony devices are struggling to switch between internal to external oscillators. According to the newest version of the library (lpm.c - Low Power Mode) the NXP is recommending adding at least a 200us delay after enabling the external oscillator. Their implementation is not full because the CPU speed used in the delay function is hardcoded. So if the CPU has a frequency 4MHz the delay takes ~26ms. To avoid that situation we use the proper speed of the CPU in the delay function.
[MOS-176] Fix long turn off time Fix of the issue that resulted in long turn off time of the phone, which was caused by unfortunate coincidence of functions names - as a result the one from the included header file was called instead of the one from the anonymous namespace inside the file, what resulted on not cutting off board power until the watchdog triggered.
[MOS-903] Remove reboot to USB MSC mode Remove mechanics enabling to perform reboot to MSC mode by sending request to one of the endpoints via serial port, as it is not implemented in bootloader and may potentially be unsafe.
[MOS-887] Fix black screen left after power off Fix of the issue that after powering off the phone with dark mode enabled the screen remained black instead of being cleared to white.
[MOS-882] Fix FLAC file playback with USB cable connected Fix of the issue that caused system crash when trying to play 96kHz FLAC file with USB cable connected. The reason of the issue was the lack of FreeRTOS heap space left, what caused pvPortMalloc() to fail when allocating memory for stream buffer. Additionally minor code cleanup.
[MOS-807] Update scripts Added update scripts for both variants: UDM update and further 'normal' updates. Minor updates to the directories layout
[MOS-783] Moved battery config file to '/user/data' Moved battery config file from root directory of user partition to 'data' directory to comply with new directory layout design.
[MOS-786] A/B Booting - fixed factory reset from menu Now factory reset works both from ecoboot and from menu
[MOS-783] Working Pure simulator after partition changes Fixed iosyscalls so that Pure simulator works after directory structure changes.