Merge tag 'lsk-v3.10-android-14.07' into develop-3.10
[firefly-linux-kernel-4.4.55.git] / drivers / media / video / rk_camsys / camsys_marvin.h
1 #ifndef __CAMSYS_MARVIN_H__
2 #define __CAMSYS_MARVIN_H__
3
4 #include "camsys_internal.h"
5
6 #define CAMSYS_MARVIN_IRQNAME                   "MarvinIrq"
7
8
9
10 #define MRV_ISP_BASE                            0x400
11 #define MRV_ISP_RIS                             (MRV_ISP_BASE+0x1c0)
12 #define MRV_ISP_MIS                             (MRV_ISP_BASE+0x1c4)
13 #define MRV_ISP_ICR                             (MRV_ISP_BASE+0x1c8)
14
15 #define MRV_MIPI_BASE                           0x1C00
16 #define MRV_MIPI_MIS                            (MRV_MIPI_BASE+0x10)
17 #define MRV_MIPI_ICR                            (MRV_MIPI_BASE+0x14)
18
19 #define MRV_MI_BASE                             (0x1400)
20
21 #define MRV_MI_MP_Y_OFFS_CNT_START                   (MRV_MI_BASE+0x14)
22 #define MRV_MI_INIT                   (MRV_MI_BASE+0x4)
23 #define MRV_MI_MP_Y_BASE_AD                   (MRV_MI_BASE+0x8)
24 #define MRV_MI_Y_BASE_AD_SHD                   (MRV_MI_BASE+0x78)
25 #define MRV_MI_Y_OFFS_CNT_SHD                   (MRV_MI_BASE+0x80)
26 #define MRV_MI_IMIS                              (MRV_MI_BASE+0xf8)
27 #define MRV_MI_RIS                              (MRV_MI_BASE+0xfc)
28 #define MRV_MI_MIS                              (MRV_MI_BASE+0x100)
29 #define MRV_MI_ICR                              (MRV_MI_BASE+0x104)
30
31 #define MRV_FLASH_CONFIG                        (0x664)
32
33 typedef enum IO_USE_TYPE_e{
34     USE_AS_GPIO,
35     USE_AS_ISP_INTERNAL,
36 }IO_USE_TYPE_t;
37
38 typedef struct camsys_mrv_clk_s {
39     struct clk      *pd_isp;
40     struct clk      *hclk_isp;
41     struct clk      *aclk_isp;
42     struct clk      *isp;
43     struct clk      *isp_jpe;
44     struct clk      *pclkin_isp;
45     struct clk      *clk_mipi_24m;
46     bool             in_on;
47
48     struct clk      *cif_clk_out;
49     struct clk      *cif_clk_pll;
50     unsigned int     out_on;
51
52     struct mutex     lock;
53 } camsys_mrv_clk_t;
54
55 int camsys_mrv_probe_cb(struct platform_device *pdev, camsys_dev_t *camsys_dev);
56
57 #endif
58
59