Home | History | Annotate | Download | only in dp
      1 /*
      2  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
      3  *
      4  * SPDX-License-Identifier: BSD-3-Clause
      5  */
      6 
      7 #ifndef __SOC_ROCKCHIP_RK3399_DP_H__
      8 #define __SOC_ROCKCHIP_RK3399_DP_H__
      9 #include <plat_private.h>
     10 
     11 enum {
     12 	CDN_DP_HDCP_1X_KSV_LEN = 5,
     13 	CDN_DP_HDCP_KSV_LEN = 8,
     14 	CDN_DP_HDCP_RESERVED_LEN = 10,
     15 	CDN_DP_HDCP_UID_LEN = 16,
     16 	CDN_DP_HDCP_SHA_LEN = 20,
     17 	CDN_DP_HDCP_DPK_LEN = 280,
     18 	CDN_DP_HDCP_1X_KEYS_LEN	= 285,
     19 	CDN_DP_HDCP_KEY_LEN = 326,
     20 };
     21 
     22 struct cdn_dp_hdcp_key_1x {
     23 	uint8_t ksv[CDN_DP_HDCP_KSV_LEN];
     24 	uint8_t device_key[CDN_DP_HDCP_DPK_LEN];
     25 	uint8_t sha1[CDN_DP_HDCP_SHA_LEN];
     26 	uint8_t uid[CDN_DP_HDCP_UID_LEN];
     27 	uint16_t seed;
     28 	uint8_t reserved[CDN_DP_HDCP_RESERVED_LEN];
     29 };
     30 
     31 #define HDCP_KEY_DATA_START_TRANSFER	0
     32 #define HDCP_KEY_DATA_START_DECRYPT	1
     33 #define HDCP_KEY_1X_STORE_DATA_ALIGN_SIZE	(6 * 64) / 8
     34 
     35 /* Checks the cdn_dp_hdcp_key_1x must be aligned on 6 x 64-bit word boundary */
     36 CASSERT(sizeof(struct cdn_dp_hdcp_key_1x) % HDCP_KEY_1X_STORE_DATA_ALIGN_SIZE, \
     37 	assert_hdcp_key_1x_store_data_align_size_mismatch);
     38 
     39 uint64_t dp_hdcp_ctrl(uint64_t type);
     40 
     41 uint64_t dp_hdcp_store_key(uint64_t x1,
     42 			   uint64_t x2,
     43 			   uint64_t x3,
     44 			   uint64_t x4,
     45 			   uint64_t x5,
     46 			   uint64_t x6);
     47 #endif
     48