driver: modem: add simple power management to modem receiver
As modem receiver is using UART, it requires disabling of the UART and its callbacks to save power. This adds simple sleep/wake functions which should be called from defined device_pm functions in modem drivers later. Signed-off-by: Christoph Schramm <schramm@makaio.com>
This commit is contained in:
parent
8076c8095b
commit
ce4cc465fc
2 changed files with 23 additions and 0 deletions
|
@ -193,6 +193,25 @@ int mdm_receiver_send(struct mdm_receiver_context *ctx,
|
|||
return 0;
|
||||
}
|
||||
|
||||
int mdm_receiver_sleep(struct mdm_receiver_context *ctx)
|
||||
{
|
||||
uart_irq_rx_disable(ctx->uart_dev);
|
||||
#ifdef DEVICE_PM_LOW_POWER_STATE
|
||||
device_set_power_state(ctx->uart_dev, DEVICE_PM_LOW_POWER_STATE, NULL, NULL);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mdm_receiver_wake(struct mdm_receiver_context *ctx)
|
||||
{
|
||||
#ifdef DEVICE_PM_LOW_POWER_STATE
|
||||
device_set_power_state(ctx->uart_dev, DEVICE_PM_ACTIVE_STATE, NULL, NULL);
|
||||
#endif
|
||||
uart_irq_rx_enable(ctx->uart_dev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mdm_receiver_register(struct mdm_receiver_context *ctx,
|
||||
const char *uart_dev_name,
|
||||
u8_t *buf, size_t size)
|
||||
|
|
|
@ -86,6 +86,10 @@ int mdm_receiver_register(struct mdm_receiver_context *ctx,
|
|||
const char *uart_dev_name,
|
||||
u8_t *buf, size_t size);
|
||||
|
||||
int mdm_receiver_sleep(struct mdm_receiver_context *ctx);
|
||||
|
||||
int mdm_receiver_wake(struct mdm_receiver_context *ctx);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue