From: Vaibhav Bedia <vaibhav.bedia@ti.com> To: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, tony@atomide.com, khilman@deeprootsystems.com Cc: Vaibhav Bedia <vaibhav.bedia@ti.com>, Santosh Shilimkar <santosh.shilimkar@ti.com>, Benoit Cousson <b-cousson@ti.com>, Paul Walmsley <paul@pwsan.com>, Vaibhav Hiremath <hvaibhav@ti.com> Subject: [RFC v2 14/18] ARM: OMAP2+: AM33XX: control: Add some control module registers and APIs Date: Mon, 31 Dec 2012 18:37:07 +0530 [thread overview] Message-ID: <1356959231-17335-15-git-send-email-vaibhav.bedia@ti.com> (raw) In-Reply-To: <1356959231-17335-1-git-send-email-vaibhav.bedia@ti.com> Add minimal APIs for writing to the IPC and the M3_TXEV registers in the Control module. These will be used in a subsequent patch which adds suspend-resume support for AM33XX. Signed-off-by: Vaibhav Bedia <vaibhav.bedia@ti.com> Cc: Tony Lingren <tony@atomide.com> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com> Cc: Benoit Cousson <b-cousson@ti.com> Cc: Paul Walmsley <paul@pwsan.com> Cc: Kevin Hilman <khilman@deeprootsystems.com> Cc: Vaibhav Hiremath <hvaibhav@ti.com> --- v1->v2: This a new patch in the series to isolate the control module accesses as pointed out by Kevin Hilman. arch/arm/mach-omap2/control.c | 20 ++++++++++++++++++++ arch/arm/mach-omap2/control.h | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/control.c b/arch/arm/mach-omap2/control.c index 2adb268..c5d54ae 100644 --- a/arch/arm/mach-omap2/control.c +++ b/arch/arm/mach-omap2/control.c @@ -604,3 +604,23 @@ int omap3_ctrl_save_padconf(void) } #endif /* CONFIG_ARCH_OMAP3 && CONFIG_PM */ + +#if defined(CONFIG_SOC_AM33XX) && defined(CONFIG_PM) +void am33xx_txev_eoi(void) +{ + omap_ctrl_writel(AM33XX_M3_TXEV_ACK, AM33XX_CONTROL_M3_TXEV_EOI); +} + +void am33xx_txev_enable(void) +{ + omap_ctrl_writel(AM33XX_M3_TXEV_ENABLE, AM33XX_CONTROL_M3_TXEV_EOI); +} + +void am33xx_wkup_m3_ipc_cmd(struct am33xx_ipc_data *data) +{ + omap_ctrl_writel(data->resume_addr, AM33XX_CONTROL_IPC_MSG_REG0); + omap_ctrl_writel(data->sleep_mode, AM33XX_CONTROL_IPC_MSG_REG1); + omap_ctrl_writel(data->param1, AM33XX_CONTROL_IPC_MSG_REG2); + omap_ctrl_writel(data->param2, AM33XX_CONTROL_IPC_MSG_REG3); +} +#endif /* CONFIG_SOC_AM33XX && CONFIG_PM */ diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-omap2/control.h index 3d944d3..4b05eb9 100644 --- a/arch/arm/mach-omap2/control.h +++ b/arch/arm/mach-omap2/control.h @@ -358,6 +358,37 @@ #define AM33XX_CONTROL_STATUS_SYSBOOT1_WIDTH 0x2 #define AM33XX_CONTROL_STATUS_SYSBOOT1_MASK (0x3 << 22) +#define AM33XX_DDR_IO_CTRL 0x0E04 +#define AM33XX_VTP0_CTRL_REG 0x0E0C + +/* AM33XX VTP0_CTRL_REG bits */ +#define AM33XX_VTP_CTRL_START_EN (1 << 0) +#define AM33XX_VTP_CTRL_LOCK_EN (1 << 4) +#define AM33XX_VTP_CTRL_READY (1 << 5) +#define AM33XX_VTP_CTRL_ENABLE (1 << 6) + +/* AM33XX M3_TXEV_EOI register */ +#define AM33XX_CONTROL_M3_TXEV_EOI 0x1324 + +#define AM33XX_M3_TXEV_ACK (0x1 << 0) +#define AM33XX_M3_TXEV_ENABLE (0x0 << 0) + +/* AM33XX IPC message registers */ +#define AM33XX_CONTROL_IPC_MSG_REG0 0x1328 +#define AM33XX_CONTROL_IPC_MSG_REG1 0x132C +#define AM33XX_CONTROL_IPC_MSG_REG2 0x1330 +#define AM33XX_CONTROL_IPC_MSG_REG3 0x1334 +#define AM33XX_CONTROL_IPC_MSG_REG4 0x1338 +#define AM33XX_CONTROL_IPC_MSG_REG5 0x133C +#define AM33XX_CONTROL_IPC_MSG_REG6 0x1340 +#define AM33XX_CONTROL_IPC_MSG_REG7 0x1344 + +#define AM33XX_DDR_CMD0_IOCTRL 0x1404 +#define AM33XX_DDR_CMD1_IOCTRL 0x1408 +#define AM33XX_DDR_CMD2_IOCTRL 0x140C +#define AM33XX_DDR_DATA0_IOCTRL 0x1440 +#define AM33XX_DDR_DATA1_IOCTRL 0x1444 + /* CONTROL OMAP STATUS register to identify OMAP3 features */ #define OMAP3_CONTROL_OMAP_STATUS 0x044c @@ -417,6 +448,16 @@ extern void omap3630_ctrl_disable_rta(void); extern int omap3_ctrl_save_padconf(void); extern void omap2_set_globals_control(void __iomem *ctrl, void __iomem *ctrl_pad); +struct am33xx_ipc_data { + u32 resume_addr; + u32 param1; + u32 param2; + u32 sleep_mode; +}; +extern void am33xx_wkup_m3_ipc_cmd(struct am33xx_ipc_data *data); +extern void am33xx_txev_eoi(void); +extern void am33xx_txev_enable(void); + #else #define omap_ctrl_base_get() 0 #define omap_ctrl_readb(x) 0 -- 1.7.0.4
WARNING: multiple messages have this Message-ID (diff)
From: vaibhav.bedia@ti.com (Vaibhav Bedia) To: linux-arm-kernel@lists.infradead.org Subject: [RFC v2 14/18] ARM: OMAP2+: AM33XX: control: Add some control module registers and APIs Date: Mon, 31 Dec 2012 18:37:07 +0530 [thread overview] Message-ID: <1356959231-17335-15-git-send-email-vaibhav.bedia@ti.com> (raw) In-Reply-To: <1356959231-17335-1-git-send-email-vaibhav.bedia@ti.com> Add minimal APIs for writing to the IPC and the M3_TXEV registers in the Control module. These will be used in a subsequent patch which adds suspend-resume support for AM33XX. Signed-off-by: Vaibhav Bedia <vaibhav.bedia@ti.com> Cc: Tony Lingren <tony@atomide.com> Cc: Santosh Shilimkar <santosh.shilimkar@ti.com> Cc: Benoit Cousson <b-cousson@ti.com> Cc: Paul Walmsley <paul@pwsan.com> Cc: Kevin Hilman <khilman@deeprootsystems.com> Cc: Vaibhav Hiremath <hvaibhav@ti.com> --- v1->v2: This a new patch in the series to isolate the control module accesses as pointed out by Kevin Hilman. arch/arm/mach-omap2/control.c | 20 ++++++++++++++++++++ arch/arm/mach-omap2/control.h | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/control.c b/arch/arm/mach-omap2/control.c index 2adb268..c5d54ae 100644 --- a/arch/arm/mach-omap2/control.c +++ b/arch/arm/mach-omap2/control.c @@ -604,3 +604,23 @@ int omap3_ctrl_save_padconf(void) } #endif /* CONFIG_ARCH_OMAP3 && CONFIG_PM */ + +#if defined(CONFIG_SOC_AM33XX) && defined(CONFIG_PM) +void am33xx_txev_eoi(void) +{ + omap_ctrl_writel(AM33XX_M3_TXEV_ACK, AM33XX_CONTROL_M3_TXEV_EOI); +} + +void am33xx_txev_enable(void) +{ + omap_ctrl_writel(AM33XX_M3_TXEV_ENABLE, AM33XX_CONTROL_M3_TXEV_EOI); +} + +void am33xx_wkup_m3_ipc_cmd(struct am33xx_ipc_data *data) +{ + omap_ctrl_writel(data->resume_addr, AM33XX_CONTROL_IPC_MSG_REG0); + omap_ctrl_writel(data->sleep_mode, AM33XX_CONTROL_IPC_MSG_REG1); + omap_ctrl_writel(data->param1, AM33XX_CONTROL_IPC_MSG_REG2); + omap_ctrl_writel(data->param2, AM33XX_CONTROL_IPC_MSG_REG3); +} +#endif /* CONFIG_SOC_AM33XX && CONFIG_PM */ diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-omap2/control.h index 3d944d3..4b05eb9 100644 --- a/arch/arm/mach-omap2/control.h +++ b/arch/arm/mach-omap2/control.h @@ -358,6 +358,37 @@ #define AM33XX_CONTROL_STATUS_SYSBOOT1_WIDTH 0x2 #define AM33XX_CONTROL_STATUS_SYSBOOT1_MASK (0x3 << 22) +#define AM33XX_DDR_IO_CTRL 0x0E04 +#define AM33XX_VTP0_CTRL_REG 0x0E0C + +/* AM33XX VTP0_CTRL_REG bits */ +#define AM33XX_VTP_CTRL_START_EN (1 << 0) +#define AM33XX_VTP_CTRL_LOCK_EN (1 << 4) +#define AM33XX_VTP_CTRL_READY (1 << 5) +#define AM33XX_VTP_CTRL_ENABLE (1 << 6) + +/* AM33XX M3_TXEV_EOI register */ +#define AM33XX_CONTROL_M3_TXEV_EOI 0x1324 + +#define AM33XX_M3_TXEV_ACK (0x1 << 0) +#define AM33XX_M3_TXEV_ENABLE (0x0 << 0) + +/* AM33XX IPC message registers */ +#define AM33XX_CONTROL_IPC_MSG_REG0 0x1328 +#define AM33XX_CONTROL_IPC_MSG_REG1 0x132C +#define AM33XX_CONTROL_IPC_MSG_REG2 0x1330 +#define AM33XX_CONTROL_IPC_MSG_REG3 0x1334 +#define AM33XX_CONTROL_IPC_MSG_REG4 0x1338 +#define AM33XX_CONTROL_IPC_MSG_REG5 0x133C +#define AM33XX_CONTROL_IPC_MSG_REG6 0x1340 +#define AM33XX_CONTROL_IPC_MSG_REG7 0x1344 + +#define AM33XX_DDR_CMD0_IOCTRL 0x1404 +#define AM33XX_DDR_CMD1_IOCTRL 0x1408 +#define AM33XX_DDR_CMD2_IOCTRL 0x140C +#define AM33XX_DDR_DATA0_IOCTRL 0x1440 +#define AM33XX_DDR_DATA1_IOCTRL 0x1444 + /* CONTROL OMAP STATUS register to identify OMAP3 features */ #define OMAP3_CONTROL_OMAP_STATUS 0x044c @@ -417,6 +448,16 @@ extern void omap3630_ctrl_disable_rta(void); extern int omap3_ctrl_save_padconf(void); extern void omap2_set_globals_control(void __iomem *ctrl, void __iomem *ctrl_pad); +struct am33xx_ipc_data { + u32 resume_addr; + u32 param1; + u32 param2; + u32 sleep_mode; +}; +extern void am33xx_wkup_m3_ipc_cmd(struct am33xx_ipc_data *data); +extern void am33xx_txev_eoi(void); +extern void am33xx_txev_enable(void); + #else #define omap_ctrl_base_get() 0 #define omap_ctrl_readb(x) 0 -- 1.7.0.4
next prev parent reply other threads:[~2012-12-31 13:08 UTC|newest] Thread overview: 148+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-12-31 13:06 [RFC v2 00/18] ARM: OMAP2+: AM33XX: Add suspend-resume support Vaibhav Bedia 2012-12-31 13:06 ` Vaibhav Bedia 2012-12-31 13:06 ` [RFC v2 01/18] mailbox: OMAP2+: Add support for AM33XX Vaibhav Bedia 2012-12-31 13:06 ` Vaibhav Bedia 2013-01-01 18:25 ` Tony Lindgren 2013-01-01 18:25 ` Tony Lindgren 2013-01-02 11:09 ` Bedia, Vaibhav 2013-01-02 11:09 ` Bedia, Vaibhav 2013-01-08 13:53 ` Santosh Shilimkar 2013-01-08 13:53 ` Santosh Shilimkar 2013-01-09 5:16 ` Bedia, Vaibhav 2013-01-09 5:16 ` Bedia, Vaibhav 2012-12-31 13:06 ` [RFC v2 02/18] mailbox: Add an API for flushing the FIFO Vaibhav Bedia 2012-12-31 13:06 ` Vaibhav Bedia 2013-01-08 13:56 ` Santosh Shilimkar 2013-01-08 13:56 ` Santosh Shilimkar 2013-01-09 5:16 ` Bedia, Vaibhav 2013-01-09 5:16 ` Bedia, Vaibhav 2012-12-31 13:06 ` [RFC v2 03/18] memory: emif: Move EMIF related header file to include/linux/ Vaibhav Bedia 2012-12-31 13:06 ` Vaibhav Bedia 2013-01-08 14:04 ` Santosh Shilimkar 2013-01-08 14:04 ` Santosh Shilimkar 2013-01-09 5:31 ` Bedia, Vaibhav 2013-01-09 5:31 ` Bedia, Vaibhav 2012-12-31 13:06 ` [RFC v2 04/18] ARM: OMAP2+: AM33XX: CM: Get rid of unncessary header inclusions Vaibhav Bedia 2012-12-31 13:06 ` Vaibhav Bedia 2013-01-08 15:00 ` Santosh Shilimkar 2013-01-08 15:00 ` Santosh Shilimkar 2012-12-31 13:06 ` [RFC v2 05/18] ARM: OMAP2+: AM33XX: CM/PRM: Use __ASSEMBLER__ macros in header files Vaibhav Bedia 2012-12-31 13:06 ` Vaibhav Bedia 2013-01-08 15:01 ` Santosh Shilimkar 2013-01-08 15:01 ` Santosh Shilimkar 2013-01-09 5:31 ` Bedia, Vaibhav 2013-01-09 5:31 ` Bedia, Vaibhav 2012-12-31 13:06 ` [RFC v2 06/18] ARM: OMAP2+: AM33XX: hwmod: Register OCMC RAM hwmod Vaibhav Bedia 2012-12-31 13:06 ` Vaibhav Bedia 2013-01-08 15:04 ` Santosh Shilimkar 2013-01-08 15:04 ` Santosh Shilimkar 2012-12-31 13:07 ` [RFC v2 07/18] ARM: OMAP2+: AM33XX: hwmod: Update TPTC0 hwmod with the right flags Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2013-01-08 15:05 ` Santosh Shilimkar 2013-01-08 15:05 ` Santosh Shilimkar 2013-01-09 6:02 ` Bedia, Vaibhav 2013-01-09 6:02 ` Bedia, Vaibhav 2013-02-11 23:33 ` Kevin Hilman 2013-02-11 23:33 ` Kevin Hilman 2013-02-13 10:56 ` Bedia, Vaibhav 2013-02-13 10:56 ` Bedia, Vaibhav 2012-12-31 13:07 ` [RFC v2 08/18] ARM: OMAP2+: AM33XX: hwmod: Fixup cpgmac0 hwmod entry Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2013-01-08 15:08 ` Santosh Shilimkar 2013-01-08 15:08 ` Santosh Shilimkar 2012-12-31 13:07 ` [RFC v2 09/18] ARM: OMAP2+: AM33XX: hwmod: Update the WKUP-M3 hwmod with reset status bit Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2013-01-08 15:09 ` Santosh Shilimkar 2013-01-08 15:09 ` Santosh Shilimkar 2012-12-31 13:07 ` [RFC v2 10/18] ARM: OMAP2+: AM33XX: Update the hardreset API Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2013-01-08 15:10 ` Santosh Shilimkar 2013-01-08 15:10 ` Santosh Shilimkar 2012-12-31 13:07 ` [RFC v2 11/18] ARM: DTS: AM33XX: Add nodes for OCMC RAM and WKUP-M3 Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2013-01-08 15:12 ` Santosh Shilimkar 2013-01-08 15:12 ` Santosh Shilimkar 2012-12-31 13:07 ` [RFC v2 12/18] ARM: OMAP2+: timer: Add suspend-resume callbacks for clockevent device Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2013-01-08 15:15 ` Santosh Shilimkar 2013-01-08 15:15 ` Santosh Shilimkar 2013-01-11 4:37 ` Bedia, Vaibhav 2013-01-11 4:37 ` Bedia, Vaibhav 2013-01-17 18:45 ` Jon Hunter 2013-01-17 18:45 ` Jon Hunter 2013-01-18 5:25 ` Santosh Shilimkar 2013-01-18 5:25 ` Santosh Shilimkar 2013-01-21 7:22 ` Bedia, Vaibhav 2013-01-21 7:22 ` Bedia, Vaibhav 2013-01-30 17:46 ` Jon Hunter 2013-01-30 17:46 ` Jon Hunter 2013-01-31 11:17 ` Bedia, Vaibhav 2013-01-31 11:17 ` Bedia, Vaibhav 2013-01-17 18:40 ` Jon Hunter 2013-01-17 18:40 ` Jon Hunter 2013-01-21 7:22 ` Bedia, Vaibhav 2013-01-21 7:22 ` Bedia, Vaibhav 2012-12-31 13:07 ` [RFC v2 13/18] ARM: OMAP2+: AM33XX: timer: Interchance clkevt and clksrc timers Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2013-01-08 15:17 ` Santosh Shilimkar 2013-01-08 15:17 ` Santosh Shilimkar 2013-01-09 5:31 ` Bedia, Vaibhav 2013-01-09 5:31 ` Bedia, Vaibhav 2013-01-17 19:09 ` Jon Hunter 2013-01-17 19:09 ` Jon Hunter 2013-01-24 22:30 ` Jon Hunter 2013-01-24 22:30 ` Jon Hunter 2013-01-30 17:48 ` Jon Hunter 2013-01-30 17:48 ` Jon Hunter 2013-01-30 17:49 ` Jon Hunter 2013-01-30 17:49 ` Jon Hunter 2013-01-31 11:29 ` Bedia, Vaibhav 2013-01-31 11:29 ` Bedia, Vaibhav 2012-12-31 13:07 ` Vaibhav Bedia [this message] 2012-12-31 13:07 ` [RFC v2 14/18] ARM: OMAP2+: AM33XX: control: Add some control module registers and APIs Vaibhav Bedia 2013-01-08 15:21 ` Santosh Shilimkar 2013-01-08 15:21 ` Santosh Shilimkar 2013-01-09 5:38 ` Bedia, Vaibhav 2013-01-09 5:38 ` Bedia, Vaibhav 2013-01-09 7:31 ` Santosh Shilimkar 2013-01-09 7:31 ` Santosh Shilimkar 2013-01-09 9:37 ` Bedia, Vaibhav 2013-01-09 9:37 ` Bedia, Vaibhav 2013-01-09 9:53 ` Santosh Shilimkar 2013-01-09 9:53 ` Santosh Shilimkar 2012-12-31 13:07 ` [RFC v2 15/18] ARM: OMAP2+: AM33XX: Add assembly code for PM operations Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2012-12-31 13:07 ` [RFC v2 16/18] ARM: OMAP2+: AM33XX: Basic suspend resume support Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2013-01-17 14:27 ` Peter Korsgaard 2013-01-17 14:27 ` Peter Korsgaard 2013-01-21 10:37 ` Bedia, Vaibhav 2013-01-21 10:37 ` Bedia, Vaibhav 2013-01-22 12:50 ` Peter Korsgaard 2013-01-22 12:50 ` Peter Korsgaard 2013-02-12 1:27 ` Kevin Hilman 2013-02-12 1:27 ` Kevin Hilman 2013-02-13 13:43 ` Bedia, Vaibhav 2013-02-13 13:43 ` Bedia, Vaibhav 2013-02-18 16:11 ` Kevin Hilman 2013-02-18 16:11 ` Kevin Hilman 2013-02-20 9:21 ` Bedia, Vaibhav 2013-02-20 9:21 ` Bedia, Vaibhav 2013-02-20 14:30 ` Kevin Hilman 2013-02-20 14:30 ` Kevin Hilman 2013-04-03 11:52 ` Daniel Mack 2013-04-03 11:52 ` Daniel Mack 2013-04-04 8:47 ` Bedia, Vaibhav 2013-04-04 8:47 ` Bedia, Vaibhav 2012-12-31 13:07 ` [RFC v2 17/18] ARM: OMAP2+: AM33XX: Select Mailbox when PM is enabled Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2013-01-08 15:22 ` Santosh Shilimkar 2013-01-08 15:22 ` Santosh Shilimkar 2013-01-09 5:38 ` Bedia, Vaibhav 2013-01-09 5:38 ` Bedia, Vaibhav 2012-12-31 13:07 ` [RFC v2 18/18] ARM: OMAP2+: AM33XX: Hookup AM33XX PM code into OMAP builds Vaibhav Bedia 2012-12-31 13:07 ` Vaibhav Bedia 2013-01-08 15:31 ` [RFC v2 00/18] ARM: OMAP2+: AM33XX: Add suspend-resume support Santosh Shilimkar 2013-01-08 15:31 ` Santosh Shilimkar 2013-01-09 5:38 ` Bedia, Vaibhav 2013-01-09 5:38 ` Bedia, Vaibhav
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1356959231-17335-15-git-send-email-vaibhav.bedia@ti.com \ --to=vaibhav.bedia@ti.com \ --cc=b-cousson@ti.com \ --cc=hvaibhav@ti.com \ --cc=khilman@deeprootsystems.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-omap@vger.kernel.org \ --cc=paul@pwsan.com \ --cc=santosh.shilimkar@ti.com \ --cc=tony@atomide.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.