1 /* SPDX-License-Identifier: MIT */
3 * Copyright (C) 2017 Google, Inc.
6 * Sean Paul <seanpaul@chromium.org>
9 #ifndef _DRM_HDCP_H_INCLUDED_
10 #define _DRM_HDCP_H_INCLUDED_
12 /* Period of hdcp checks (to ensure we're still authenticated) */
13 #define DRM_HDCP_CHECK_PERIOD_MS (128 * 16)
15 /* Shared lengths/masks between HDMI/DVI/DisplayPort */
16 #define DRM_HDCP_AN_LEN 8
17 #define DRM_HDCP_BSTATUS_LEN 2
18 #define DRM_HDCP_KSV_LEN 5
19 #define DRM_HDCP_RI_LEN 2
20 #define DRM_HDCP_V_PRIME_PART_LEN 4
21 #define DRM_HDCP_V_PRIME_NUM_PARTS 5
22 #define DRM_HDCP_NUM_DOWNSTREAM(x) (x & 0x7f)
23 #define DRM_HDCP_MAX_CASCADE_EXCEEDED(x) (x & BIT(3))
24 #define DRM_HDCP_MAX_DEVICE_EXCEEDED(x) (x & BIT(7))
26 /* Slave address for the HDCP registers in the receiver */
27 #define DRM_HDCP_DDC_ADDR 0x3A
29 /* HDCP register offsets for HDMI/DVI devices */
30 #define DRM_HDCP_DDC_BKSV 0x00
31 #define DRM_HDCP_DDC_RI_PRIME 0x08
32 #define DRM_HDCP_DDC_AKSV 0x10
33 #define DRM_HDCP_DDC_AN 0x18
34 #define DRM_HDCP_DDC_V_PRIME(h) (0x20 + h * 4)
35 #define DRM_HDCP_DDC_BCAPS 0x40
36 #define DRM_HDCP_DDC_BCAPS_REPEATER_PRESENT BIT(6)
37 #define DRM_HDCP_DDC_BCAPS_KSV_FIFO_READY BIT(5)
38 #define DRM_HDCP_DDC_BSTATUS 0x41
39 #define DRM_HDCP_DDC_KSV_FIFO 0x43