162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * ispcsiphy.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * TI OMAP3 ISP - CSI PHY module
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Copyright (C) 2010 Nokia Corporation
862306a36Sopenharmony_ci * Copyright (C) 2009 Texas Instruments, Inc.
962306a36Sopenharmony_ci *
1062306a36Sopenharmony_ci * Contacts: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
1162306a36Sopenharmony_ci *	     Sakari Ailus <sakari.ailus@iki.fi>
1262306a36Sopenharmony_ci */
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#ifndef OMAP3_ISP_CSI_PHY_H
1562306a36Sopenharmony_ci#define OMAP3_ISP_CSI_PHY_H
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#include "omap3isp.h"
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_cistruct isp_csi2_device;
2062306a36Sopenharmony_cistruct regulator;
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_cistruct isp_csiphy {
2362306a36Sopenharmony_ci	struct isp_device *isp;
2462306a36Sopenharmony_ci	struct mutex mutex;	/* serialize csiphy configuration */
2562306a36Sopenharmony_ci	struct isp_csi2_device *csi2;
2662306a36Sopenharmony_ci	struct regulator *vdd;
2762306a36Sopenharmony_ci	/* the entity that acquired the phy */
2862306a36Sopenharmony_ci	struct media_entity *entity;
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	/* mem resources - enums as defined in enum isp_mem_resources */
3162306a36Sopenharmony_ci	unsigned int cfg_regs;
3262306a36Sopenharmony_ci	unsigned int phy_regs;
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci	u8 num_data_lanes;	/* number of CSI2 Data Lanes supported */
3562306a36Sopenharmony_ci};
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciint omap3isp_csiphy_acquire(struct isp_csiphy *phy,
3862306a36Sopenharmony_ci			    struct media_entity *entity);
3962306a36Sopenharmony_civoid omap3isp_csiphy_release(struct isp_csiphy *phy);
4062306a36Sopenharmony_ciint omap3isp_csiphy_init(struct isp_device *isp);
4162306a36Sopenharmony_civoid omap3isp_csiphy_cleanup(struct isp_device *isp);
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci#endif	/* OMAP3_ISP_CSI_PHY_H */
44