/**
* Copyright (c) 2016-2019, NVIDIA Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#ifndef __IMX274_H__
#define __IMX274_H__
#include
#define IMX274_SVR_ADDR 0x300E
#define IMX274_SHR_ADDR_LSB 0x300C
#define IMX274_SHR_ADDR_MSB 0x300D
#define IMX274_SHR_DOL1_ADDR_LSB 0x302E
#define IMX274_SHR_DOL1_ADDR_MSB 0x302F
#define IMX274_SHR_DOL2_ADDR_LSB 0x3030
#define IMX274_SHR_DOL2_ADDR_MSB 0x3031
#define IMX274_RHS1_ADDR_LSB 0x3032
#define IMX274_RHS1_ADDR_MSB 0x3033
#define IMX274_VMAX_ADDR_LSB 0x30F8
#define IMX274_VMAX_ADDR_MID 0x30F9
#define IMX274_VMAX_ADDR_MSB 0x30FA
#define IMX274_ANALOG_GAIN_ADDR_LSB 0x300A
#define IMX274_ANALOG_GAIN_ADDR_MSB 0x300B
#define IMX274_DIGITAL_GAIN_ADDR 0x3012
#define IMX274_GROUP_HOLD_ADDR 0x302D
struct imx274_power_rail {
struct regulator *dvdd;
struct regulator *avdd;
struct regulator *iovdd;
struct regulator *ext_reg1;
struct regulator *ext_reg2;
struct clk *mclk;
unsigned int pwdn_gpio;
unsigned int cam1_gpio;
unsigned int reset_gpio;
unsigned int af_gpio;
};
struct imx274_platform_data {
const char *mclk_name; /* NULL for default default_mclk */
unsigned int cam1_gpio;
unsigned int reset_gpio;
unsigned int af_gpio;
bool ext_reg;
int (*power_on)(struct imx274_power_rail *pw);
int (*power_off)(struct imx274_power_rail *pw);
};
#endif /* __IMX274_H__ */