dw_mipi_dsi.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (C) STMicroelectronics SA 2017
  3. *
  4. * Authors: Philippe Cornu <philippe.cornu@st.com>
  5. * Yannick Fertre <yannick.fertre@st.com>
  6. *
  7. * License terms: GNU General Public License (GPL), version 2
  8. */
  9. #ifndef __DW_MIPI_DSI__
  10. #define __DW_MIPI_DSI__
  11. struct dw_mipi_dsi_phy_ops {
  12. int (*init)(void *priv_data);
  13. int (*get_lane_mbps)(void *priv_data, struct drm_display_mode *mode,
  14. unsigned long mode_flags, u32 lanes, u32 format,
  15. unsigned int *lane_mbps);
  16. };
  17. struct dw_mipi_dsi_plat_data {
  18. void __iomem *base;
  19. unsigned int max_data_lanes;
  20. enum drm_mode_status (*mode_valid)(void *priv_data,
  21. const struct drm_display_mode *mode);
  22. const struct dw_mipi_dsi_phy_ops *phy_ops;
  23. void *priv_data;
  24. };
  25. int dw_mipi_dsi_probe(struct platform_device *pdev,
  26. const struct dw_mipi_dsi_plat_data *plat_data);
  27. void dw_mipi_dsi_remove(struct platform_device *pdev);
  28. int dw_mipi_dsi_bind(struct platform_device *pdev, struct drm_encoder *encoder,
  29. const struct dw_mipi_dsi_plat_data *plat_data);
  30. void dw_mipi_dsi_unbind(struct device *dev);
  31. #endif /* __DW_MIPI_DSI__ */