diff options
Diffstat (limited to 'arch/arm/mach-exynos')
-rw-r--r-- | arch/arm/mach-exynos/clock-exynos4.c | 67 | ||||
-rw-r--r-- | arch/arm/mach-exynos/clock-exynos5.c | 95 | ||||
-rw-r--r-- | arch/arm/mach-exynos/include/mach/irqs.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-exynos/include/mach/map.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-exynos4-dt.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-exynos/mach-exynos5-dt.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-exynos/setup-spi.c | 33 |
7 files changed, 165 insertions, 49 deletions
diff --git a/arch/arm/mach-exynos/clock-exynos4.c b/arch/arm/mach-exynos/clock-exynos4.c index bcb7db453145..26fe9de35ecb 100644 --- a/arch/arm/mach-exynos/clock-exynos4.c +++ b/arch/arm/mach-exynos/clock-exynos4.c | |||
@@ -586,17 +586,17 @@ static struct clk exynos4_init_clocks_off[] = { | |||
586 | .ctrlbit = (1 << 13), | 586 | .ctrlbit = (1 << 13), |
587 | }, { | 587 | }, { |
588 | .name = "spi", | 588 | .name = "spi", |
589 | .devname = "s3c64xx-spi.0", | 589 | .devname = "exynos4210-spi.0", |
590 | .enable = exynos4_clk_ip_peril_ctrl, | 590 | .enable = exynos4_clk_ip_peril_ctrl, |
591 | .ctrlbit = (1 << 16), | 591 | .ctrlbit = (1 << 16), |
592 | }, { | 592 | }, { |
593 | .name = "spi", | 593 | .name = "spi", |
594 | .devname = "s3c64xx-spi.1", | 594 | .devname = "exynos4210-spi.1", |
595 | .enable = exynos4_clk_ip_peril_ctrl, | 595 | .enable = exynos4_clk_ip_peril_ctrl, |
596 | .ctrlbit = (1 << 17), | 596 | .ctrlbit = (1 << 17), |
597 | }, { | 597 | }, { |
598 | .name = "spi", | 598 | .name = "spi", |
599 | .devname = "s3c64xx-spi.2", | 599 | .devname = "exynos4210-spi.2", |
600 | .enable = exynos4_clk_ip_peril_ctrl, | 600 | .enable = exynos4_clk_ip_peril_ctrl, |
601 | .ctrlbit = (1 << 18), | 601 | .ctrlbit = (1 << 18), |
602 | }, { | 602 | }, { |
@@ -1242,40 +1242,67 @@ static struct clksrc_clk exynos4_clk_sclk_mmc3 = { | |||
1242 | .reg_div = { .reg = EXYNOS4_CLKDIV_FSYS2, .shift = 24, .size = 8 }, | 1242 | .reg_div = { .reg = EXYNOS4_CLKDIV_FSYS2, .shift = 24, .size = 8 }, |
1243 | }; | 1243 | }; |
1244 | 1244 | ||
1245 | static struct clksrc_clk exynos4_clk_mdout_spi0 = { | ||
1246 | .clk = { | ||
1247 | .name = "mdout_spi", | ||
1248 | .devname = "exynos4210-spi.0", | ||
1249 | }, | ||
1250 | .sources = &exynos4_clkset_group, | ||
1251 | .reg_src = { .reg = EXYNOS4_CLKSRC_PERIL1, .shift = 16, .size = 4 }, | ||
1252 | .reg_div = { .reg = EXYNOS4_CLKDIV_PERIL1, .shift = 0, .size = 4 }, | ||
1253 | }; | ||
1254 | |||
1255 | static struct clksrc_clk exynos4_clk_mdout_spi1 = { | ||
1256 | .clk = { | ||
1257 | .name = "mdout_spi", | ||
1258 | .devname = "exynos4210-spi.1", | ||
1259 | }, | ||
1260 | .sources = &exynos4_clkset_group, | ||
1261 | .reg_src = { .reg = EXYNOS4_CLKSRC_PERIL1, .shift = 20, .size = 4 }, | ||
1262 | .reg_div = { .reg = EXYNOS4_CLKDIV_PERIL1, .shift = 16, .size = 4 }, | ||
1263 | }; | ||
1264 | |||
1265 | static struct clksrc_clk exynos4_clk_mdout_spi2 = { | ||
1266 | .clk = { | ||
1267 | .name = "mdout_spi", | ||
1268 | .devname = "exynos4210-spi.2", | ||
1269 | }, | ||
1270 | .sources = &exynos4_clkset_group, | ||
1271 | .reg_src = { .reg = EXYNOS4_CLKSRC_PERIL1, .shift = 24, .size = 4 }, | ||
1272 | .reg_div = { .reg = EXYNOS4_CLKDIV_PERIL2, .shift = 0, .size = 4 }, | ||
1273 | }; | ||
1274 | |||
1245 | static struct clksrc_clk exynos4_clk_sclk_spi0 = { | 1275 | static struct clksrc_clk exynos4_clk_sclk_spi0 = { |
1246 | .clk = { | 1276 | .clk = { |
1247 | .name = "sclk_spi", | 1277 | .name = "sclk_spi", |
1248 | .devname = "s3c64xx-spi.0", | 1278 | .devname = "exynos4210-spi.0", |
1279 | .parent = &exynos4_clk_mdout_spi0.clk, | ||
1249 | .enable = exynos4_clksrc_mask_peril1_ctrl, | 1280 | .enable = exynos4_clksrc_mask_peril1_ctrl, |
1250 | .ctrlbit = (1 << 16), | 1281 | .ctrlbit = (1 << 16), |
1251 | }, | 1282 | }, |
1252 | .sources = &exynos4_clkset_group, | 1283 | .reg_div = { .reg = EXYNOS4_CLKDIV_PERIL1, .shift = 8, .size = 8 }, |
1253 | .reg_src = { .reg = EXYNOS4_CLKSRC_PERIL1, .shift = 16, .size = 4 }, | ||
1254 | .reg_div = { .reg = EXYNOS4_CLKDIV_PERIL1, .shift = 0, .size = 4 }, | ||
1255 | }; | 1284 | }; |
1256 | 1285 | ||
1257 | static struct clksrc_clk exynos4_clk_sclk_spi1 = { | 1286 | static struct clksrc_clk exynos4_clk_sclk_spi1 = { |
1258 | .clk = { | 1287 | .clk = { |
1259 | .name = "sclk_spi", | 1288 | .name = "sclk_spi", |
1260 | .devname = "s3c64xx-spi.1", | 1289 | .devname = "exynos4210-spi.1", |
1290 | .parent = &exynos4_clk_mdout_spi1.clk, | ||
1261 | .enable = exynos4_clksrc_mask_peril1_ctrl, | 1291 | .enable = exynos4_clksrc_mask_peril1_ctrl, |
1262 | .ctrlbit = (1 << 20), | 1292 | .ctrlbit = (1 << 20), |
1263 | }, | 1293 | }, |
1264 | .sources = &exynos4_clkset_group, | 1294 | .reg_div = { .reg = EXYNOS4_CLKDIV_PERIL1, .shift = 24, .size = 8 }, |
1265 | .reg_src = { .reg = EXYNOS4_CLKSRC_PERIL1, .shift = 20, .size = 4 }, | ||
1266 | .reg_div = { .reg = EXYNOS4_CLKDIV_PERIL1, .shift = 16, .size = 4 }, | ||
1267 | }; | 1295 | }; |
1268 | 1296 | ||
1269 | static struct clksrc_clk exynos4_clk_sclk_spi2 = { | 1297 | static struct clksrc_clk exynos4_clk_sclk_spi2 = { |
1270 | .clk = { | 1298 | .clk = { |
1271 | .name = "sclk_spi", | 1299 | .name = "sclk_spi", |
1272 | .devname = "s3c64xx-spi.2", | 1300 | .devname = "exynos4210-spi.2", |
1301 | .parent = &exynos4_clk_mdout_spi2.clk, | ||
1273 | .enable = exynos4_clksrc_mask_peril1_ctrl, | 1302 | .enable = exynos4_clksrc_mask_peril1_ctrl, |
1274 | .ctrlbit = (1 << 24), | 1303 | .ctrlbit = (1 << 24), |
1275 | }, | 1304 | }, |
1276 | .sources = &exynos4_clkset_group, | 1305 | .reg_div = { .reg = EXYNOS4_CLKDIV_PERIL2, .shift = 8, .size = 8 }, |
1277 | .reg_src = { .reg = EXYNOS4_CLKSRC_PERIL1, .shift = 24, .size = 4 }, | ||
1278 | .reg_div = { .reg = EXYNOS4_CLKDIV_PERIL2, .shift = 0, .size = 4 }, | ||
1279 | }; | 1306 | }; |
1280 | 1307 | ||
1281 | /* Clock initialization code */ | 1308 | /* Clock initialization code */ |
@@ -1331,7 +1358,9 @@ static struct clksrc_clk *exynos4_clksrc_cdev[] = { | |||
1331 | &exynos4_clk_sclk_spi0, | 1358 | &exynos4_clk_sclk_spi0, |
1332 | &exynos4_clk_sclk_spi1, | 1359 | &exynos4_clk_sclk_spi1, |
1333 | &exynos4_clk_sclk_spi2, | 1360 | &exynos4_clk_sclk_spi2, |
1334 | 1361 | &exynos4_clk_mdout_spi0, | |
1362 | &exynos4_clk_mdout_spi1, | ||
1363 | &exynos4_clk_mdout_spi2, | ||
1335 | }; | 1364 | }; |
1336 | 1365 | ||
1337 | static struct clk_lookup exynos4_clk_lookup[] = { | 1366 | static struct clk_lookup exynos4_clk_lookup[] = { |
@@ -1347,9 +1376,9 @@ static struct clk_lookup exynos4_clk_lookup[] = { | |||
1347 | CLKDEV_INIT("dma-pl330.0", "apb_pclk", &exynos4_clk_pdma0), | 1376 | CLKDEV_INIT("dma-pl330.0", "apb_pclk", &exynos4_clk_pdma0), |
1348 | CLKDEV_INIT("dma-pl330.1", "apb_pclk", &exynos4_clk_pdma1), | 1377 | CLKDEV_INIT("dma-pl330.1", "apb_pclk", &exynos4_clk_pdma1), |
1349 | CLKDEV_INIT("dma-pl330.2", "apb_pclk", &exynos4_clk_mdma1), | 1378 | CLKDEV_INIT("dma-pl330.2", "apb_pclk", &exynos4_clk_mdma1), |
1350 | CLKDEV_INIT("s3c64xx-spi.0", "spi_busclk0", &exynos4_clk_sclk_spi0.clk), | 1379 | CLKDEV_INIT("exynos4210-spi.0", "spi_busclk0", &exynos4_clk_sclk_spi0.clk), |
1351 | CLKDEV_INIT("s3c64xx-spi.1", "spi_busclk0", &exynos4_clk_sclk_spi1.clk), | 1380 | CLKDEV_INIT("exynos4210-spi.1", "spi_busclk0", &exynos4_clk_sclk_spi1.clk), |
1352 | CLKDEV_INIT("s3c64xx-spi.2", "spi_busclk0", &exynos4_clk_sclk_spi2.clk), | 1381 | CLKDEV_INIT("exynos4210-spi.2", "spi_busclk0", &exynos4_clk_sclk_spi2.clk), |
1353 | }; | 1382 | }; |
1354 | 1383 | ||
1355 | static int xtal_rate; | 1384 | static int xtal_rate; |
diff --git a/arch/arm/mach-exynos/clock-exynos5.c b/arch/arm/mach-exynos/clock-exynos5.c index fefa336be2b4..774533c67066 100644 --- a/arch/arm/mach-exynos/clock-exynos5.c +++ b/arch/arm/mach-exynos/clock-exynos5.c | |||
@@ -131,6 +131,11 @@ static int exynos5_clksrc_mask_peric0_ctrl(struct clk *clk, int enable) | |||
131 | return s5p_gatectrl(EXYNOS5_CLKSRC_MASK_PERIC0, clk, enable); | 131 | return s5p_gatectrl(EXYNOS5_CLKSRC_MASK_PERIC0, clk, enable); |
132 | } | 132 | } |
133 | 133 | ||
134 | static int exynos5_clksrc_mask_peric1_ctrl(struct clk *clk, int enable) | ||
135 | { | ||
136 | return s5p_gatectrl(EXYNOS5_CLKSRC_MASK_PERIC1, clk, enable); | ||
137 | } | ||
138 | |||
134 | static int exynos5_clk_ip_acp_ctrl(struct clk *clk, int enable) | 139 | static int exynos5_clk_ip_acp_ctrl(struct clk *clk, int enable) |
135 | { | 140 | { |
136 | return s5p_gatectrl(EXYNOS5_CLKGATE_IP_ACP, clk, enable); | 141 | return s5p_gatectrl(EXYNOS5_CLKGATE_IP_ACP, clk, enable); |
@@ -741,6 +746,24 @@ static struct clk exynos5_init_clocks_off[] = { | |||
741 | .enable = exynos5_clk_ip_peric_ctrl, | 746 | .enable = exynos5_clk_ip_peric_ctrl, |
742 | .ctrlbit = (1 << 14), | 747 | .ctrlbit = (1 << 14), |
743 | }, { | 748 | }, { |
749 | .name = "spi", | ||
750 | .devname = "exynos4210-spi.0", | ||
751 | .parent = &exynos5_clk_aclk_66.clk, | ||
752 | .enable = exynos5_clk_ip_peric_ctrl, | ||
753 | .ctrlbit = (1 << 16), | ||
754 | }, { | ||
755 | .name = "spi", | ||
756 | .devname = "exynos4210-spi.1", | ||
757 | .parent = &exynos5_clk_aclk_66.clk, | ||
758 | .enable = exynos5_clk_ip_peric_ctrl, | ||
759 | .ctrlbit = (1 << 17), | ||
760 | }, { | ||
761 | .name = "spi", | ||
762 | .devname = "exynos4210-spi.2", | ||
763 | .parent = &exynos5_clk_aclk_66.clk, | ||
764 | .enable = exynos5_clk_ip_peric_ctrl, | ||
765 | .ctrlbit = (1 << 18), | ||
766 | }, { | ||
744 | .name = SYSMMU_CLOCK_NAME, | 767 | .name = SYSMMU_CLOCK_NAME, |
745 | .devname = SYSMMU_CLOCK_DEVNAME(mfc_l, 0), | 768 | .devname = SYSMMU_CLOCK_DEVNAME(mfc_l, 0), |
746 | .enable = &exynos5_clk_ip_mfc_ctrl, | 769 | .enable = &exynos5_clk_ip_mfc_ctrl, |
@@ -1034,6 +1057,69 @@ static struct clksrc_clk exynos5_clk_sclk_mmc3 = { | |||
1034 | .reg_div = { .reg = EXYNOS5_CLKDIV_FSYS2, .shift = 24, .size = 8 }, | 1057 | .reg_div = { .reg = EXYNOS5_CLKDIV_FSYS2, .shift = 24, .size = 8 }, |
1035 | }; | 1058 | }; |
1036 | 1059 | ||
1060 | static struct clksrc_clk exynos5_clk_mdout_spi0 = { | ||
1061 | .clk = { | ||
1062 | .name = "mdout_spi", | ||
1063 | .devname = "exynos4210-spi.0", | ||
1064 | }, | ||
1065 | .sources = &exynos5_clkset_group, | ||
1066 | .reg_src = { .reg = EXYNOS5_CLKSRC_PERIC1, .shift = 16, .size = 4 }, | ||
1067 | .reg_div = { .reg = EXYNOS5_CLKDIV_PERIC1, .shift = 0, .size = 4 }, | ||
1068 | }; | ||
1069 | |||
1070 | static struct clksrc_clk exynos5_clk_mdout_spi1 = { | ||
1071 | .clk = { | ||
1072 | .name = "mdout_spi", | ||
1073 | .devname = "exynos4210-spi.1", | ||
1074 | }, | ||
1075 | .sources = &exynos5_clkset_group, | ||
1076 | .reg_src = { .reg = EXYNOS5_CLKSRC_PERIC1, .shift = 20, .size = 4 }, | ||
1077 | .reg_div = { .reg = EXYNOS5_CLKDIV_PERIC1, .shift = 16, .size = 4 }, | ||
1078 | }; | ||
1079 | |||
1080 | static struct clksrc_clk exynos5_clk_mdout_spi2 = { | ||
1081 | .clk = { | ||
1082 | .name = "mdout_spi", | ||
1083 | .devname = "exynos4210-spi.2", | ||
1084 | }, | ||
1085 | .sources = &exynos5_clkset_group, | ||
1086 | .reg_src = { .reg = EXYNOS5_CLKSRC_PERIC1, .shift = 24, .size = 4 }, | ||
1087 | .reg_div = { .reg = EXYNOS5_CLKDIV_PERIC2, .shift = 0, .size = 4 }, | ||
1088 | }; | ||
1089 | |||
1090 | static struct clksrc_clk exynos5_clk_sclk_spi0 = { | ||
1091 | .clk = { | ||
1092 | .name = "sclk_spi", | ||
1093 | .devname = "exynos4210-spi.0", | ||
1094 | .parent = &exynos5_clk_mdout_spi0.clk, | ||
1095 | .enable = exynos5_clksrc_mask_peric1_ctrl, | ||
1096 | .ctrlbit = (1 << 16), | ||
1097 | }, | ||
1098 | .reg_div = { .reg = EXYNOS5_CLKDIV_PERIC1, .shift = 8, .size = 8 }, | ||
1099 | }; | ||
1100 | |||
1101 | static struct clksrc_clk exynos5_clk_sclk_spi1 = { | ||
1102 | .clk = { | ||
1103 | .name = "sclk_spi", | ||
1104 | .devname = "exynos4210-spi.1", | ||
1105 | .parent = &exynos5_clk_mdout_spi1.clk, | ||
1106 | .enable = exynos5_clksrc_mask_peric1_ctrl, | ||
1107 | .ctrlbit = (1 << 20), | ||
1108 | }, | ||
1109 | .reg_div = { .reg = EXYNOS5_CLKDIV_PERIC1, .shift = 24, .size = 8 }, | ||
1110 | }; | ||
1111 | |||
1112 | static struct clksrc_clk exynos5_clk_sclk_spi2 = { | ||
1113 | .clk = { | ||
1114 | .name = "sclk_spi", | ||
1115 | .devname = "exynos4210-spi.2", | ||
1116 | .parent = &exynos5_clk_mdout_spi2.clk, | ||
1117 | .enable = exynos5_clksrc_mask_peric1_ctrl, | ||
1118 | .ctrlbit = (1 << 24), | ||
1119 | }, | ||
1120 | .reg_div = { .reg = EXYNOS5_CLKDIV_PERIC2, .shift = 8, .size = 8 }, | ||
1121 | }; | ||
1122 | |||
1037 | static struct clksrc_clk exynos5_clksrcs[] = { | 1123 | static struct clksrc_clk exynos5_clksrcs[] = { |
1038 | { | 1124 | { |
1039 | .clk = { | 1125 | .clk = { |
@@ -1148,6 +1234,12 @@ static struct clksrc_clk *exynos5_sysclks[] = { | |||
1148 | &exynos5_clk_dout_mmc4, | 1234 | &exynos5_clk_dout_mmc4, |
1149 | &exynos5_clk_aclk_acp, | 1235 | &exynos5_clk_aclk_acp, |
1150 | &exynos5_clk_pclk_acp, | 1236 | &exynos5_clk_pclk_acp, |
1237 | &exynos5_clk_sclk_spi0, | ||
1238 | &exynos5_clk_sclk_spi1, | ||
1239 | &exynos5_clk_sclk_spi2, | ||
1240 | &exynos5_clk_mdout_spi0, | ||
1241 | &exynos5_clk_mdout_spi1, | ||
1242 | &exynos5_clk_mdout_spi2, | ||
1151 | }; | 1243 | }; |
1152 | 1244 | ||
1153 | static struct clk *exynos5_clk_cdev[] = { | 1245 | static struct clk *exynos5_clk_cdev[] = { |
@@ -1176,6 +1268,9 @@ static struct clk_lookup exynos5_clk_lookup[] = { | |||
1176 | CLKDEV_INIT("exynos4-sdhci.1", "mmc_busclk.2", &exynos5_clk_sclk_mmc1.clk), | 1268 | CLKDEV_INIT("exynos4-sdhci.1", "mmc_busclk.2", &exynos5_clk_sclk_mmc1.clk), |
1177 | CLKDEV_INIT("exynos4-sdhci.2", "mmc_busclk.2", &exynos5_clk_sclk_mmc2.clk), | 1269 | CLKDEV_INIT("exynos4-sdhci.2", "mmc_busclk.2", &exynos5_clk_sclk_mmc2.clk), |
1178 | CLKDEV_INIT("exynos4-sdhci.3", "mmc_busclk.2", &exynos5_clk_sclk_mmc3.clk), | 1270 | CLKDEV_INIT("exynos4-sdhci.3", "mmc_busclk.2", &exynos5_clk_sclk_mmc3.clk), |
1271 | CLKDEV_INIT("exynos4210-spi.0", "spi_busclk0", &exynos5_clk_sclk_spi0.clk), | ||
1272 | CLKDEV_INIT("exynos4210-spi.1", "spi_busclk0", &exynos5_clk_sclk_spi1.clk), | ||
1273 | CLKDEV_INIT("exynos4210-spi.2", "spi_busclk0", &exynos5_clk_sclk_spi2.clk), | ||
1179 | CLKDEV_INIT("dma-pl330.0", "apb_pclk", &exynos5_clk_pdma0), | 1274 | CLKDEV_INIT("dma-pl330.0", "apb_pclk", &exynos5_clk_pdma0), |
1180 | CLKDEV_INIT("dma-pl330.1", "apb_pclk", &exynos5_clk_pdma1), | 1275 | CLKDEV_INIT("dma-pl330.1", "apb_pclk", &exynos5_clk_pdma1), |
1181 | CLKDEV_INIT("dma-pl330.2", "apb_pclk", &exynos5_clk_mdma1), | 1276 | CLKDEV_INIT("dma-pl330.2", "apb_pclk", &exynos5_clk_mdma1), |
diff --git a/arch/arm/mach-exynos/include/mach/irqs.h b/arch/arm/mach-exynos/include/mach/irqs.h index 7a4b4789eb72..35bced6f9092 100644 --- a/arch/arm/mach-exynos/include/mach/irqs.h +++ b/arch/arm/mach-exynos/include/mach/irqs.h | |||
@@ -195,6 +195,10 @@ | |||
195 | #define IRQ_IIC6 EXYNOS4_IRQ_IIC6 | 195 | #define IRQ_IIC6 EXYNOS4_IRQ_IIC6 |
196 | #define IRQ_IIC7 EXYNOS4_IRQ_IIC7 | 196 | #define IRQ_IIC7 EXYNOS4_IRQ_IIC7 |
197 | 197 | ||
198 | #define IRQ_SPI0 EXYNOS4_IRQ_SPI0 | ||
199 | #define IRQ_SPI1 EXYNOS4_IRQ_SPI1 | ||
200 | #define IRQ_SPI2 EXYNOS4_IRQ_SPI2 | ||
201 | |||
198 | #define IRQ_USB_HOST EXYNOS4_IRQ_USB_HOST | 202 | #define IRQ_USB_HOST EXYNOS4_IRQ_USB_HOST |
199 | #define IRQ_OTG EXYNOS4_IRQ_USB_HSOTG | 203 | #define IRQ_OTG EXYNOS4_IRQ_USB_HSOTG |
200 | 204 | ||
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h index ca4aa89aa46b..c72b675b3e4b 100644 --- a/arch/arm/mach-exynos/include/mach/map.h +++ b/arch/arm/mach-exynos/include/mach/map.h | |||
@@ -154,6 +154,9 @@ | |||
154 | #define EXYNOS4_PA_SPI0 0x13920000 | 154 | #define EXYNOS4_PA_SPI0 0x13920000 |
155 | #define EXYNOS4_PA_SPI1 0x13930000 | 155 | #define EXYNOS4_PA_SPI1 0x13930000 |
156 | #define EXYNOS4_PA_SPI2 0x13940000 | 156 | #define EXYNOS4_PA_SPI2 0x13940000 |
157 | #define EXYNOS5_PA_SPI0 0x12D20000 | ||
158 | #define EXYNOS5_PA_SPI1 0x12D30000 | ||
159 | #define EXYNOS5_PA_SPI2 0x12D40000 | ||
157 | 160 | ||
158 | #define EXYNOS4_PA_GPIO1 0x11400000 | 161 | #define EXYNOS4_PA_GPIO1 0x11400000 |
159 | #define EXYNOS4_PA_GPIO2 0x11000000 | 162 | #define EXYNOS4_PA_GPIO2 0x11000000 |
diff --git a/arch/arm/mach-exynos/mach-exynos4-dt.c b/arch/arm/mach-exynos/mach-exynos4-dt.c index e7e9743543ac..b2b5d5faa748 100644 --- a/arch/arm/mach-exynos/mach-exynos4-dt.c +++ b/arch/arm/mach-exynos/mach-exynos4-dt.c | |||
@@ -55,6 +55,12 @@ static const struct of_dev_auxdata exynos4210_auxdata_lookup[] __initconst = { | |||
55 | "exynos4-sdhci.3", NULL), | 55 | "exynos4-sdhci.3", NULL), |
56 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(0), | 56 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(0), |
57 | "s3c2440-i2c.0", NULL), | 57 | "s3c2440-i2c.0", NULL), |
58 | OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS4_PA_SPI0, | ||
59 | "exynos4210-spi.0", NULL), | ||
60 | OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS4_PA_SPI1, | ||
61 | "exynos4210-spi.1", NULL), | ||
62 | OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS4_PA_SPI2, | ||
63 | "exynos4210-spi.2", NULL), | ||
58 | OF_DEV_AUXDATA("arm,pl330", EXYNOS4_PA_PDMA0, "dma-pl330.0", NULL), | 64 | OF_DEV_AUXDATA("arm,pl330", EXYNOS4_PA_PDMA0, "dma-pl330.0", NULL), |
59 | OF_DEV_AUXDATA("arm,pl330", EXYNOS4_PA_PDMA1, "dma-pl330.1", NULL), | 65 | OF_DEV_AUXDATA("arm,pl330", EXYNOS4_PA_PDMA1, "dma-pl330.1", NULL), |
60 | {}, | 66 | {}, |
diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c b/arch/arm/mach-exynos/mach-exynos5-dt.c index 7b1e11a228cc..ef770bc2318f 100644 --- a/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/arch/arm/mach-exynos/mach-exynos5-dt.c | |||
@@ -47,6 +47,12 @@ static const struct of_dev_auxdata exynos5250_auxdata_lookup[] __initconst = { | |||
47 | "s3c2440-i2c.0", NULL), | 47 | "s3c2440-i2c.0", NULL), |
48 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS5_PA_IIC(1), | 48 | OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS5_PA_IIC(1), |
49 | "s3c2440-i2c.1", NULL), | 49 | "s3c2440-i2c.1", NULL), |
50 | OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS5_PA_SPI0, | ||
51 | "exynos4210-spi.0", NULL), | ||
52 | OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS5_PA_SPI1, | ||
53 | "exynos4210-spi.1", NULL), | ||
54 | OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS5_PA_SPI2, | ||
55 | "exynos4210-spi.2", NULL), | ||
50 | OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_PDMA0, "dma-pl330.0", NULL), | 56 | OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_PDMA0, "dma-pl330.0", NULL), |
51 | OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_PDMA1, "dma-pl330.1", NULL), | 57 | OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_PDMA1, "dma-pl330.1", NULL), |
52 | OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_MDMA1, "dma-pl330.2", NULL), | 58 | OF_DEV_AUXDATA("arm,pl330", EXYNOS5_PA_MDMA1, "dma-pl330.2", NULL), |
diff --git a/arch/arm/mach-exynos/setup-spi.c b/arch/arm/mach-exynos/setup-spi.c index 833ff40ee0e8..4999829d1c6e 100644 --- a/arch/arm/mach-exynos/setup-spi.c +++ b/arch/arm/mach-exynos/setup-spi.c | |||
@@ -9,21 +9,10 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/gpio.h> | 11 | #include <linux/gpio.h> |
12 | #include <linux/platform_device.h> | ||
13 | |||
14 | #include <plat/gpio-cfg.h> | 12 | #include <plat/gpio-cfg.h> |
15 | #include <plat/s3c64xx-spi.h> | ||
16 | 13 | ||
17 | #ifdef CONFIG_S3C64XX_DEV_SPI0 | 14 | #ifdef CONFIG_S3C64XX_DEV_SPI0 |
18 | struct s3c64xx_spi_info s3c64xx_spi0_pdata __initdata = { | 15 | int s3c64xx_spi0_cfg_gpio(void) |
19 | .fifo_lvl_mask = 0x1ff, | ||
20 | .rx_lvl_offset = 15, | ||
21 | .high_speed = 1, | ||
22 | .clk_from_cmu = true, | ||
23 | .tx_st_done = 25, | ||
24 | }; | ||
25 | |||
26 | int s3c64xx_spi0_cfg_gpio(struct platform_device *dev) | ||
27 | { | 16 | { |
28 | s3c_gpio_cfgpin(EXYNOS4_GPB(0), S3C_GPIO_SFN(2)); | 17 | s3c_gpio_cfgpin(EXYNOS4_GPB(0), S3C_GPIO_SFN(2)); |
29 | s3c_gpio_setpull(EXYNOS4_GPB(0), S3C_GPIO_PULL_UP); | 18 | s3c_gpio_setpull(EXYNOS4_GPB(0), S3C_GPIO_PULL_UP); |
@@ -34,15 +23,7 @@ int s3c64xx_spi0_cfg_gpio(struct platform_device *dev) | |||
34 | #endif | 23 | #endif |
35 | 24 | ||
36 | #ifdef CONFIG_S3C64XX_DEV_SPI1 | 25 | #ifdef CONFIG_S3C64XX_DEV_SPI1 |
37 | struct s3c64xx_spi_info s3c64xx_spi1_pdata __initdata = { | 26 | int s3c64xx_spi1_cfg_gpio(void) |
38 | .fifo_lvl_mask = 0x7f, | ||
39 | .rx_lvl_offset = 15, | ||
40 | .high_speed = 1, | ||
41 | .clk_from_cmu = true, | ||
42 | .tx_st_done = 25, | ||
43 | }; | ||
44 | |||
45 | int s3c64xx_spi1_cfg_gpio(struct platform_device *dev) | ||
46 | { | 27 | { |
47 | s3c_gpio_cfgpin(EXYNOS4_GPB(4), S3C_GPIO_SFN(2)); | 28 | s3c_gpio_cfgpin(EXYNOS4_GPB(4), S3C_GPIO_SFN(2)); |
48 | s3c_gpio_setpull(EXYNOS4_GPB(4), S3C_GPIO_PULL_UP); | 29 | s3c_gpio_setpull(EXYNOS4_GPB(4), S3C_GPIO_PULL_UP); |
@@ -53,15 +34,7 @@ int s3c64xx_spi1_cfg_gpio(struct platform_device *dev) | |||
53 | #endif | 34 | #endif |
54 | 35 | ||
55 | #ifdef CONFIG_S3C64XX_DEV_SPI2 | 36 | #ifdef CONFIG_S3C64XX_DEV_SPI2 |
56 | struct s3c64xx_spi_info s3c64xx_spi2_pdata __initdata = { | 37 | int s3c64xx_spi2_cfg_gpio(void) |
57 | .fifo_lvl_mask = 0x7f, | ||
58 | .rx_lvl_offset = 15, | ||
59 | .high_speed = 1, | ||
60 | .clk_from_cmu = true, | ||
61 | .tx_st_done = 25, | ||
62 | }; | ||
63 | |||
64 | int s3c64xx_spi2_cfg_gpio(struct platform_device *dev) | ||
65 | { | 38 | { |
66 | s3c_gpio_cfgpin(EXYNOS4_GPC1(1), S3C_GPIO_SFN(5)); | 39 | s3c_gpio_cfgpin(EXYNOS4_GPC1(1), S3C_GPIO_SFN(5)); |
67 | s3c_gpio_setpull(EXYNOS4_GPC1(1), S3C_GPIO_PULL_UP); | 40 | s3c_gpio_setpull(EXYNOS4_GPC1(1), S3C_GPIO_PULL_UP); |