Hi, >-----Original Message----- >From: linux-omap-owner@xxxxxxxxxxxxxxx >[mailto:linux-omap-owner@xxxxxxxxxxxxxxx] On Behalf Of >Varadarajan, Charulatha >Sent: Friday, August 13, 2010 7:35 PM >To: linux-omap@xxxxxxxxxxxxxxx >Cc: khilman@xxxxxxxxxxxxxxxxxxx; paul@xxxxxxxxx; Cousson, >Benoit; tony@xxxxxxxxxxx; grant.likely@xxxxxxxxxxxx; >dbrownell@xxxxxxxxxxxxxxxxxxxxx; >spi-devel-general@xxxxxxxxxxxxxxxxxxxxx; Nayak, Rajendra; >Basak, Partha; Varadarajan, Charulatha; Raja, Govindraj >Subject: [PATCH 1/5] OMAP2420: McSPI: Add mcspi hwmod > >This patch updates the omap2420 hwmod data with the >McSPI info. > >Signed-off-by: Charulatha V <charu@xxxxxx> >Signed-off-by: Partha Basak <p-basak2@xxxxxx> >Signed-off-by: Govindraj.R <govindraj.raja@xxxxxx> >--- > arch/arm/mach-omap2/omap_hwmod_2420_data.c | 138 >++++++++++++++++++++++++++++ > 1 files changed, 138 insertions(+), 0 deletions(-) > >diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c >b/arch/arm/mach-omap2/omap_hwmod_2420_data.c >index 3cc768e..7d1a0ff 100644 >--- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c >+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c >@@ -15,6 +15,7 @@ > #include <mach/irqs.h> > #include <plat/cpu.h> > #include <plat/dma.h> >+#include <plat/mcspi.h> > > #include "omap_hwmod_common_data.h" > >@@ -33,6 +34,8 @@ static struct omap_hwmod omap2420_mpu_hwmod; > static struct omap_hwmod omap2420_iva_hwmod; > static struct omap_hwmod omap2420_l3_main_hwmod; > static struct omap_hwmod omap2420_l4_core_hwmod; >+static struct omap_hwmod omap2420_mcspi1_hwmod; >+static struct omap_hwmod omap2420_mcspi2_hwmod; > > /* L3 -> L4_CORE interface */ > static struct omap_hwmod_ocp_if omap2420_l3_main__l4_core = { >@@ -72,6 +75,42 @@ static struct omap_hwmod omap2420_l3_main_hwmod = { > > static struct omap_hwmod omap2420_l4_wkup_hwmod; > >+/* L4 CORE -> MCSPI1 interface */ >+static struct omap_hwmod_addr_space omap2420_mcspi1_addr_space[] = { >+ { >+ .pa_start = 0x48098000, >+ .pa_end = 0x480980ff, >+ .flags = ADDR_TYPE_RT, >+ }, >+}; Align all of them to one tab.. >+ >+static struct omap_hwmod_ocp_if omap2420_l4_core__mcspi1 = { >+ .master = &omap2420_l4_core_hwmod, >+ .slave = &omap2420_mcspi1_hwmod, >+ .clk = "mcspi1_ick", >+ .addr = omap2420_mcspi1_addr_space, >+ .addr_cnt = ARRAY_SIZE(omap2420_mcspi1_addr_space), >+ .user = OCP_USER_MPU | OCP_USER_SDMA, >+}; >+ >+/* L4 CORE -> MCSPI2 interface */ >+static struct omap_hwmod_addr_space omap2420_mcspi2_addr_space[] = { >+ { >+ .pa_start = 0x4809a000, >+ .pa_end = 0x4809a0ff, >+ .flags = ADDR_TYPE_RT, >+ }, >+}; >+ Ditto align to one tab >+static struct omap_hwmod_ocp_if omap2420_l4_core__mcspi2 = { >+ .master = &omap2420_l4_core_hwmod, >+ .slave = &omap2420_mcspi2_hwmod, >+ .clk = "mcspi2_ick", >+ .addr = omap2420_mcspi2_addr_space, >+ .addr_cnt = ARRAY_SIZE(omap2420_mcspi2_addr_space), >+ .user = OCP_USER_MPU | OCP_USER_SDMA, >+}; >+ > /* L4_CORE -> L4_WKUP interface */ > static struct omap_hwmod_ocp_if omap2420_l4_core__l4_wkup = { > .master = &omap2420_l4_core_hwmod, >@@ -165,12 +204,111 @@ static struct omap_hwmod omap2420_iva_hwmod = { > .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) > }; > >+/* SPI common */ >+static struct omap_hwmod_class_sysconfig omap2420_mcspi_sysc = { >+ .rev_offs = 0x0000, >+ .sysc_offs = 0x0010, >+ .syss_offs = 0x0014, >+ .sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE | >+ SYSC_HAS_ENAWAKEUP | >SYSC_HAS_SOFTRESET | >+ SYSC_HAS_AUTOIDLE), >+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART), >+ .sysc_fields = &omap_hwmod_sysc_type1, >+}; >+ >+static struct omap_hwmod_class omap2420_mcspi_class = { >+ .name = "mcspi", >+ .sysc = &omap2420_mcspi_sysc, >+}; >+ >+/* SPI1 */ >+static struct omap_hwmod_irq_info omap2420_mcspi1_mpu_irqs[] = { >+ { .irq = INT_24XX_SPI1_IRQ }, /* 65 */ >+}; >+ >+static struct omap_hwmod_dma_info omap2420_mcspi1_sdma_reqs[] = { >+ { .name = "rx0", .dma_req = OMAP24XX_DMA_SPI1_RX0 }, /* 35 */ >+ { .name = "rx1", .dma_req = OMAP24XX_DMA_SPI1_RX1 }, /* 37 */ >+ { .name = "rx2", .dma_req = OMAP24XX_DMA_SPI1_RX2 }, /* 39 */ >+ { .name = "rx3", .dma_req = OMAP24XX_DMA_SPI1_RX3 }, /* 41 */ >+ { .name = "tx0", .dma_req = OMAP24XX_DMA_SPI1_TX0 }, /* 34 */ >+ { .name = "tx1", .dma_req = OMAP24XX_DMA_SPI1_TX1 }, /* 36 */ >+ { .name = "tx2", .dma_req = OMAP24XX_DMA_SPI1_TX2 }, /* 38 */ >+ { .name = "tx3", .dma_req = OMAP24XX_DMA_SPI1_TX3 }, /* 40 */ >+}; >+ >+static struct omap_hwmod_ocp_if *omap2420_mcspi1_slaves[] = { >+ &omap2420_l4_core__mcspi1, >+}; >+ >+static struct omap_hwmod omap2420_mcspi1_hwmod = { >+ .name = "mcspi1_hwmod", >+ .mpu_irqs = omap2420_mcspi1_mpu_irqs, >+ .mpu_irqs_cnt = ARRAY_SIZE(omap2420_mcspi1_mpu_irqs), >+ .sdma_reqs = omap2420_mcspi1_sdma_reqs, >+ .sdma_reqs_cnt = ARRAY_SIZE(omap2420_mcspi1_sdma_reqs), >+ .main_clk = "mcspi1_fck", >+ .prcm = { >+ .omap2 = { >+ .module_offs = CORE_MOD, >+ .prcm_reg_id = 1, >+ .module_bit = OMAP24XX_EN_MCSPI1_SHIFT, >+ .idlest_reg_id = 1, >+ .idlest_idle_bit = OMAP24XX_EN_MCSPI1_SHIFT, >+ }, >+ }, >+ .slaves = omap2420_mcspi1_slaves, >+ .slaves_cnt = ARRAY_SIZE(omap2420_mcspi1_slaves), >+ .class = &omap2420_mcspi_class, >+ .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), >+}; >+ >+/* SPI2 */ >+static struct omap_hwmod_irq_info omap2420_mcspi2_mpu_irqs[] = { >+ { .irq = INT_24XX_SPI2_IRQ }, /* 66 */ >+}; >+ >+static struct omap_hwmod_dma_info omap2420_mcspi2_sdma_reqs[] = { >+ { .name = "rx0", .dma_req = OMAP24XX_DMA_SPI2_RX0 }, /* 43 */ >+ { .name = "rx1", .dma_req = OMAP24XX_DMA_SPI2_RX1 }, /* 45 */ >+ { .name = "tx0", .dma_req = OMAP24XX_DMA_SPI2_TX0 }, /* 42 */ >+ { .name = "tx1", .dma_req = OMAP24XX_DMA_SPI2_TX1 }, /* 44 */ >+}; >+ >+static struct omap_hwmod_ocp_if *omap2420_mcspi2_slaves[] = { >+ &omap2420_l4_core__mcspi2, >+}; >+ >+static struct omap_hwmod omap2420_mcspi2_hwmod = { >+ .name = "mcspi2_hwmod", >+ .mpu_irqs = omap2420_mcspi2_mpu_irqs, >+ .mpu_irqs_cnt = ARRAY_SIZE(omap2420_mcspi2_mpu_irqs), >+ .sdma_reqs = omap2420_mcspi2_sdma_reqs, >+ .sdma_reqs_cnt = ARRAY_SIZE(omap2420_mcspi2_sdma_reqs), >+ .main_clk = "mcspi2_fck", >+ .prcm = { >+ .omap2 = { >+ .module_offs = CORE_MOD, >+ .prcm_reg_id = 1, >+ .module_bit = OMAP24XX_EN_MCSPI2_SHIFT, >+ .idlest_reg_id = 1, >+ .idlest_idle_bit = OMAP24XX_EN_MCSPI2_SHIFT, >+ }, >+ }, >+ .slaves = omap2420_mcspi2_slaves, >+ .slaves_cnt = ARRAY_SIZE(omap2420_mcspi2_slaves), >+ .class = &omap2420_mcspi_class, >+ .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), >+}; >+ > static __initdata struct omap_hwmod *omap2420_hwmods[] = { > &omap2420_l3_main_hwmod, > &omap2420_l4_core_hwmod, > &omap2420_l4_wkup_hwmod, > &omap2420_mpu_hwmod, > &omap2420_iva_hwmod, >+ &omap2420_mcspi1_hwmod, >+ &omap2420_mcspi2_hwmod, > NULL, > }; > >-- >1.6.3.3 > >-- >To unsubscribe from this list: send the line "unsubscribe >linux-omap" in >the body of a message to majordomo@xxxxxxxxxxxxxxx >More majordomo info at http://vger.kernel.org/majordomo-info.html >-- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html