ARM: rockchip: rk3228: add grf definition
[firefly-linux-kernel-4.4.55.git] / include / media / camsys_head.h
index 94d624bcd1824002a76cc2111b71c55ec41d90b8..3eba31f9c430e815ce3574f4369bd71d13f94e1b 100755 (executable)
 *        2) add support io domain and mclk driver strength configuration;
 *v0.7.0:
                 1) add flash_trigger_out control
+*v0.8.0:
+                1) support isp iommu
+*v0.9.0:
+         1) add dev_name in struct camsys_devio_name_s;
+*v0.a.0:
+         1) support external flash IC
+*v0.b.0:
+                1) add CamSys_SensorBit0_CifBit4 in enum camsys_cifio_e. 
 */
-#define CAMSYS_HEAD_VERSION           KERNEL_VERSION(0,7,0)
+#define CAMSYS_HEAD_VERSION           KERNEL_VERSION(0,0xb,0)
 
 #define CAMSYS_MARVIN_DEVNAME         "camsys_marvin"           
 #define CAMSYS_CIF0_DEVNAME           "camsys_cif0"
@@ -41,9 +49,9 @@
 #define CAMSYS_DEVID_EXTERNAL         0xFF000000
 #define CAMSYS_DEVID_EXTERNAL_NUM     8
 
-#define CAMSYS_DEVCFG_FLASHLIGHT          0x00000001
-#define CAMSYS_DEVCFG_PREFLASHLIGHT       0x00000002
-#define CAMSYS_DEVCFG_SHUTTER             0x00000004
+#define CAMSYS_DEVCFG_FLASHLIGHT      0x00000001
+#define CAMSYS_DEVCFG_PREFLASHLIGHT   0x00000002
+#define CAMSYS_DEVCFG_SHUTTER         0x00000004
 
 typedef struct camsys_irqsta_s {
     unsigned int ris;                 //Raw interrupt status
@@ -116,7 +124,8 @@ typedef enum camsys_sysctrl_ops_e {
     CamSys_Phy_End_Tag,
     CamSys_Flash_Trigger_Start_Tag, 
     CamSys_Flash_Trigger,
-    CamSys_Flash_Trigger_End_Tag
+    CamSys_Flash_Trigger_End_Tag,
+    CamSys_IOMMU
     
 } camsys_sysctrl_ops_t;
 
@@ -131,6 +140,13 @@ typedef struct camsys_gpio_info_s {
     unsigned int      active;
 } camsys_gpio_info_t;
 
+typedef struct camsys_iommu_s{
+    int client_fd;
+    int map_fd;
+    unsigned long linear_addr;
+    unsigned long len;
+}camsys_iommu_t;
+
 typedef struct camsys_sysctrl_s {
     unsigned int              dev_mask;
     camsys_sysctrl_ops_t      ops;
@@ -140,7 +156,9 @@ typedef struct camsys_sysctrl_s {
 } camsys_sysctrl_t;
 
 typedef struct camsys_flash_info_s {
-    camsys_gpio_info_t        fl;
+    unsigned char     fl_drv_name[CAMSYS_NAME_LEN];
+    camsys_gpio_info_t        fl; //fl_trig
+    camsys_gpio_info_t        fl_en;
 } camsys_flash_info_t;
 
 typedef struct camsys_mipiphy_s {
@@ -168,6 +186,7 @@ typedef enum camsys_fmt_e {
 typedef enum camsys_cifio_e {
     CamSys_SensorBit0_CifBit0 = 0x00,
     CamSys_SensorBit0_CifBit2 = 0x01,
+    CamSys_SensorBit0_CifBit4 = 0x02,
 } camsys_cifio_t;
 
 typedef struct camsys_cifphy_s {
@@ -199,6 +218,7 @@ typedef struct camsys_extdev_clk_s {
 } camsys_extdev_clk_t;
 
 typedef struct camsys_devio_name_s {
+    unsigned char               dev_name[CAMSYS_NAME_LEN];
     unsigned int                dev_id;
     
     camsys_regulator_info_t     avdd;         // sensor avdd power regulator name
@@ -248,4 +268,5 @@ typedef struct camsys_version_s {
 #define CAMSYS_IRQDISCONNECT     _IOW(CAMSYS_IOC_MAGIC,   10, camsys_irqcnnt_t)
 
 #define CAMSYS_QUREYMEM          _IOR(CAMSYS_IOC_MAGIC,  11, camsys_querymem_t)
+#define CAMSYS_QUREYIOMMU        _IOW(CAMSYS_IOC_MAGIC,  12, int)
 #endif