Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * Copyright (c) 2020 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <sys/printk.h>
#include <zephyr/types.h>
#include <pm/device_runtime.h>
#include "dummy_driver.h"

static int dummy_wait(const struct device *dev)
{
	return pm_device_wait(dev, K_FOREVER);
}

static int dummy_open(const struct device *dev)
{
	return pm_device_get_async(dev);
}

static int dummy_open_sync(const struct device *dev)
{
	return pm_device_get(dev);
}

static int dummy_close(const struct device *dev)
{
	return pm_device_put_async(dev);
}

static int dummy_close_sync(const struct device *dev)
{
	return pm_device_put(dev);
}

static int dummy_device_pm_ctrl(const struct device *dev,
				enum pm_device_action action)
{
	return 0;
}

static const struct dummy_driver_api funcs = {
	.open = dummy_open,
	.open_sync = dummy_open_sync,
	.close = dummy_close,
	.close_sync = dummy_close_sync,
	.wait = dummy_wait,
};

int dummy_init(const struct device *dev)
{
	pm_device_enable(dev);
	return 0;
}

DEVICE_DEFINE(dummy_driver, DUMMY_DRIVER_NAME, &dummy_init,
		    dummy_device_pm_ctrl, NULL, NULL, APPLICATION,
		    CONFIG_KERNEL_INIT_PRIORITY_DEFAULT, &funcs);