blob: 13c8a21dbb17fe39c8bf31b67db013fdbc92c20e [file] [log] [blame]
/*****************************************************************************
* Copyright 2006 - 2009 Broadcom Corporation. All rights reserved.
*
* Unless you and Broadcom execute a separate written software license
* agreement governing use of this software, this software is licensed to you
* under the terms of the GNU General Public License version 2, available at
* http://www.broadcom.com/licenses/GPLv2.php (the "GPL").
*
* Notwithstanding the above, under no circumstances may you combine this
* software in any way with any other Broadcom software provided under a
* license other than the GPL, without Broadcom's express prior written
* consent.
*****************************************************************************/
#ifndef ARCH_ARM_PLAT_KONA_UNICAM_H
#define ARCH_ARM_PLAT_KONA_UNICAM_H
#include <linux/i2c.h>
enum unicam_interface_type {
UNICAM_INTERFACE_CSI2_PHY1,
};
/*
* single or dual lane sensor
*/
enum csi2_sensor_lanes {
CSI2_SINGLE_LANE_SENSOR,
CSI2_DUAL_LANE_SENSOR,
};
/*
* virtual port on a phy
*/
enum unicam_afe_port {
UNICAM_PORT_AFE_0,
UNICAM_PORT_AFE_1,
};
/*
* TODO: find out do we ever need hs_term_time in sensor?
* for now leave it
*/
struct unicam_csi2_platform_data {
enum csi2_sensor_lanes lanes;
enum unicam_afe_port port;
};
struct unicam_subdev_i2c_board_info {
struct i2c_board_info board_info;
int i2c_adapter_id;
};
struct unicam_v4l2_subdevs_groups {
struct unicam_subdev_i2c_board_info *i2c_info;
enum unicam_interface_type interface;
union {
struct unicam_csi2_platform_data csi2;
} bus;
};
struct unicam_platform_data {
struct unicam_v4l2_subdevs_groups *subdevs;
unsigned int num_subdevs;
};
#endif