59 lines · c
1// SPDX-License-Identifier: GPL-2.0+2/*3 * Copyright (c) 2016 Allwinnertech Co., Ltd.4 * Copyright (C) 2017-2018 Bootlin5 *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 16#define SUN6I_DSI_TCON_DIV 417 18struct sun6i_dsi_variant {19 bool has_mod_clk;20 bool set_mod_clk;21};22 23struct sun6i_dsi {24 struct drm_connector connector;25 struct drm_encoder encoder;26 struct mipi_dsi_host host;27 28 struct clk *bus_clk;29 struct clk *mod_clk;30 struct regmap *regs;31 struct regulator *regulator;32 struct reset_control *reset;33 struct phy *dphy;34 35 struct device *dev;36 struct mipi_dsi_device *device;37 struct drm_device *drm;38 struct drm_panel *panel;39 40 const struct sun6i_dsi_variant *variant;41};42 43static inline struct sun6i_dsi *host_to_sun6i_dsi(struct mipi_dsi_host *host)44{45 return container_of(host, struct sun6i_dsi, host);46};47 48static inline struct sun6i_dsi *connector_to_sun6i_dsi(struct drm_connector *connector)49{50 return container_of(connector, struct sun6i_dsi, connector);51};52 53static inline struct sun6i_dsi *encoder_to_sun6i_dsi(const struct drm_encoder *encoder)54{55 return container_of(encoder, struct sun6i_dsi, encoder);56};57 58#endif /* _SUN6I_MIPI_DSI_H_ */59