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;
|
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,
|
int mdm_receiver_register(struct mdm_receiver_context *ctx,
|
||||||
const char *uart_dev_name,
|
const char *uart_dev_name,
|
||||||
u8_t *buf, size_t size)
|
u8_t *buf, size_t size)
|
||||||
|
|
|
@ -86,6 +86,10 @@ int mdm_receiver_register(struct mdm_receiver_context *ctx,
|
||||||
const char *uart_dev_name,
|
const char *uart_dev_name,
|
||||||
u8_t *buf, size_t size);
|
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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue