~aleteoryx/muditaos

784b0518d28214ad7164cceceb7baf2cbadd4d0e — Mateusz Piesta 3 years ago 7b235b8
[BH-1552] Minor power optimization

Switched off temperature sensor and
its driver.
Minor GPIO pads configuration tweaks.
M module-bsp/board/rt1051/bellpx/hal/temperature_source/TemperatureSource.cpp => module-bsp/board/rt1051/bellpx/hal/temperature_source/TemperatureSource.cpp +9 -6
@@ 10,19 10,22 @@ namespace hal::temperature
    class BellTemperatureSource : public AbstractTemperatureSource
    {
      public:
        BellTemperatureSource()
        {
            bsp::bell_temp_sensor::init();
        }
        ~BellTemperatureSource()
        {
            bsp::bell_temp_sensor::deinit();
        }
        Result read()
        {
            temperature = bsp::bell_temp_sensor::readout();
            return temperature;
            return bsp::bell_temp_sensor::readout();
        }

      private:
        AbstractTemperatureSource::Temperature temperature{};
    };

    std::shared_ptr<AbstractTemperatureSource> AbstractTemperatureSource::Factory::create()
    {
        bsp::bell_temp_sensor::init();
        return hal::impl::factory<BellTemperatureSource, AbstractTemperatureSource>();
    }
} // namespace hal::temperature

M module-bsp/board/rt1051/bellpx/pin_mux.c => module-bsp/board/rt1051/bellpx/pin_mux.c +8 -12
@@ 1146,16 1146,16 @@ void PINMUX_InitBatteryCharger(void)

                        PAD_CONFIG_SLEW_RATE_SLOW | PAD_CONFIG_OPEN_DRAIN_DISABLED | PAD_CONFIG_SPEED_SLOW_50MHz |
                            PAD_CONFIG_PULL_KEEPER_ENABLED | PAD_CONFIG_SELECT_PULL | PAD_CONFIG_PULL_UP_100kOhm |
                            PAD_CONFIG_DRIVER_STRENGTH_LVL_6 | PAD_CONFIG_HYSTERESIS_DISABLED);
                            PAD_CONFIG_DRIVER_STRENGTH_LVL_1 | PAD_CONFIG_HYSTERESIS_DISABLED);
}

void PINMUX_InitEinkFrontlight(void)
{
    IOMUXC_SetPinMux(PINMUX_EINK_FORNTLIGHT_PWM, 0U);
    IOMUXC_SetPinConfig(PINMUX_EINK_FORNTLIGHT_PWM,
                        PAD_CONFIG_SLEW_RATE_SLOW | PAD_CONFIG_OPEN_DRAIN_DISABLED | PAD_CONFIG_SPEED_MEDIUM_1_100MHz |
                        PAD_CONFIG_SLEW_RATE_SLOW | PAD_CONFIG_OPEN_DRAIN_DISABLED | PAD_CONFIG_SPEED_SLOW_50MHz |
                            PAD_CONFIG_PULL_KEEPER_ENABLED | PAD_CONFIG_SELECT_KEEPER | PAD_CONFIG_PULL_DOWN_100kOhm |
                            PAD_CONFIG_DRIVER_STRENGTH_LVL_6 | PAD_CONFIG_HYSTERESIS_DISABLED);
                            PAD_CONFIG_DRIVER_STRENGTH_LVL_1 | PAD_CONFIG_HYSTERESIS_DISABLED);
}

void PINMUX_InitButtons(void)


@@ 1214,9 1214,9 @@ void PINMUX_WDOG_B_Init(void)
{
    IOMUXC_SetPinMux(PINMUX_WDOG_B, 0U); /* Software Input On Field: Input Path is determined by functionality */
    IOMUXC_SetPinConfig(PINMUX_WDOG_B,
                        PAD_CONFIG_SLEW_RATE_SLOW | PAD_CONFIG_OPEN_DRAIN_DISABLED | PAD_CONFIG_SPEED_MEDIUM_1_100MHz |
                        PAD_CONFIG_SLEW_RATE_SLOW | PAD_CONFIG_OPEN_DRAIN_DISABLED | PAD_CONFIG_SPEED_SLOW_50MHz |
                            PAD_CONFIG_PULL_KEEPER_ENABLED | PAD_CONFIG_SELECT_KEEPER |
                            PAD_CONFIG_DRIVER_STRENGTH_LVL_6 | PAD_CONFIG_HYSTERESIS_DISABLED);
                            PAD_CONFIG_DRIVER_STRENGTH_LVL_1 | PAD_CONFIG_HYSTERESIS_DISABLED);
}

void PINMUX_InitI2C4(void)


@@ 1239,17 1239,13 @@ void PINMUX_InitI2C4(void)

    IOMUXC_SetPinConfig(PINMUX_I2C4_SCL,

                        PAD_CONFIG_SLEW_RATE_SLOW | PAD_CONFIG_DRIVER_STRENGTH_LVL_6 |
                            PAD_CONFIG_SPEED_MEDIUM_2_100MHz | PAD_CONFIG_PULL_KEEPER_ENABLED |
                            PAD_CONFIG_SELECT_KEEPER | PAD_CONFIG_PULL_UP_22kOhm);
                        PAD_CONFIG_SLEW_RATE_SLOW | PAD_CONFIG_DRIVER_STRENGTH_LVL_1 | PAD_CONFIG_SPEED_SLOW_50MHz);

    IOMUXC_SetPinMux(PINMUX_I2C4_SDA, 1U); /* Software Input On Field: Input Path is determined by functionality */

    IOMUXC_SetPinConfig(PINMUX_I2C4_SDA,

                        PAD_CONFIG_SLEW_RATE_SLOW | PAD_CONFIG_DRIVER_STRENGTH_LVL_6 |
                            PAD_CONFIG_SPEED_MEDIUM_2_100MHz | PAD_CONFIG_PULL_KEEPER_ENABLED |
                            PAD_CONFIG_SELECT_KEEPER | PAD_CONFIG_PULL_UP_22kOhm);
                        PAD_CONFIG_SLEW_RATE_SLOW | PAD_CONFIG_DRIVER_STRENGTH_LVL_1 | PAD_CONFIG_SPEED_SLOW_50MHz);
}

void PINMUX_Wakeup(void)


@@ 1259,7 1255,7 @@ void PINMUX_Wakeup(void)
    IOMUXC_SetPinMux(PINMUX_WAKEUP, 0U); /* Software Input On Field: Input Path is determined by functionality */

    IOMUXC_SetPinConfig(PINMUX_WAKEUP,
                        PAD_CONFIG_HYSTERESIS_ENABLED | PAD_CONFIG_PULL_UP_22kOhm | PAD_CONFIG_SELECT_PULL |
                        PAD_CONFIG_HYSTERESIS_ENABLED | PAD_CONFIG_PULL_UP_100kOhm | PAD_CONFIG_SELECT_PULL |
                            PAD_CONFIG_PULL_KEEPER_ENABLED | PAD_CONFIG_OPEN_DRAIN_DISABLED);
}


M products/BellHybrid/services/evtmgr/EventManager.cpp => products/BellHybrid/services/evtmgr/EventManager.cpp +6 -4
@@ 36,14 36,16 @@ namespace
}

EventManager::EventManager(LogDumpFunction logDumpFunction, const std::string &name)
    : EventManagerCommon(logDumpFunction, name),
      temperatureSource{hal::temperature::AbstractTemperatureSource::Factory::create()},
      backlightHandler(settings, this), userActivityHandler(std::make_shared<sys::CpuSentinel>(name, this), this)
    : EventManagerCommon(logDumpFunction, name), backlightHandler(settings, this),
      userActivityHandler(std::make_shared<sys::CpuSentinel>(name, this), this)
{
    buildKeySequences();
    updateTemperature(*temperatureSource);

#if CONFIG_ENABLE_TEMP == 1
    temperatureSource = hal::temperature::AbstractTemperatureSource::Factory::create();
    updateTemperature(*temperatureSource);
    onMinuteTick = [this](const time_t) { updateTemperature(*temperatureSource); };
#endif
}

void EventManager::handleKeyEvent(sys::Message *msg)