change source file mode to 0644 instead of 0755
[profile/mobile/platform/kernel/u-boot-tm1.git] / arch / arm / cpu / armv7 / sc8810 / pin_drv.c
1 /******************************************************************************\r
2  ** File Name:        pin_drv.c\r
3  ** Author:           henry.he\r
4  ** DATE:             11/03/2013\r
5  ** Copyright:        2013 Spreatrum, Incoporated. All Rights Reserved.\r
6  ** Description:\r
7  ******************************************************************************/\r
8 /******************************************************************************\r
9  **                   Edit    History\r
10  **-------------------------------------------------------------------------\r
11  ** DATE          NAME            DESCRIPTION\r
12  ** 11/03/2013                    Create.\r
13  ******************************************************************************/\r
14 \r
15 #include <common.h>\r
16 #include <asm/arch/sci_types.h>\r
17 #include <asm/arch/arm_reg.h>\r
18 #include <asm/arch/sc_reg.h>\r
19 #include "asm/arch/chip_plf_export.h"\r
20 #include <asm/arch/mfp.h>\r
21 \r
22 \r
23 void set_cp_emc_pad(void)\r
24 {\r
25     u32 dqs_drv = 0;\r
26     u32 data_drv = 0;\r
27     u32 ctl_drv = 1;\r
28     u32 clk_drv = 0;\r
29 \r
30     u32 i = 0;\r
31 \r
32     for (i = 0; i < 2; i++) {// ckdp ckdm\r
33         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_CLKDMMEM_REG_OFFS) + i*4) &= (~0x30F);\r
34         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_CLKDMMEM_REG_OFFS) + i*4) |= (clk_drv<<8) | 0x4;\r
35     }\r
36 \r
37     //addr\r
38     for (i = 0; i<14; i++) {\r
39                 REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMA0_REG_OFFS) + i*4) &= (~0x30F);\r
40                 REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMA0_REG_OFFS) + i*4) |= (ctl_drv<<8) | 0x4;\r
41     }\r
42 \r
43     for (i = 0; i < 5; i++) {//bank0 bank1 casn cke0 csn0\r
44         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMBA0_REG_OFFS) + i*4) &= (~0x30F);\r
45         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMBA0_REG_OFFS) + i*4) |= (ctl_drv<<8) | 0x4;\r
46     }\r
47 \r
48     //CKE0\r
49     REG32(CHIPPIN_CTL_BEGIN + PIN_CP_EMCKE0_REG_OFFS) &= (~0x30F);\r
50     REG32(CHIPPIN_CTL_BEGIN + PIN_CP_EMCKE0_REG_OFFS) |= (3<<8) | 0x4;\r
51 \r
52     for (i = 0; i < 4; i++) {//dqm\r
53         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMDQM0_REG_OFFS) + i*4) &= (~0x30F);\r
54         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMDQM0_REG_OFFS) + i*4) |= (data_drv<<8) | 0x4;\r
55     }\r
56 \r
57     for (i = 0; i < 4; i++) {//dqs\r
58         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMDQS0_REG_OFFS) + i*4) &= (~0x30F);\r
59         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMDQS0_REG_OFFS) + i*4) |= (dqs_drv<<8) | 0x4;\r
60     }\r
61 \r
62     //data\r
63     for (i = 0; i < 32; i++) {\r
64         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMD0_REG_OFFS) + i*4) &= (~0x30F);\r
65         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMD0_REG_OFFS) + i*4) |= (data_drv<<8) | 0x4;\r
66     }\r
67 \r
68     for (i = 0; i < 4; i++) {//gpre_loop gpst_loop rasn wen\r
69         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMGPRE_LOOP_REG_OFFS) + i*4) &= (~0x30F);\r
70         REG32((CHIPPIN_CTL_BEGIN + PIN_CP_EMGPRE_LOOP_REG_OFFS) + i*4) |= (ctl_drv<<8) | 0x4;\r
71     }\r
72 }\r
73 \r
74 \r
75 void set_cp_jtag_pad(void)\r
76 {\r
77     u32 i = 0;\r
78 #if 1    \r
79     /*CP Jtag pin config*/\r
80     CHIP_REG_OR(GR_GEN0, BIT_13);//pin eb\r
81     \r
82     CHIP_REG_SET((CHIPPIN_CTL_BEGIN + PIN_TRACEDAT3_REG_OFFS) , 0x10108);\r
83 \r
84     for (i = 0; i < 4; i++) {\r
85         CHIP_REG_SET(((CHIPPIN_CTL_BEGIN + PIN_TRACEDAT4_REG_OFFS) + i*4), 0x10188);\r
86     }\r
87 #else\r
88     REG32(0x8B0000B0) &= ~(BIT_22|BIT_21|BIT_20|BIT_19);\r
89     REG32(0x8C00043C) |= 0X10;\r
90     REG32(0x8C000440) |= 0X10;\r
91     REG32(0x8C000448) |= 0X10;\r
92     REG32(0x8C00044C) |= 0X10;\r
93 #endif\r
94 }\r
95 \r
96 \r