diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-mxs/devices-mx28.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-mxs/devices/platform-mxs-saif.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-mxs/include/mach/devices-common.h | 4 | ||||
-rw-r--r-- | arch/arm/mach-mxs/mach-mx28evk.c | 18 |
4 files changed, 24 insertions, 6 deletions
diff --git a/arch/arm/mach-mxs/devices-mx28.h b/arch/arm/mach-mxs/devices-mx28.h index c8887103f0e3..4f50094e293d 100644 --- a/arch/arm/mach-mxs/devices-mx28.h +++ b/arch/arm/mach-mxs/devices-mx28.h | |||
@@ -47,6 +47,7 @@ struct platform_device *__init mx28_add_mxsfb( | |||
47 | const struct mxsfb_platform_data *pdata); | 47 | const struct mxsfb_platform_data *pdata); |
48 | 48 | ||
49 | extern const struct mxs_saif_data mx28_saif_data[] __initconst; | 49 | extern const struct mxs_saif_data mx28_saif_data[] __initconst; |
50 | #define mx28_add_saif(id) mxs_add_saif(&mx28_saif_data[id]) | 50 | #define mx28_add_saif(id, pdata) \ |
51 | mxs_add_saif(&mx28_saif_data[id], pdata) | ||
51 | 52 | ||
52 | struct platform_device *__init mx28_add_rtc_stmp3xxx(void); | 53 | struct platform_device *__init mx28_add_rtc_stmp3xxx(void); |
diff --git a/arch/arm/mach-mxs/devices/platform-mxs-saif.c b/arch/arm/mach-mxs/devices/platform-mxs-saif.c index 1ec965e9fe92..f6e3a60b4201 100644 --- a/arch/arm/mach-mxs/devices/platform-mxs-saif.c +++ b/arch/arm/mach-mxs/devices/platform-mxs-saif.c | |||
@@ -32,7 +32,8 @@ const struct mxs_saif_data mx28_saif_data[] __initconst = { | |||
32 | }; | 32 | }; |
33 | #endif | 33 | #endif |
34 | 34 | ||
35 | struct platform_device *__init mxs_add_saif(const struct mxs_saif_data *data) | 35 | struct platform_device *__init mxs_add_saif(const struct mxs_saif_data *data, |
36 | const struct mxs_saif_platform_data *pdata) | ||
36 | { | 37 | { |
37 | struct resource res[] = { | 38 | struct resource res[] = { |
38 | { | 39 | { |
@@ -56,5 +57,5 @@ struct platform_device *__init mxs_add_saif(const struct mxs_saif_data *data) | |||
56 | }; | 57 | }; |
57 | 58 | ||
58 | return mxs_add_platform_device("mxs-saif", data->id, res, | 59 | return mxs_add_platform_device("mxs-saif", data->id, res, |
59 | ARRAY_SIZE(res), NULL, 0); | 60 | ARRAY_SIZE(res), pdata, sizeof(*pdata)); |
60 | } | 61 | } |
diff --git a/arch/arm/mach-mxs/include/mach/devices-common.h b/arch/arm/mach-mxs/include/mach/devices-common.h index a8080f44c03d..dc369c1239fc 100644 --- a/arch/arm/mach-mxs/include/mach/devices-common.h +++ b/arch/arm/mach-mxs/include/mach/devices-common.h | |||
@@ -94,6 +94,7 @@ struct platform_device *__init mxs_add_mxs_pwm( | |||
94 | resource_size_t iobase, int id); | 94 | resource_size_t iobase, int id); |
95 | 95 | ||
96 | /* saif */ | 96 | /* saif */ |
97 | #include <sound/saif.h> | ||
97 | struct mxs_saif_data { | 98 | struct mxs_saif_data { |
98 | int id; | 99 | int id; |
99 | resource_size_t iobase; | 100 | resource_size_t iobase; |
@@ -103,4 +104,5 @@ struct mxs_saif_data { | |||
103 | }; | 104 | }; |
104 | 105 | ||
105 | struct platform_device *__init mxs_add_saif( | 106 | struct platform_device *__init mxs_add_saif( |
106 | const struct mxs_saif_data *data); | 107 | const struct mxs_saif_data *data, |
108 | const struct mxs_saif_platform_data *pdata); | ||
diff --git a/arch/arm/mach-mxs/mach-mx28evk.c b/arch/arm/mach-mxs/mach-mx28evk.c index 064ec5abaa55..ac84a10baa14 100644 --- a/arch/arm/mach-mxs/mach-mx28evk.c +++ b/arch/arm/mach-mxs/mach-mx28evk.c | |||
@@ -27,6 +27,7 @@ | |||
27 | 27 | ||
28 | #include <mach/common.h> | 28 | #include <mach/common.h> |
29 | #include <mach/iomux-mx28.h> | 29 | #include <mach/iomux-mx28.h> |
30 | #include <mach/digctl.h> | ||
30 | 31 | ||
31 | #include "devices-mx28.h" | 32 | #include "devices-mx28.h" |
32 | 33 | ||
@@ -421,6 +422,18 @@ static struct gpio mx28evk_lcd_gpios[] = { | |||
421 | { MX28EVK_BL_ENABLE, GPIOF_OUT_INIT_HIGH, "bl-enable" }, | 422 | { MX28EVK_BL_ENABLE, GPIOF_OUT_INIT_HIGH, "bl-enable" }, |
422 | }; | 423 | }; |
423 | 424 | ||
425 | static const struct mxs_saif_platform_data | ||
426 | mx28evk_mxs_saif_pdata[] __initconst = { | ||
427 | /* working on EXTMSTR0 mode (saif0 master, saif1 slave) */ | ||
428 | { | ||
429 | .master_mode = 1, | ||
430 | .master_id = 0, | ||
431 | }, { | ||
432 | .master_mode = 0, | ||
433 | .master_id = 0, | ||
434 | }, | ||
435 | }; | ||
436 | |||
424 | static void __init mx28evk_init(void) | 437 | static void __init mx28evk_init(void) |
425 | { | 438 | { |
426 | int ret; | 439 | int ret; |
@@ -454,8 +467,9 @@ static void __init mx28evk_init(void) | |||
454 | else | 467 | else |
455 | mx28_add_mxsfb(&mx28evk_mxsfb_pdata); | 468 | mx28_add_mxsfb(&mx28evk_mxsfb_pdata); |
456 | 469 | ||
457 | mx28_add_saif(0); | 470 | mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0); |
458 | mx28_add_saif(1); | 471 | mx28_add_saif(0, &mx28evk_mxs_saif_pdata[0]); |
472 | mx28_add_saif(1, &mx28evk_mxs_saif_pdata[1]); | ||
459 | 473 | ||
460 | mx28_add_mxs_i2c(0); | 474 | mx28_add_mxs_i2c(0); |
461 | i2c_register_board_info(0, mxs_i2c0_board_info, | 475 | i2c_register_board_info(0, mxs_i2c0_board_info, |