LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock
@ 2015-03-09  3:56 Wenyou Yang
  2015-03-09  3:57 ` [PATCH v2.0 1/2] pm: at91: add the PM initialization for the sama5d3 and sama5d4 Wenyou Yang
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Wenyou Yang @ 2015-03-09  3:56 UTC (permalink / raw)
  To: nicolas.ferre, linux
  Cc: linux-arm-kernel, linux-kernel, alexandre.belloni,
	sylvain.rochet, peda, sergei.shtylyov, linux, wenyou.yang

Hi,

The patch series purpose is to disable the DDR controller's clock and DDR
system clock during the suspending to achieve the lower power consumption.

It is based on the branch, at91-4.0-fixes
git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91.git
	+ [PATCH] ARM: at91: Add pm support for sama5d3 and sama5d4

Change log for v2.0
 - rebase.

Wenyou Yang (2):
  pm: at91: add the PM initialization for the sama5d3 and sama5d4
  pm: at91: add support to disable/enable the DDR clock

 arch/arm/mach-at91/generic.h              |    4 ++
 arch/arm/mach-at91/include/mach/sama5d3.h |    1 +
 arch/arm/mach-at91/include/mach/sama5d4.h |    5 ++
 arch/arm/mach-at91/pm.c                   |   25 +++++++++
 arch/arm/mach-at91/pm.h                   |    9 ++++
 arch/arm/mach-at91/pm_suspend.S           |   83 +++++++++++++++++++++++++++++
 arch/arm/mach-at91/sama5.c                |    8 ++-
 include/linux/clk/at91_pmc.h              |    1 +
 8 files changed, 135 insertions(+), 1 deletion(-)

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2.0 1/2] pm: at91: add the PM initialization for the sama5d3 and sama5d4
  2015-03-09  3:56 [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock Wenyou Yang
@ 2015-03-09  3:57 ` Wenyou Yang
  2015-03-16 10:21   ` Sylvain Rochet
  2015-03-09  3:57 ` [PATCH v2.0 2/2] pm: at91: add support to disable/enable the DDR clock Wenyou Yang
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Wenyou Yang @ 2015-03-09  3:57 UTC (permalink / raw)
  To: nicolas.ferre, linux
  Cc: linux-arm-kernel, linux-kernel, alexandre.belloni,
	sylvain.rochet, peda, sergei.shtylyov, linux, wenyou.yang

To get the mpddrc peripheral id from the PM initialization,
which will be used to disable mpddrc'c clock during suspending.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
---
 arch/arm/mach-at91/generic.h              |    4 ++++
 arch/arm/mach-at91/include/mach/sama5d3.h |    1 +
 arch/arm/mach-at91/include/mach/sama5d4.h |    5 +++++
 arch/arm/mach-at91/pm.c                   |   21 +++++++++++++++++++++
 arch/arm/mach-at91/sama5.c                |    8 +++++++-
 5 files changed, 38 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index 583369f..e12f6a6 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -34,11 +34,15 @@ extern void __init at91rm9200_pm_init(void);
 extern void __init at91sam9260_pm_init(void);
 extern void __init at91sam9g45_pm_init(void);
 extern void __init at91sam9x5_pm_init(void);
+extern void __init sam5d3_pm_init(void);
+extern void __init sam5d4_pm_init(void);
 #else
 static inline void __init at91rm9200_pm_init(void) { }
 static inline void __init at91sam9260_pm_init(void) { }
 static inline void __init at91sam9g45_pm_init(void) { }
 static inline void __init at91sam9x5_pm_init(void) { }
+static void __init sam5d3_pm_init(void) {}
+static void __init sam5d4_pm_init(void) {}
 #endif
 
 #endif /* _AT91_GENERIC_H */
diff --git a/arch/arm/mach-at91/include/mach/sama5d3.h b/arch/arm/mach-at91/include/mach/sama5d3.h
index 25613d8..5a383d8 100644
--- a/arch/arm/mach-at91/include/mach/sama5d3.h
+++ b/arch/arm/mach-at91/include/mach/sama5d3.h
@@ -63,6 +63,7 @@
 #define SAMA5D3_ID_TDES		44	/* Triple Data Encryption Standard */
 #define SAMA5D3_ID_TRNG		45	/* True Random Generator Number */
 #define SAMA5D3_ID_IRQ0		47	/* Advanced Interrupt Controller (IRQ0) */
+#define SAMA5D3_ID_MPDDRC	49	/* MPDDR controller */
 
 /*
  * User Peripheral physical base addresses.
diff --git a/arch/arm/mach-at91/include/mach/sama5d4.h b/arch/arm/mach-at91/include/mach/sama5d4.h
index f256a45..e45f1b8 100644
--- a/arch/arm/mach-at91/include/mach/sama5d4.h
+++ b/arch/arm/mach-at91/include/mach/sama5d4.h
@@ -14,6 +14,11 @@
 #define SAMA5D4_H
 
 /*
+ * Peripheral identifiers/interrupts.
+ */
+#define SAMA5D4_ID_MPDDRC	16	/* MPDDR controller */
+
+/*
  * User Peripheral physical base addresses.
  */
 #define SAMA5D4_BASE_USART3	0xfc00c000 /* (USART3 non-secure) Base Address */
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index ac947cd..e162bdf 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -41,6 +41,8 @@
 static struct {
 	unsigned long uhp_udp_mask;
 	int memctrl;
+	unsigned int ddrc_pid;
+	bool is_sama5d4;
 } at91_pm_data;
 
 void __iomem *at91_ramc_base[2];
@@ -350,3 +352,22 @@ void __init at91sam9x5_pm_init(void)
 	at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
 	return at91_pm_init();
 }
+
+void __init sam5d3_pm_init(void)
+{
+	at91_dt_ramc();
+	at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP;
+	at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
+	at91_pm_data.ddrc_pid = SAMA5D3_ID_MPDDRC;
+	return at91_pm_init();
+}
+
+void __init sam5d4_pm_init(void)
+{
+	at91_dt_ramc();
+	at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP;
+	at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
+	at91_pm_data.ddrc_pid = SAMA5D4_ID_MPDDRC;
+	at91_pm_data.is_sama5d4 = true;
+	return at91_pm_init();
+}
diff --git a/arch/arm/mach-at91/sama5.c b/arch/arm/mach-at91/sama5.c
index 03dcb44..f0641ba 100644
--- a/arch/arm/mach-at91/sama5.c
+++ b/arch/arm/mach-at91/sama5.c
@@ -102,10 +102,16 @@ static const char *sama5_alt_dt_board_compat[] __initconst = {
 	NULL
 };
 
+static void __init sama5d4_dt_device_init(void)
+{
+	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+	sam5d4_pm_init();
+}
+
 DT_MACHINE_START(sama5_alt_dt, "Atmel SAMA5")
 	/* Maintainer: Atmel */
 	.map_io		= sama5_alt_map_io,
-	.init_machine	= sama5_dt_device_init,
+	.init_machine	= sama5d4_dt_device_init,
 	.dt_compat	= sama5_alt_dt_board_compat,
 	.l2c_aux_mask	= ~0UL,
 MACHINE_END
-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2.0 2/2] pm: at91: add support to disable/enable the DDR clock
  2015-03-09  3:56 [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock Wenyou Yang
  2015-03-09  3:57 ` [PATCH v2.0 1/2] pm: at91: add the PM initialization for the sama5d3 and sama5d4 Wenyou Yang
@ 2015-03-09  3:57 ` Wenyou Yang
  2015-03-12 18:59 ` [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock Sylvain Rochet
  2015-03-13 13:43 ` Nicolas Ferre
  3 siblings, 0 replies; 7+ messages in thread
From: Wenyou Yang @ 2015-03-09  3:57 UTC (permalink / raw)
  To: nicolas.ferre, linux
  Cc: linux-arm-kernel, linux-kernel, alexandre.belloni,
	sylvain.rochet, peda, sergei.shtylyov, linux, wenyou.yang

To get the lower power consumption, disable the MPDDR controller's clock
and the DDR system clock before going to suspend, enable these clocks
after resuming.

For the SAM5D4, postpone disabling the clocks, instead of the DDR entering
the self-fresh mode immediately.

Signed-off-by: Wenyou Yang <wenyou.yang@atmel.com>
---
 arch/arm/mach-at91/pm.c         |    4 ++
 arch/arm/mach-at91/pm.h         |    9 +++++
 arch/arm/mach-at91/pm_suspend.S |   83 +++++++++++++++++++++++++++++++++++++++
 include/linux/clk/at91_pmc.h    |    1 +
 4 files changed, 97 insertions(+)

diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index e162bdf..0b15ede 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -136,6 +136,10 @@ static void at91_pm_suspend(suspend_state_t state)
 	pm_data |= (state == PM_SUSPEND_MEM) ?
 				AT91_PM_MODE(AT91_PM_SLOW_CLOCK) : 0;
 
+	pm_data |= AT91_PM_DDRC_PID(at91_pm_data.ddrc_pid);
+	pm_data |= at91_pm_data.is_sama5d4 ?
+			AT91_PM_IS_SAMA5D4(AT91_PM_SAMA5D4_BIT) : 0;
+
 	flush_cache_all();
 	outer_disable();
 
diff --git a/arch/arm/mach-at91/pm.h b/arch/arm/mach-at91/pm.h
index dcacfa1..b9183e3 100644
--- a/arch/arm/mach-at91/pm.h
+++ b/arch/arm/mach-at91/pm.h
@@ -23,6 +23,15 @@
 
 #define	AT91_PM_SLOW_CLOCK	0x01
 
+#define	AT91_PM_DDRC_PID_MASK	0xff
+#define	AT91_PM_DDRC_PID_OFFSET	8
+#define	AT91_PM_DDRC_PID(x)	(((x) & AT91_PM_DDRC_PID_MASK) << AT91_PM_DDRC_PID_OFFSET)
+
+#define	AT91_PM_SAMA5D4_MASK	0x01
+#define	AT91_PM_SAMA5D4_OFFSET	24
+#define	AT91_PM_IS_SAMA5D4(x)	(((x) & AT91_PM_SAMA5D4_MASK) << AT91_PM_SAMA5D4_OFFSET)
+#define	AT91_PM_SAMA5D4_BIT	0x01
+
 /*
  * The AT91RM9200 goes into self-refresh mode with this command, and will
  * terminate self-refresh automatically on the next SDRAM access.
diff --git a/arch/arm/mach-at91/pm_suspend.S b/arch/arm/mach-at91/pm_suspend.S
index 95c3404..6c3e533 100644
--- a/arch/arm/mach-at91/pm_suspend.S
+++ b/arch/arm/mach-at91/pm_suspend.S
@@ -20,6 +20,9 @@
 #define	SRAMC_SELF_FRESH_ACTIVE		0x01
 #define	SRAMC_SELF_FRESH_EXIT		0x00
 
+#define	DDR_CLOCK_ENABLE		0x01
+#define	DDR_CLOCK_DISABLE		0x00
+
 pmc	.req	r0
 tmp1	.req	r4
 tmp2	.req	r5
@@ -108,10 +111,28 @@ ENTRY(at91_pm_suspend_in_sram)
 	and	r0, r0, #AT91_PM_MODE_MASK
 	str	r0, .pm_mode
 
+	lsr	r0, r3, #AT91_PM_DDRC_PID_OFFSET
+	and	r0, r0, #AT91_PM_DDRC_PID_MASK
+	str	r0, .ddrc_pid
+
+	lsr	r0, r3, #AT91_PM_SAMA5D4_MASK
+	and	r0, r0, #AT91_PM_SAMA5D4_OFFSET
+	str	r0, .sama5d4_bit
+
 	/* Active the self-refresh mode */
 	mov	r0, #SRAMC_SELF_FRESH_ACTIVE
 	bl	at91_sramc_self_refresh
 
+	/* If the cpu isn't sama5d4, disable the ddr clock here */
+	ldr	r0, .sama5d4_bit
+	tst	r0, #AT91_PM_SAMA5D4_BIT
+	bne	skip_ddr_clock
+
+	/* Disable DDR clock */
+	mov	r0, #DDR_CLOCK_DISABLE
+	bl	at91_ddr_clock
+
+skip_ddr_clock:
 	ldr	r0, .pm_mode
 	tst	r0, #AT91_PM_SLOW_CLOCK
 	beq	skip_disable_main_clock
@@ -151,6 +172,15 @@ ENTRY(at91_pm_suspend_in_sram)
 	orr	tmp1, tmp1, #AT91_PMC_KEY
 	str	tmp1, [pmc, #AT91_CKGR_MOR]
 
+	/* If the cpu is the sama5d4, disable the ddr clock here */
+	ldr	r0, .sama5d4_bit
+	tst	r0, #AT91_PM_SAMA5D4_BIT
+	beq	skip_disable_main_clock
+
+	/* Disable DDR clock */
+	mov	r0, #DDR_CLOCK_DISABLE
+	bl	at91_ddr_clock
+
 skip_disable_main_clock:
 	ldr	pmc, .pmc_base
 
@@ -204,6 +234,10 @@ skip_disable_main_clock:
 	wait_mckrdy
 
 skip_enable_main_clock:
+	/* Enable DDR clock */
+	mov	r0, #DDR_CLOCK_ENABLE
+	bl	at91_ddr_clock
+
 	/* Exit the self-refresh mode */
 	mov	r0, #SRAMC_SELF_FRESH_EXIT
 	bl	at91_sramc_self_refresh
@@ -338,6 +372,51 @@ exit_sramc_sf:
 	mov	pc, lr
 ENDPROC(at91_sramc_self_refresh)
 
+/*
+ * void at91_ddr_clock(unsigned char is_enable)
+ *
+ * @input param
+ *	@r0: 0x01 - enable DDR clock
+ *	     0x00 - disable DDR clock
+ * register usage:
+ * 	@r1: ddrc peripheral id
+ *	@r2: base address of the pmc
+ */
+ENTRY(at91_ddr_clock)
+	ldr	r1, .ddrc_pid
+	ldr	r2, .pmc_base
+
+	/* DDRC peripheral clock */
+	cmp	r1, #0
+	beq	ddr_sys_clk
+
+	and	r1, r1, #AT91_PMC_PCR_PID
+	orr	r1, r1, #AT91_PMC_PCR_CMD
+
+	tst	r0, #DDR_CLOCK_ENABLE
+	beq	ddrc_clk
+	orr	r1, r1, #AT91_PMC_PCR_EN
+
+ddrc_clk:
+	str	r1, [r2, #AT91_PMC_PCR]
+
+ddr_sys_clk:
+	/* DDR system clock */
+	mov 	r3, #AT91_PMC_SYS_DDR
+
+	tst	r0, #DDR_CLOCK_ENABLE
+	beq	disable_sys_clk
+
+	str	r3, [r2, #AT91_PMC_SCER]
+	b	exit_ddr_clock
+
+disable_sys_clk:
+	str	r3, [r2, #AT91_PMC_SCDR]
+
+exit_ddr_clock:
+	mov	pc, lr
+ENDPROC(at91_ddr_clock)
+
 .pmc_base:
 	.word 0
 .sramc_base:
@@ -348,6 +427,10 @@ ENDPROC(at91_sramc_self_refresh)
 	.word 0
 .pm_mode:
 	.word 0
+.ddrc_pid:
+	.word 0
+.sama5d4_bit:
+	.word 0
 .saved_mckr:
 	.word 0
 .saved_pllar:
diff --git a/include/linux/clk/at91_pmc.h b/include/linux/clk/at91_pmc.h
index c8e3b3d..10d2913 100644
--- a/include/linux/clk/at91_pmc.h
+++ b/include/linux/clk/at91_pmc.h
@@ -36,6 +36,7 @@ extern void __iomem *at91_pmc_base;
 #define		AT91RM9200_PMC_UDP	(1 <<  1)		/* USB Devcice Port Clock [AT91RM9200 only] */
 #define		AT91RM9200_PMC_MCKUDP	(1 <<  2)		/* USB Device Port Master Clock Automatic Disable on Suspend [AT91RM9200 only] */
 #define		AT91RM9200_PMC_UHP	(1 <<  4)		/* USB Host Port Clock [AT91RM9200 only] */
+#define		AT91_PMC_SYS_DDR	(1 <<  2)		/* DDR clock[some SAM9 and SAMA5D only] */
 #define		AT91SAM926x_PMC_UHP	(1 <<  6)		/* USB Host Port Clock [AT91SAM926x only] */
 #define		AT91SAM926x_PMC_UDP	(1 <<  7)		/* USB Devcice Port Clock [AT91SAM926x only] */
 #define		AT91_PMC_PCK0		(1 <<  8)		/* Programmable Clock 0 */
-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock
  2015-03-09  3:56 [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock Wenyou Yang
  2015-03-09  3:57 ` [PATCH v2.0 1/2] pm: at91: add the PM initialization for the sama5d3 and sama5d4 Wenyou Yang
  2015-03-09  3:57 ` [PATCH v2.0 2/2] pm: at91: add support to disable/enable the DDR clock Wenyou Yang
@ 2015-03-12 18:59 ` Sylvain Rochet
  2015-03-13 13:43 ` Nicolas Ferre
  3 siblings, 0 replies; 7+ messages in thread
From: Sylvain Rochet @ 2015-03-12 18:59 UTC (permalink / raw)
  To: Wenyou Yang
  Cc: nicolas.ferre, linux, linux-arm-kernel, linux-kernel,
	alexandre.belloni, peda, sergei.shtylyov, linux

Hello Wenyou,

On Mon, Mar 09, 2015 at 11:56:18AM +0800, Wenyou Yang wrote:
> Hi,
> 
> The patch series purpose is to disable the DDR controller's clock and DDR
> system clock during the suspending to achieve the lower power consumption.

To the whole series:

Tested-by: Sylvain Rochet <sylvain.rochet@finsecur.com>

Sylvain

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock
  2015-03-09  3:56 [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock Wenyou Yang
                   ` (2 preceding siblings ...)
  2015-03-12 18:59 ` [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock Sylvain Rochet
@ 2015-03-13 13:43 ` Nicolas Ferre
  3 siblings, 0 replies; 7+ messages in thread
From: Nicolas Ferre @ 2015-03-13 13:43 UTC (permalink / raw)
  To: Wenyou Yang, linux
  Cc: linux-arm-kernel, linux-kernel, alexandre.belloni,
	sylvain.rochet, peda, sergei.shtylyov, linux

Le 09/03/2015 04:56, Wenyou Yang a écrit :
> Hi,
> 
> The patch series purpose is to disable the DDR controller's clock and DDR
> system clock during the suspending to achieve the lower power consumption.
> 
> It is based on the branch, at91-4.0-fixes
> git://git.kernel.org/pub/scm/linux/kernel/git/nferre/linux-at91.git
> 	+ [PATCH] ARM: at91: Add pm support for sama5d3 and sama5d4
> 
> Change log for v2.0
>  - rebase.
> 
> Wenyou Yang (2):
>   pm: at91: add the PM initialization for the sama5d3 and sama5d4
>   pm: at91: add support to disable/enable the DDR clock

I still have to make up my mind with this series. I keep it out of my
first cleanup pull-request for now.

Let's keep on thinking about it...

Bye,


>  arch/arm/mach-at91/generic.h              |    4 ++
>  arch/arm/mach-at91/include/mach/sama5d3.h |    1 +
>  arch/arm/mach-at91/include/mach/sama5d4.h |    5 ++
>  arch/arm/mach-at91/pm.c                   |   25 +++++++++
>  arch/arm/mach-at91/pm.h                   |    9 ++++
>  arch/arm/mach-at91/pm_suspend.S           |   83 +++++++++++++++++++++++++++++
>  arch/arm/mach-at91/sama5.c                |    8 ++-
>  include/linux/clk/at91_pmc.h              |    1 +
>  8 files changed, 135 insertions(+), 1 deletion(-)
> 


-- 
Nicolas Ferre

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2.0 1/2] pm: at91: add the PM initialization for the sama5d3 and sama5d4
  2015-03-09  3:57 ` [PATCH v2.0 1/2] pm: at91: add the PM initialization for the sama5d3 and sama5d4 Wenyou Yang
@ 2015-03-16 10:21   ` Sylvain Rochet
  2015-03-18  0:52     ` Yang, Wenyou
  0 siblings, 1 reply; 7+ messages in thread
From: Sylvain Rochet @ 2015-03-16 10:21 UTC (permalink / raw)
  To: Wenyou Yang
  Cc: nicolas.ferre, linux, linux-arm-kernel, linux-kernel,
	alexandre.belloni, peda, sergei.shtylyov, linux

Hello Wenyou,

On Mon, Mar 09, 2015 at 11:57:08AM +0800, Wenyou Yang wrote:
> To get the mpddrc peripheral id from the PM initialization,
> which will be used to disable mpddrc'c clock during suspending.

> +void __init sam5d3_pm_init(void)
> +{
> +	at91_dt_ramc();
> +	at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP;
> +	at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
> +	at91_pm_data.ddrc_pid = SAMA5D3_ID_MPDDRC;
> +	return at91_pm_init();
> +}
> +
> +void __init sam5d4_pm_init(void)
> +{
> +	at91_dt_ramc();
> +	at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP;
> +	at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
> +	at91_pm_data.ddrc_pid = SAMA5D4_ID_MPDDRC;
> +	at91_pm_data.is_sama5d4 = true;
> +	return at91_pm_init();
> +}

> +static void __init sama5d4_dt_device_init(void)
> +{
> +	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> +	sam5d4_pm_init();
> +}

This doesn't look right, where is sam5d3_pm_init() actually used ?

Sylvain

^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH v2.0 1/2] pm: at91: add the PM initialization for the sama5d3 and sama5d4
  2015-03-16 10:21   ` Sylvain Rochet
@ 2015-03-18  0:52     ` Yang, Wenyou
  0 siblings, 0 replies; 7+ messages in thread
From: Yang, Wenyou @ 2015-03-18  0:52 UTC (permalink / raw)
  To: Sylvain Rochet
  Cc: Ferre, Nicolas, linux, linux-arm-kernel, linux-kernel,
	alexandre.belloni, peda, sergei.shtylyov, linux

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 1850 bytes --]

Hi Sylvain,

> -----Original Message-----
> From: Sylvain Rochet [mailto:sylvain.rochet@finsecur.com]
> Sent: 2015年3月16日 18:21
> To: Yang, Wenyou
> Cc: Ferre, Nicolas; linux@arm.linux.org.uk; linux-arm-kernel@lists.infradead.org;
> linux-kernel@vger.kernel.org; alexandre.belloni@free-electrons.com;
> peda@axentia.se; sergei.shtylyov@cogentembedded.com; linux@maxim.org.za
> Subject: Re: [PATCH v2.0 1/2] pm: at91: add the PM initialization for the sama5d3
> and sama5d4
> 
> Hello Wenyou,
> 
> On Mon, Mar 09, 2015 at 11:57:08AM +0800, Wenyou Yang wrote:
> > To get the mpddrc peripheral id from the PM initialization, which will
> > be used to disable mpddrc'c clock during suspending.
> 
> > +void __init sam5d3_pm_init(void)
> > +{
> > +	at91_dt_ramc();
> > +	at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP |
> AT91SAM926x_PMC_UDP;
> > +	at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
> > +	at91_pm_data.ddrc_pid = SAMA5D3_ID_MPDDRC;
> > +	return at91_pm_init();
> > +}
> > +
> > +void __init sam5d4_pm_init(void)
> > +{
> > +	at91_dt_ramc();
> > +	at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP |
> AT91SAM926x_PMC_UDP;
> > +	at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
> > +	at91_pm_data.ddrc_pid = SAMA5D4_ID_MPDDRC;
> > +	at91_pm_data.is_sama5d4 = true;
> > +	return at91_pm_init();
> > +}
> 
> > +static void __init sama5d4_dt_device_init(void) {
> > +	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> > +	sam5d4_pm_init();
> > +}
> 
> This doesn't look right, where is sam5d3_pm_init() actually used ?
Oh, I missed it mindlessly during rebasing. I will added it in the next version. 

Sorry for being confused. 

> 
> Sylvain

Best Regards,
Wenyou Yang
ÿôèº{.nÇ+‰·Ÿ®‰­†+%ŠËÿ±éݶ\x17¥Šwÿº{.nÇ+‰·¥Š{±þG«éÿŠ{ayº\x1dʇڙë,j\a­¢f£¢·hšïêÿ‘êçz_è®\x03(­éšŽŠÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?™¨è­Ú&£ø§~á¶iO•æ¬z·švØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?–I¥

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-03-18  0:52 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-09  3:56 [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock Wenyou Yang
2015-03-09  3:57 ` [PATCH v2.0 1/2] pm: at91: add the PM initialization for the sama5d3 and sama5d4 Wenyou Yang
2015-03-16 10:21   ` Sylvain Rochet
2015-03-18  0:52     ` Yang, Wenyou
2015-03-09  3:57 ` [PATCH v2.0 2/2] pm: at91: add support to disable/enable the DDR clock Wenyou Yang
2015-03-12 18:59 ` [PATCH v2.0 0/2] ARM: AT91: pm: add support to disable the DDR's clock Sylvain Rochet
2015-03-13 13:43 ` Nicolas Ferre

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).