You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
936 B

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2025 Rockchip Electronics Co., Ltd
*/
#ifndef _CORE_KEYLAD_H_
#define _CORE_KEYLAD_H_
#include <common.h>
#include <dm.h>
enum RK_FW_KEYID {
RK_FW_KEY0 = 0,
RK_FW_KEYMAX
};
struct dm_keylad_ops {
/* transfer firmware key to dst module */
int (*transfer_fwkey)(struct udevice *dev, ulong dst,
enum RK_FW_KEYID fw_keyid, u32 keylen);
};
/**
* keylad_get_device() - Get keylad device
*
* @return dev on success, otherwise NULL
*/
struct udevice *keylad_get_device(void);
/**
* keylad_transfer_fwkey() - Transfer firmware key otp to dst module
*
* @dev: crypto device
* @dst: dst module addr
* @fw_keyid: firmware key id select from enum RK_FW_KEYID
* @keylen: key length of firmware key
* @return 0 on success, otherwise failed
*/
int keylad_transfer_fwkey(struct udevice *dev, ulong dst,
enum RK_FW_KEYID fw_keyid, u32 keylen);
#endif