/** * pm_set_wakeup_source() - PM call to specify the wakeup source while suspended * @target Node id of the targeted PU or subsystem * @wkup_node Node id of the wakeup peripheral * @enable Enable or disable the specified peripheral as wake source * * @return Returns status, either success or error+reason */ enum pm_ret_status pm_set_wakeup_source(const enum pm_node_id target, const enum pm_node_id wkup_node, const uint8_t enable) { uint32_t payload[PAYLOAD_ARG_CNT]; PM_PACK_PAYLOAD4(payload, PM_SET_WAKEUP_SOURCE, target, wkup_node, enable); return pm_ipi_send(primary_proc, payload); }
/** * pm_mmio_write() - Perform write to protected mmio * @address Address to write to * @mask Mask to apply * @value Value to write * * This function provides access to PM-related control registers * that may not be directly accessible by a particular PU. * * @return Returns status, either success or error+reason */ enum pm_ret_status pm_mmio_write(uintptr_t address, unsigned int mask, unsigned int value) { uint32_t payload[PAYLOAD_ARG_CNT]; /* Send request to the PMU */ PM_PACK_PAYLOAD4(payload, PM_MMIO_WRITE, address, mask, value); return pm_ipi_send(primary_proc, payload); }