进入深度睡眠,device的一些处理工作(DEMO)

文章目录


前言

一些设备在进入深度睡眠时,需要做一些处理,例如下一些电,减少功耗等处理。


一、代码

需要先打开CONFIG_PM的配置,一般代码如下(设备初始化的内容就没做,需要初始化的也可以在对应回调里添加即可)

#ifdef CONFIG_PM
/*
*	下电
*/
static int pm_suspend(struct device *dev)
{
	struct test *test = dev_get_drvdata(dev);

	printk("%s \n", __func__);

	gpio_direction_output(test->gpio, 0);

	return 0;
}

/*
*	上电
*/
static int pm_resume(struct device *dev)
{	
	struct test *test = dev_get_drvdata(dev);

	printk("%s \n", __func__);

	gpio_direction_output(test->gpio, 1);

	return 0;
}

static const struct dev_pm_ops pm_ops = {
	SET_SYSTEM_SLEEP_PM_OPS(pm_suspend, pm_resume)
};
#endif

static struct kk_test_driver = {
	.probe	= kk_test_probe,
	.id_table	= kk_test_id,
	.driver		= {
		.name		= "kk_test",
		.of_match_table = of_match_ptr(kk_test_of_match),
#ifdef CONFIG_PM
		//这部分内容就是深度睡眠与唤醒会执行的回调,可见需要先打开CONFIG_PM的配置
		.pm = &pm_ops,
#endif
	},
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值