|
@@ -673,3 +673,79 @@ static struct resource fsi_resources[] = {
|
|
[0] = {
|
|
[0] = {
|
|
.name = "FSI",
|
|
.name = "FSI",
|
|
.start = 0xFE3C0000,
|
|
.start = 0xFE3C0000,
|
|
|
|
+ .end = 0xFE3C0400 - 1,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [1] = {
|
|
|
|
+ .start = IRQ_FSI,
|
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device fsi_device = {
|
|
|
|
+ .name = "sh_fsi2",
|
|
|
|
+ .id = -1,
|
|
|
|
+ .num_resources = ARRAY_SIZE(fsi_resources),
|
|
|
|
+ .resource = fsi_resources,
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &fsi_info,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct asoc_simple_dai_init_info fsi2_ak4643_init_info = {
|
|
|
|
+ .fmt = SND_SOC_DAIFMT_LEFT_J,
|
|
|
|
+ .codec_daifmt = SND_SOC_DAIFMT_CBM_CFM,
|
|
|
|
+ .cpu_daifmt = SND_SOC_DAIFMT_CBS_CFS,
|
|
|
|
+ .sysclk = 11289600,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct asoc_simple_card_info fsi2_ak4643_info = {
|
|
|
|
+ .name = "AK4643",
|
|
|
|
+ .card = "FSI2A-AK4643",
|
|
|
|
+ .cpu_dai = "fsia-dai",
|
|
|
|
+ .codec = "ak4642-codec.0-0013",
|
|
|
|
+ .platform = "sh_fsi2",
|
|
|
|
+ .codec_dai = "ak4642-hifi",
|
|
|
|
+ .init = &fsi2_ak4643_init_info,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device fsi_ak4643_device = {
|
|
|
|
+ .name = "asoc-simple-card",
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &fsi2_ak4643_info,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* LCDC1 */
|
|
|
|
+static long ap4evb_clk_optimize(unsigned long target, unsigned long *best_freq,
|
|
|
|
+ unsigned long *parent_freq);
|
|
|
|
+
|
|
|
|
+static struct sh_mobile_hdmi_info hdmi_info = {
|
|
|
|
+ .flags = HDMI_SND_SRC_SPDIF,
|
|
|
|
+ .clk_optimize_parent = ap4evb_clk_optimize,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct resource hdmi_resources[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .name = "HDMI",
|
|
|
|
+ .start = 0xe6be0000,
|
|
|
|
+ .end = 0xe6be00ff,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+ [1] = {
|
|
|
|
+ /* There's also an HDMI interrupt on INTCS @ 0x18e0 */
|
|
|
|
+ .start = evt2irq(0x17e0),
|
|
|
|
+ .flags = IORESOURCE_IRQ,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device hdmi_device = {
|
|
|
|
+ .name = "sh-mobile-hdmi",
|
|
|
|
+ .num_resources = ARRAY_SIZE(hdmi_resources),
|
|
|
|
+ .resource = hdmi_resources,
|
|
|
|
+ .id = -1,
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &hdmi_info,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|