Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
mipi-csis.c File Reference
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/memory.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/regulator/consumer.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/videodev2.h>
#include <media/v4l2-subdev.h>
#include <linux/platform_data/mipi-csis.h>
#include "mipi-csis.h"

Go to the source code of this file.

Data Structures

struct  s5pcsis_event
 
struct  csis_pktbuf
 
struct  csis_state
 

Macros

#define S5PCSIS_CTRL   0x00
 
#define S5PCSIS_CTRL_DPDN_DEFAULT   (0 << 31)
 
#define S5PCSIS_CTRL_DPDN_SWAP   (1 << 31)
 
#define S5PCSIS_CTRL_ALIGN_32BIT   (1 << 20)
 
#define S5PCSIS_CTRL_UPDATE_SHADOW   (1 << 16)
 
#define S5PCSIS_CTRL_WCLK_EXTCLK   (1 << 8)
 
#define S5PCSIS_CTRL_RESET   (1 << 4)
 
#define S5PCSIS_CTRL_ENABLE   (1 << 0)
 
#define S5PCSIS_DPHYCTRL   0x04
 
#define S5PCSIS_DPHYCTRL_HSS_MASK   (0x1f << 27)
 
#define S5PCSIS_DPHYCTRL_ENABLE   (0x1f << 0)
 
#define S5PCSIS_CONFIG   0x08
 
#define S5PCSIS_CFG_FMT_YCBCR422_8BIT   (0x1e << 2)
 
#define S5PCSIS_CFG_FMT_RAW8   (0x2a << 2)
 
#define S5PCSIS_CFG_FMT_RAW10   (0x2b << 2)
 
#define S5PCSIS_CFG_FMT_RAW12   (0x2c << 2)
 
#define S5PCSIS_CFG_FMT_USER(x)   ((0x30 + x - 1) << 2)
 
#define S5PCSIS_CFG_FMT_MASK   (0x3f << 2)
 
#define S5PCSIS_CFG_NR_LANE_MASK   3
 
#define S5PCSIS_INTMSK   0x10
 
#define S5PCSIS_INTMSK_EN_ALL   0xf000103f
 
#define S5PCSIS_INTMSK_EVEN_BEFORE   (1 << 31)
 
#define S5PCSIS_INTMSK_EVEN_AFTER   (1 << 30)
 
#define S5PCSIS_INTMSK_ODD_BEFORE   (1 << 29)
 
#define S5PCSIS_INTMSK_ODD_AFTER   (1 << 28)
 
#define S5PCSIS_INTMSK_ERR_SOT_HS   (1 << 12)
 
#define S5PCSIS_INTMSK_ERR_LOST_FS   (1 << 5)
 
#define S5PCSIS_INTMSK_ERR_LOST_FE   (1 << 4)
 
#define S5PCSIS_INTMSK_ERR_OVER   (1 << 3)
 
#define S5PCSIS_INTMSK_ERR_ECC   (1 << 2)
 
#define S5PCSIS_INTMSK_ERR_CRC   (1 << 1)
 
#define S5PCSIS_INTMSK_ERR_UNKNOWN   (1 << 0)
 
#define S5PCSIS_INTSRC   0x14
 
#define S5PCSIS_INTSRC_EVEN_BEFORE   (1 << 31)
 
#define S5PCSIS_INTSRC_EVEN_AFTER   (1 << 30)
 
#define S5PCSIS_INTSRC_EVEN   (0x3 << 30)
 
#define S5PCSIS_INTSRC_ODD_BEFORE   (1 << 29)
 
#define S5PCSIS_INTSRC_ODD_AFTER   (1 << 28)
 
#define S5PCSIS_INTSRC_ODD   (0x3 << 28)
 
#define S5PCSIS_INTSRC_NON_IMAGE_DATA   (0xff << 28)
 
#define S5PCSIS_INTSRC_ERR_SOT_HS   (0xf << 12)
 
#define S5PCSIS_INTSRC_ERR_LOST_FS   (1 << 5)
 
#define S5PCSIS_INTSRC_ERR_LOST_FE   (1 << 4)
 
#define S5PCSIS_INTSRC_ERR_OVER   (1 << 3)
 
#define S5PCSIS_INTSRC_ERR_ECC   (1 << 2)
 
#define S5PCSIS_INTSRC_ERR_CRC   (1 << 1)
 
#define S5PCSIS_INTSRC_ERR_UNKNOWN   (1 << 0)
 
#define S5PCSIS_INTSRC_ERRORS   0xf03f
 
#define S5PCSIS_RESOL   0x2c
 
#define CSIS_MAX_PIX_WIDTH   0xffff
 
#define CSIS_MAX_PIX_HEIGHT   0xffff
 
#define S5PCSIS_PKTDATA_ODD   0x2000
 
#define S5PCSIS_PKTDATA_EVEN   0x3000
 
#define S5PCSIS_PKTDATA_SIZE   SZ_4K
 
#define NUM_CSIS_CLOCKS   ARRAY_SIZE(csi_clock_name)
 
#define CSIS_NUM_SUPPLIES   ARRAY_SIZE(csis_supply_name)
 
#define S5PCSIS_NUM_EVENTS   ARRAY_SIZE(s5pcsis_events)
 
#define s5pcsis_write(__csis, __r, __v)   writel(__v, __csis->regs + __r)
 
#define s5pcsis_read(__csis, __r)   readl(__csis->regs + __r)
 

Enumerations

enum  { CSIS_CLK_MUX, CSIS_CLK_GATE }
 
enum  { ST_POWERED = 1, ST_STREAMING = 2, ST_SUSPENDED = 4 }
 

Functions

 module_param (debug, int, 0644)
 
 MODULE_PARM_DESC (debug,"Debug level (0-2)")
 

Macro Definition Documentation

#define CSIS_MAX_PIX_HEIGHT   0xffff

Definition at line 99 of file mipi-csis.c.

#define CSIS_MAX_PIX_WIDTH   0xffff

Definition at line 98 of file mipi-csis.c.

#define CSIS_NUM_SUPPLIES   ARRAY_SIZE(csis_supply_name)

Definition at line 121 of file mipi-csis.c.

#define NUM_CSIS_CLOCKS   ARRAY_SIZE(csi_clock_name)

Definition at line 115 of file mipi-csis.c.

#define S5PCSIS_CFG_FMT_MASK   (0x3f << 2)

Definition at line 60 of file mipi-csis.c.

#define S5PCSIS_CFG_FMT_RAW10   (0x2b << 2)

Definition at line 56 of file mipi-csis.c.

#define S5PCSIS_CFG_FMT_RAW12   (0x2c << 2)

Definition at line 57 of file mipi-csis.c.

#define S5PCSIS_CFG_FMT_RAW8   (0x2a << 2)

Definition at line 55 of file mipi-csis.c.

#define S5PCSIS_CFG_FMT_USER (   x)    ((0x30 + x - 1) << 2)

Definition at line 59 of file mipi-csis.c.

#define S5PCSIS_CFG_FMT_YCBCR422_8BIT   (0x1e << 2)

Definition at line 54 of file mipi-csis.c.

#define S5PCSIS_CFG_NR_LANE_MASK   3

Definition at line 61 of file mipi-csis.c.

#define S5PCSIS_CONFIG   0x08

Definition at line 53 of file mipi-csis.c.

#define S5PCSIS_CTRL   0x00

Definition at line 39 of file mipi-csis.c.

#define S5PCSIS_CTRL_ALIGN_32BIT   (1 << 20)

Definition at line 42 of file mipi-csis.c.

#define S5PCSIS_CTRL_DPDN_DEFAULT   (0 << 31)

Definition at line 40 of file mipi-csis.c.

#define S5PCSIS_CTRL_DPDN_SWAP   (1 << 31)

Definition at line 41 of file mipi-csis.c.

#define S5PCSIS_CTRL_ENABLE   (1 << 0)

Definition at line 46 of file mipi-csis.c.

#define S5PCSIS_CTRL_RESET   (1 << 4)

Definition at line 45 of file mipi-csis.c.

#define S5PCSIS_CTRL_UPDATE_SHADOW   (1 << 16)

Definition at line 43 of file mipi-csis.c.

#define S5PCSIS_CTRL_WCLK_EXTCLK   (1 << 8)

Definition at line 44 of file mipi-csis.c.

#define S5PCSIS_DPHYCTRL   0x04

Definition at line 49 of file mipi-csis.c.

#define S5PCSIS_DPHYCTRL_ENABLE   (0x1f << 0)

Definition at line 51 of file mipi-csis.c.

#define S5PCSIS_DPHYCTRL_HSS_MASK   (0x1f << 27)

Definition at line 50 of file mipi-csis.c.

#define S5PCSIS_INTMSK   0x10

Definition at line 64 of file mipi-csis.c.

#define S5PCSIS_INTMSK_EN_ALL   0xf000103f

Definition at line 65 of file mipi-csis.c.

#define S5PCSIS_INTMSK_ERR_CRC   (1 << 1)

Definition at line 75 of file mipi-csis.c.

#define S5PCSIS_INTMSK_ERR_ECC   (1 << 2)

Definition at line 74 of file mipi-csis.c.

#define S5PCSIS_INTMSK_ERR_LOST_FE   (1 << 4)

Definition at line 72 of file mipi-csis.c.

#define S5PCSIS_INTMSK_ERR_LOST_FS   (1 << 5)

Definition at line 71 of file mipi-csis.c.

#define S5PCSIS_INTMSK_ERR_OVER   (1 << 3)

Definition at line 73 of file mipi-csis.c.

#define S5PCSIS_INTMSK_ERR_SOT_HS   (1 << 12)

Definition at line 70 of file mipi-csis.c.

#define S5PCSIS_INTMSK_ERR_UNKNOWN   (1 << 0)

Definition at line 76 of file mipi-csis.c.

#define S5PCSIS_INTMSK_EVEN_AFTER   (1 << 30)

Definition at line 67 of file mipi-csis.c.

#define S5PCSIS_INTMSK_EVEN_BEFORE   (1 << 31)

Definition at line 66 of file mipi-csis.c.

#define S5PCSIS_INTMSK_ODD_AFTER   (1 << 28)

Definition at line 69 of file mipi-csis.c.

#define S5PCSIS_INTMSK_ODD_BEFORE   (1 << 29)

Definition at line 68 of file mipi-csis.c.

#define S5PCSIS_INTSRC   0x14

Definition at line 79 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ERR_CRC   (1 << 1)

Definition at line 92 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ERR_ECC   (1 << 2)

Definition at line 91 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ERR_LOST_FE   (1 << 4)

Definition at line 89 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ERR_LOST_FS   (1 << 5)

Definition at line 88 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ERR_OVER   (1 << 3)

Definition at line 90 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ERR_SOT_HS   (0xf << 12)

Definition at line 87 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ERR_UNKNOWN   (1 << 0)

Definition at line 93 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ERRORS   0xf03f

Definition at line 94 of file mipi-csis.c.

#define S5PCSIS_INTSRC_EVEN   (0x3 << 30)

Definition at line 82 of file mipi-csis.c.

#define S5PCSIS_INTSRC_EVEN_AFTER   (1 << 30)

Definition at line 81 of file mipi-csis.c.

#define S5PCSIS_INTSRC_EVEN_BEFORE   (1 << 31)

Definition at line 80 of file mipi-csis.c.

#define S5PCSIS_INTSRC_NON_IMAGE_DATA   (0xff << 28)

Definition at line 86 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ODD   (0x3 << 28)

Definition at line 85 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ODD_AFTER   (1 << 28)

Definition at line 84 of file mipi-csis.c.

#define S5PCSIS_INTSRC_ODD_BEFORE   (1 << 29)

Definition at line 83 of file mipi-csis.c.

#define S5PCSIS_NUM_EVENTS   ARRAY_SIZE(s5pcsis_events)

Definition at line 150 of file mipi-csis.c.

#define S5PCSIS_PKTDATA_EVEN   0x3000

Definition at line 103 of file mipi-csis.c.

#define S5PCSIS_PKTDATA_ODD   0x2000

Definition at line 102 of file mipi-csis.c.

#define S5PCSIS_PKTDATA_SIZE   SZ_4K

Definition at line 104 of file mipi-csis.c.

#define s5pcsis_read (   __csis,
  __r 
)    readl(__csis->regs + __r)
#define S5PCSIS_RESOL   0x2c

Definition at line 97 of file mipi-csis.c.

#define s5pcsis_write (   __csis,
  __r,
  __v 
)    writel(__v, __csis->regs + __r)

Enumeration Type Documentation

anonymous enum
Enumerator:
CSIS_CLK_MUX 
CSIS_CLK_GATE 

Definition at line 106 of file mipi-csis.c.

anonymous enum
Enumerator:
ST_POWERED 
ST_STREAMING 
ST_SUSPENDED 

Definition at line 123 of file mipi-csis.c.

Function Documentation

module_param ( debug  ,
int  ,
0644   
)
MODULE_PARM_DESC ( debug  ,
"Debug level (0-2)"   
)