1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright (c) 2016 Allwinnertech Co., Ltd. 4 * Copyright (C) 2017-2018 Bootlin 5 * 6 * Maxime Ripard <maxime.ripard@bootlin.com> 7 */ 8 9#ifndef _SUN6I_MIPI_DSI_H_ 10#define _SUN6I_MIPI_DSI_H_ 11 12#include <drm/drm_connector.h> 13#include <drm/drm_encoder.h> 14#include <drm/drm_mipi_dsi.h> 15 16struct sun6i_dsi { 17 struct drm_connector connector; 18 struct drm_encoder encoder; 19 struct mipi_dsi_host host; 20 21 struct clk *bus_clk; 22 struct clk *mod_clk; 23 struct regmap *regs; 24 struct reset_control *reset; 25 struct phy *dphy; 26 27 struct device *dev; 28 struct sun4i_drv *drv; 29 struct mipi_dsi_device *device; 30 struct drm_panel *panel; 31}; 32 33static inline struct sun6i_dsi *host_to_sun6i_dsi(struct mipi_dsi_host *host) 34{ 35 return container_of(host, struct sun6i_dsi, host); 36}; 37 38static inline struct sun6i_dsi *connector_to_sun6i_dsi(struct drm_connector *connector) 39{ 40 return container_of(connector, struct sun6i_dsi, connector); 41}; 42 43static inline struct sun6i_dsi *encoder_to_sun6i_dsi(const struct drm_encoder *encoder) 44{ 45 return container_of(encoder, struct sun6i_dsi, encoder); 46}; 47 48#endif /* _SUN6I_MIPI_DSI_H_ */ 49