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