1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (C) 2018 Texas Instruments Incorporated - https://www.ti.com/
4 * Author: Tomi Valkeinen <tomi.valkeinen@ti.com>
7 #ifndef __TIDSS_DRV_H__
8 #define __TIDSS_DRV_H__
10 #include <linux/spinlock.h>
12 #define TIDSS_MAX_PORTS 4
13 #define TIDSS_MAX_PLANES 4
15 typedef u32 dispc_irq_t
;
18 struct drm_device ddev
; /* DRM device for DSS */
19 struct device
*dev
; /* Underlying DSS device */
21 const struct dispc_features
*feat
;
22 struct dispc_device
*dispc
;
24 unsigned int num_crtcs
;
25 struct drm_crtc
*crtcs
[TIDSS_MAX_PORTS
];
27 unsigned int num_planes
;
28 struct drm_plane
*planes
[TIDSS_MAX_PLANES
];
30 spinlock_t wait_lock
; /* protects the irq masks */
31 dispc_irq_t irq_mask
; /* enabled irqs in addition to wait_list */
34 #define to_tidss(__dev) container_of(__dev, struct tidss_device, ddev)
36 int tidss_runtime_get(struct tidss_device
*tidss
);
37 void tidss_runtime_put(struct tidss_device
*tidss
);