xref: /rk3399_rockchip-uboot/drivers/input/key-uclass.c (revision 6e14addfbc2a739744a5de1c76dfc07172824175)
1b398a9a7SJoseph Chen /*
2b398a9a7SJoseph Chen  * (C) Copyright 2017 Rockchip Electronics Co., Ltd
3b398a9a7SJoseph Chen  *
4b398a9a7SJoseph Chen  * SPDX-License-Identifier:     GPL-2.0+
5b398a9a7SJoseph Chen  */
6b398a9a7SJoseph Chen 
7b398a9a7SJoseph Chen #include <dm.h>
8b398a9a7SJoseph Chen #include <key.h>
9b398a9a7SJoseph Chen 
10b398a9a7SJoseph Chen int key_read(struct udevice *dev)
11b398a9a7SJoseph Chen {
12b398a9a7SJoseph Chen 	const struct dm_key_ops *ops = dev_get_driver_ops(dev);
13b398a9a7SJoseph Chen 
14b398a9a7SJoseph Chen 	if (!ops || !ops->read)
15b398a9a7SJoseph Chen 		return -ENOSYS;
16b398a9a7SJoseph Chen 
17b398a9a7SJoseph Chen 	return ops->read(dev);
18b398a9a7SJoseph Chen }
19b398a9a7SJoseph Chen 
20*6e14addfSJoseph Chen int key_type(struct udevice *dev)
21*6e14addfSJoseph Chen {
22*6e14addfSJoseph Chen 	const struct dm_key_ops *ops = dev_get_driver_ops(dev);
23*6e14addfSJoseph Chen 
24*6e14addfSJoseph Chen 	if (!ops || !ops->type)
25*6e14addfSJoseph Chen 		return -ENOSYS;
26*6e14addfSJoseph Chen 
27*6e14addfSJoseph Chen 	return ops->type;
28*6e14addfSJoseph Chen }
29*6e14addfSJoseph Chen 
30*6e14addfSJoseph Chen const char *key_name(struct udevice *dev)
31*6e14addfSJoseph Chen {
32*6e14addfSJoseph Chen 	const struct dm_key_ops *ops = dev_get_driver_ops(dev);
33*6e14addfSJoseph Chen 
34*6e14addfSJoseph Chen 	if (!ops || !ops->name)
35*6e14addfSJoseph Chen 		return NULL;
36*6e14addfSJoseph Chen 
37*6e14addfSJoseph Chen 	return ops->name;
38*6e14addfSJoseph Chen }
39*6e14addfSJoseph Chen 
40b398a9a7SJoseph Chen UCLASS_DRIVER(key) = {
41b398a9a7SJoseph Chen 	.id		= UCLASS_KEY,
42b398a9a7SJoseph Chen 	.name		= "key",
43b398a9a7SJoseph Chen };
44