#include <dt-bindings/phy/phy.h>
#include <linux/bitfield.h>
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/phy/phy.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include "phy-mtk-io.h"
#include "phy-mtk-mipi-csi-0-5-rx-reg.h"
#define CSIXB_OFFSET …
struct mtk_mipi_cdphy_port { … };
enum PHY_TYPE { … };
static void mtk_phy_csi_cdphy_ana_eq_tune(void __iomem *base)
{ … }
static void mtk_phy_csi_dphy_ana_eq_tune(void __iomem *base)
{ … }
static int mtk_mipi_phy_power_on(struct phy *phy)
{ … }
static int mtk_mipi_phy_power_off(struct phy *phy)
{ … }
static struct phy *mtk_mipi_cdphy_xlate(struct device *dev,
const struct of_phandle_args *args)
{ … }
static const struct phy_ops mtk_cdphy_ops = …;
static int mtk_mipi_cdphy_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id mtk_mipi_cdphy_of_match[] = …;
MODULE_DEVICE_TABLE(of, mtk_mipi_cdphy_of_match);
static struct platform_driver mipi_cdphy_pdrv = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;