Add DT support, by: 1. Creating a panel bridge from DT, and attaching it to the encoder, 2. Replacing the custom connector with a bridge connector, 3. Obtaining clock configuration based on the compatible value. Note that for now the driver uses a fixed clock configuration selecting the bus clock, as the current code to select other clock inputs needs changes to support any other SoCs than SH7724. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/6185ab76aa300fa402e4f6610b2109665f2d8a1c.1694767209.git.geert+renesas@glider.be
52 lines
1.1 KiB
C
52 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* shmob_drm.h -- SH Mobile DRM driver
|
|
*
|
|
* Copyright (C) 2012 Renesas Electronics Corporation
|
|
*
|
|
* Laurent Pinchart (laurent.pinchart@ideasonboard.com)
|
|
*/
|
|
|
|
#ifndef __SHMOB_DRM_DRV_H__
|
|
#define __SHMOB_DRM_DRV_H__
|
|
|
|
#include <linux/kernel.h>
|
|
#include <linux/platform_data/shmob_drm.h>
|
|
#include <linux/spinlock.h>
|
|
|
|
#include "shmob_drm_crtc.h"
|
|
|
|
struct clk;
|
|
struct device;
|
|
struct drm_device;
|
|
|
|
struct shmob_drm_config {
|
|
enum shmob_drm_clk_source clk_source;
|
|
unsigned int clk_div;
|
|
};
|
|
|
|
struct shmob_drm_device {
|
|
struct device *dev;
|
|
const struct shmob_drm_platform_data *pdata;
|
|
struct shmob_drm_config config;
|
|
|
|
void __iomem *mmio;
|
|
struct clk *clock;
|
|
u32 lddckr;
|
|
|
|
unsigned int irq;
|
|
spinlock_t irq_lock; /* Protects hardware LDINTR register */
|
|
|
|
struct drm_device ddev;
|
|
|
|
struct shmob_drm_crtc crtc;
|
|
struct drm_encoder encoder;
|
|
struct drm_connector *connector;
|
|
};
|
|
|
|
static inline struct shmob_drm_device *to_shmob_device(struct drm_device *dev)
|
|
{
|
|
return container_of(dev, struct shmob_drm_device, ddev);
|
|
}
|
|
|
|
#endif /* __SHMOB_DRM_DRV_H__ */
|