![Laurent Pinchart](/assets/img/avatar_default.png)
On the D3 and E3 platforms, the LVDS internal PLL supplies the pixel clock to the DU. This works automatically for LVDS outputs as the LVDS encoder is enabled through the bridge API, enabling the internal PLL and clock output. However, when using the DU DPAD output with the LVDS outputs turned off, the LVDS PLL needs to be controlled manually. Add an API to do so, to be called by the DU driver. The drivers/gpu/drm/rcar-du/ directory has to be treated as obj-y unconditionally, as the LVDS driver could be built-in while the DU driver is compiled as a module. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
28 lines
710 B
C
28 lines
710 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* rcar_lvds.h -- R-Car LVDS Encoder
|
|
*
|
|
* Copyright (C) 2013-2018 Renesas Electronics Corporation
|
|
*
|
|
* Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
|
|
*/
|
|
|
|
#ifndef __RCAR_LVDS_H__
|
|
#define __RCAR_LVDS_H__
|
|
|
|
struct drm_bridge;
|
|
|
|
#if IS_ENABLED(CONFIG_DRM_RCAR_LVDS)
|
|
int rcar_lvds_clk_enable(struct drm_bridge *bridge, unsigned long freq);
|
|
void rcar_lvds_clk_disable(struct drm_bridge *bridge);
|
|
#else
|
|
static inline int rcar_lvds_clk_enable(struct drm_bridge *bridge,
|
|
unsigned long freq)
|
|
{
|
|
return -ENOSYS;
|
|
}
|
|
static inline void rcar_lvds_clk_disable(struct drm_bridge *bridge) { }
|
|
#endif /* CONFIG_DRM_RCAR_LVDS */
|
|
|
|
#endif /* __RCAR_LVDS_H__ */
|