dm: input: add driver model rc uclass
Change-Id: I1e9b067d49e81bd09c2d1e6c9612f0831480ce73 Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
This commit is contained in:
parent
91441457b3
commit
0948688932
|
|
@ -13,6 +13,13 @@ config DM_KEY
|
||||||
help
|
help
|
||||||
This adds a simple uclass for key.
|
This adds a simple uclass for key.
|
||||||
|
|
||||||
|
config DM_RC
|
||||||
|
bool "Enable driver model Remote Controller support"
|
||||||
|
depends on DM
|
||||||
|
help
|
||||||
|
This adds a uclass for Remote Controllers. This is needed
|
||||||
|
in order to support standalone IR receivers.
|
||||||
|
|
||||||
config CROS_EC_KEYB
|
config CROS_EC_KEYB
|
||||||
bool "Enable Chrome OS EC keyboard support"
|
bool "Enable Chrome OS EC keyboard support"
|
||||||
help
|
help
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
obj-$(CONFIG_DM_KEYBOARD) += keyboard-uclass.o
|
obj-$(CONFIG_DM_KEYBOARD) += keyboard-uclass.o
|
||||||
obj-$(CONFIG_DM_KEY) += key-uclass.o
|
obj-$(CONFIG_DM_KEY) += key-uclass.o
|
||||||
|
obj-$(CONFIG_DM_RC) += rc-uclass.o
|
||||||
|
|
||||||
obj-$(CONFIG_I8042_KEYB) += i8042.o
|
obj-$(CONFIG_I8042_KEYB) += i8042.o
|
||||||
obj-$(CONFIG_TEGRA_KEYBOARD) += tegra-kbc.o
|
obj-$(CONFIG_TEGRA_KEYBOARD) += tegra-kbc.o
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2017 Rockchip Electronics Co., Ltd
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <dm.h>
|
||||||
|
#include <rc.h>
|
||||||
|
|
||||||
|
int rc_get_keycode(struct udevice *dev)
|
||||||
|
{
|
||||||
|
const struct dm_rc_ops *ops = dev_get_driver_ops(dev);
|
||||||
|
|
||||||
|
if (!ops || !ops->get_keycode)
|
||||||
|
return -ENOSYS;
|
||||||
|
|
||||||
|
return ops->get_keycode(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
int rc_get_repeat(struct udevice *dev)
|
||||||
|
{
|
||||||
|
const struct dm_rc_ops *ops = dev_get_driver_ops(dev);
|
||||||
|
|
||||||
|
if (!ops || !ops->get_repeat)
|
||||||
|
return -ENOSYS;
|
||||||
|
|
||||||
|
return ops->get_repeat(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
UCLASS_DRIVER(key) = {
|
||||||
|
.id = UCLASS_RC,
|
||||||
|
.name = "rc",
|
||||||
|
};
|
||||||
|
|
@ -93,6 +93,7 @@ enum uclass_id {
|
||||||
UCLASS_WDT, /* Watchdot Timer driver */
|
UCLASS_WDT, /* Watchdot Timer driver */
|
||||||
UCLASS_FG,
|
UCLASS_FG,
|
||||||
UCLASS_KEY,
|
UCLASS_KEY,
|
||||||
|
UCLASS_RC, /* Remote Controller */
|
||||||
|
|
||||||
UCLASS_COUNT,
|
UCLASS_COUNT,
|
||||||
UCLASS_INVALID = -1,
|
UCLASS_INVALID = -1,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2017 Rockchip Electronics Co., Ltd
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _RC_H_
|
||||||
|
#define _RC_H_
|
||||||
|
|
||||||
|
struct dm_rc_ops {
|
||||||
|
int (*get_keycode)(struct udevice *dev);
|
||||||
|
int (*get_repeat)(struct udevice *dev);
|
||||||
|
};
|
||||||
|
|
||||||
|
int rc_get_keycode(struct udevice *dev);
|
||||||
|
int rc_get_repeat(struct udevice *dev);
|
||||||
|
|
||||||
|
#endif
|
||||||
Loading…
Reference in New Issue