diff options
Diffstat (limited to 'arch/blackfin/mach-bf548/boards')
-rw-r--r-- | arch/blackfin/mach-bf548/boards/ezkit.c | 106 |
1 files changed, 100 insertions, 6 deletions
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c index 0f44becafaa3..311bf9970fe7 100644 --- a/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/arch/blackfin/mach-bf548/boards/ezkit.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <asm/gpio.h> | 22 | #include <asm/gpio.h> |
23 | #include <asm/nand.h> | 23 | #include <asm/nand.h> |
24 | #include <asm/dpmc.h> | 24 | #include <asm/dpmc.h> |
25 | #include <asm/bfin_sport.h> | ||
25 | #include <asm/portmux.h> | 26 | #include <asm/portmux.h> |
26 | #include <asm/bfin_sdh.h> | 27 | #include <asm/bfin_sdh.h> |
27 | #include <mach/bf54x_keys.h> | 28 | #include <mach/bf54x_keys.h> |
@@ -1320,27 +1321,110 @@ static struct platform_device bfin_dpmc = { | |||
1320 | }, | 1321 | }, |
1321 | }; | 1322 | }; |
1322 | 1323 | ||
1323 | #if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) | 1324 | #if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) || \ |
1325 | defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) || \ | ||
1326 | defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE) | ||
1327 | |||
1328 | #define SPORT_REQ(x) \ | ||
1329 | [x] = {P_SPORT##x##_TFS, P_SPORT##x##_DTPRI, P_SPORT##x##_TSCLK, \ | ||
1330 | P_SPORT##x##_RFS, P_SPORT##x##_DRPRI, P_SPORT##x##_RSCLK, 0} | ||
1331 | |||
1332 | static const u16 bfin_snd_pin[][7] = { | ||
1333 | SPORT_REQ(0), | ||
1334 | SPORT_REQ(1), | ||
1335 | }; | ||
1336 | |||
1337 | static struct bfin_snd_platform_data bfin_snd_data[] = { | ||
1338 | { | ||
1339 | .pin_req = &bfin_snd_pin[0][0], | ||
1340 | }, | ||
1341 | { | ||
1342 | .pin_req = &bfin_snd_pin[1][0], | ||
1343 | }, | ||
1344 | }; | ||
1345 | |||
1346 | #define BFIN_SND_RES(x) \ | ||
1347 | [x] = { \ | ||
1348 | { \ | ||
1349 | .start = SPORT##x##_TCR1, \ | ||
1350 | .end = SPORT##x##_TCR1, \ | ||
1351 | .flags = IORESOURCE_MEM \ | ||
1352 | }, \ | ||
1353 | { \ | ||
1354 | .start = CH_SPORT##x##_RX, \ | ||
1355 | .end = CH_SPORT##x##_RX, \ | ||
1356 | .flags = IORESOURCE_DMA, \ | ||
1357 | }, \ | ||
1358 | { \ | ||
1359 | .start = CH_SPORT##x##_TX, \ | ||
1360 | .end = CH_SPORT##x##_TX, \ | ||
1361 | .flags = IORESOURCE_DMA, \ | ||
1362 | }, \ | ||
1363 | { \ | ||
1364 | .start = IRQ_SPORT##x##_ERROR, \ | ||
1365 | .end = IRQ_SPORT##x##_ERROR, \ | ||
1366 | .flags = IORESOURCE_IRQ, \ | ||
1367 | } \ | ||
1368 | } | ||
1369 | |||
1370 | static struct resource bfin_snd_resources[][4] = { | ||
1371 | BFIN_SND_RES(0), | ||
1372 | BFIN_SND_RES(1), | ||
1373 | }; | ||
1374 | |||
1375 | static struct platform_device bfin_pcm = { | ||
1376 | .name = "bfin-pcm-audio", | ||
1377 | .id = -1, | ||
1378 | }; | ||
1379 | #endif | ||
1380 | |||
1381 | #if defined(CONFIG_SND_BF5XX_SOC_AD73311) || defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE) | ||
1382 | static struct platform_device bfin_ad73311_codec_device = { | ||
1383 | .name = "ad73311", | ||
1384 | .id = -1, | ||
1385 | }; | ||
1386 | #endif | ||
1387 | |||
1388 | #if defined(CONFIG_SND_BF5XX_SOC_AD1980) || defined(CONFIG_SND_BF5XX_SOC_AD1980_MODULE) | ||
1389 | static struct platform_device bfin_ad1980_codec_device = { | ||
1390 | .name = "ad1980", | ||
1391 | .id = -1, | ||
1392 | }; | ||
1393 | #endif | ||
1394 | |||
1395 | #if defined(CONFIG_SND_BF5XX_SOC_I2S) || defined(CONFIG_SND_BF5XX_SOC_I2S_MODULE) | ||
1324 | static struct platform_device bfin_i2s = { | 1396 | static struct platform_device bfin_i2s = { |
1325 | .name = "bfin-i2s", | 1397 | .name = "bfin-i2s", |
1326 | .id = CONFIG_SND_BF5XX_SPORT_NUM, | 1398 | .id = CONFIG_SND_BF5XX_SPORT_NUM, |
1327 | /* TODO: add platform data here */ | 1399 | .num_resources = ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]), |
1400 | .resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM], | ||
1401 | .dev = { | ||
1402 | .platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM], | ||
1403 | }, | ||
1328 | }; | 1404 | }; |
1329 | #endif | 1405 | #endif |
1330 | 1406 | ||
1331 | #if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) | 1407 | #if defined(CONFIG_SND_BF5XX_SOC_TDM) || defined(CONFIG_SND_BF5XX_SOC_TDM_MODULE) |
1332 | static struct platform_device bfin_tdm = { | 1408 | static struct platform_device bfin_tdm = { |
1333 | .name = "bfin-tdm", | 1409 | .name = "bfin-tdm", |
1334 | .id = CONFIG_SND_BF5XX_SPORT_NUM, | 1410 | .id = CONFIG_SND_BF5XX_SPORT_NUM, |
1335 | /* TODO: add platform data here */ | 1411 | .num_resources = ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]), |
1412 | .resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM], | ||
1413 | .dev = { | ||
1414 | .platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM], | ||
1415 | }, | ||
1336 | }; | 1416 | }; |
1337 | #endif | 1417 | #endif |
1338 | 1418 | ||
1339 | #if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE) | 1419 | #if defined(CONFIG_SND_BF5XX_SOC_AC97) || defined(CONFIG_SND_BF5XX_SOC_AC97_MODULE) |
1340 | static struct platform_device bfin_ac97 = { | 1420 | static struct platform_device bfin_ac97 = { |
1341 | .name = "bfin-ac97", | 1421 | .name = "bfin-ac97", |
1342 | .id = CONFIG_SND_BF5XX_SPORT_NUM, | 1422 | .id = CONFIG_SND_BF5XX_SPORT_NUM, |
1343 | /* TODO: add platform data here */ | 1423 | .num_resources = ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]), |
1424 | .resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM], | ||
1425 | .dev = { | ||
1426 | .platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM], | ||
1427 | }, | ||
1344 | }; | 1428 | }; |
1345 | #endif | 1429 | #endif |
1346 | 1430 | ||
@@ -1458,6 +1542,16 @@ static struct platform_device *ezkit_devices[] __initdata = { | |||
1458 | &ezkit_flash_device, | 1542 | &ezkit_flash_device, |
1459 | #endif | 1543 | #endif |
1460 | 1544 | ||
1545 | #if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) || \ | ||
1546 | defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) || \ | ||
1547 | defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE) | ||
1548 | &bfin_pcm, | ||
1549 | #endif | ||
1550 | |||
1551 | #if defined(CONFIG_SND_BF5XX_SOC_AD1980) || defined(CONFIG_SND_BF5XX_SOC_AD1980_MODULE) | ||
1552 | &bfin_ad1980_codec_device, | ||
1553 | #endif | ||
1554 | |||
1461 | #if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) | 1555 | #if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) |
1462 | &bfin_i2s, | 1556 | &bfin_i2s, |
1463 | #endif | 1557 | #endif |