From: alexandre.belloni@free-electrons.com (Alexandre Belloni)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/8] ARM: at91: pm: rework cpu detection
Date: Fri, 16 Jan 2015 11:26:51 +0100 [thread overview]
Message-ID: <20150116102651.GA3843@piout.net> (raw)
In-Reply-To: <B256D81BAE5131468A838E5D7A243641BFCE1327@penmbx01>
Hi,
On 16/01/2015 at 02:44:39 +0000, Yang, Wenyou wrote :
> > - /* AT91RM9200 SDRAM low-power mode cannot be used with self-refresh.
> > */
> > - if (cpu_is_at91rm9200())
> > + at91_pm_data.memctrl = AT91_MEMCTRL_SDRAMC;
> > +
> > + if (of_machine_is_compatible("atmel,at91rm9200")) {
> > + /*
> > + * AT91RM9200 SDRAM low-power mode cannot be used with
> > + * self-refresh.
> > + */
> > at91_ramc_write(0, AT91RM9200_SDRAMC_LPR, 0);
> > -
> > +
> > + at91_pm_data.uhp_udp_mask = AT91RM9200_PMC_UHP |
> > + AT91RM9200_PMC_UDP;
> > + at91_pm_data.memctrl = AT91_MEMCTRL_MC;
> > + } else if (of_machine_is_compatible("atmel,at91sam9260") ||
> > + of_machine_is_compatible("atmel,at91sam9g20") ||
> > + of_machine_is_compatible("atmel,at91sam9261") ||
> > + of_machine_is_compatible("atmel,at91sam9g10") ||
> > + of_machine_is_compatible("atmel,at91sam9263")) {
> > + at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP |
> > + AT91SAM926x_PMC_UDP;
> > + } else if (of_machine_is_compatible("atmel,at91sam9g45")) {
> > + at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
> > + }
> > +
> About the memory controller type, I prefer to get it during the memory controller initialization, from the sram_ids[].data which defined in the setup.c,
> As this,
> static const struct at91_ramc_of_data at91rm9200_ramc_of_data = {
> .ramc_type = AT91_MEMCTRL_MC,
> };
> ...
> static struct of_device_id ramc_ids[] = {
> { .compatible = "atmel,at91rm9200-sdramc", .data = &at91rm9200_ramc_of_data},
> ... ...
> { /*sentinel*/ }
> };
>
> What about you?
Yes, we agreed that using of_machine_is_compatible is not nice and that
is why I remove that usage in patch 4.
We still have to fill the uhp_udp_mask and that would mean adding a
match on the pmc compatible string. I would prefer not doing that. Or
maybe we can just remove the check, I don't think it it necessary
anymore.
At some point in time, I would like to be able to get rid of the
ramc_ids in mach-at91 but I'm not sure how yet.
Maybe we can do what you suggest after
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/316771.html
Because then, the ram detection is local to pm.c
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
To: "Yang, Wenyou" <Wenyou.Yang@atmel.com>
Cc: "Ferre, Nicolas" <Nicolas.FERRE@atmel.com>,
Boris Brezillon <boris.brezillon@free-electrons.com>,
Arnd Bergmann <arnd@arndb.de>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v2 1/8] ARM: at91: pm: rework cpu detection
Date: Fri, 16 Jan 2015 11:26:51 +0100 [thread overview]
Message-ID: <20150116102651.GA3843@piout.net> (raw)
In-Reply-To: <B256D81BAE5131468A838E5D7A243641BFCE1327@penmbx01>
Hi,
On 16/01/2015 at 02:44:39 +0000, Yang, Wenyou wrote :
> > - /* AT91RM9200 SDRAM low-power mode cannot be used with self-refresh.
> > */
> > - if (cpu_is_at91rm9200())
> > + at91_pm_data.memctrl = AT91_MEMCTRL_SDRAMC;
> > +
> > + if (of_machine_is_compatible("atmel,at91rm9200")) {
> > + /*
> > + * AT91RM9200 SDRAM low-power mode cannot be used with
> > + * self-refresh.
> > + */
> > at91_ramc_write(0, AT91RM9200_SDRAMC_LPR, 0);
> > -
> > +
> > + at91_pm_data.uhp_udp_mask = AT91RM9200_PMC_UHP |
> > + AT91RM9200_PMC_UDP;
> > + at91_pm_data.memctrl = AT91_MEMCTRL_MC;
> > + } else if (of_machine_is_compatible("atmel,at91sam9260") ||
> > + of_machine_is_compatible("atmel,at91sam9g20") ||
> > + of_machine_is_compatible("atmel,at91sam9261") ||
> > + of_machine_is_compatible("atmel,at91sam9g10") ||
> > + of_machine_is_compatible("atmel,at91sam9263")) {
> > + at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP |
> > + AT91SAM926x_PMC_UDP;
> > + } else if (of_machine_is_compatible("atmel,at91sam9g45")) {
> > + at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
> > + }
> > +
> About the memory controller type, I prefer to get it during the memory controller initialization, from the sram_ids[].data which defined in the setup.c,
> As this,
> static const struct at91_ramc_of_data at91rm9200_ramc_of_data = {
> .ramc_type = AT91_MEMCTRL_MC,
> };
> ...
> static struct of_device_id ramc_ids[] = {
> { .compatible = "atmel,at91rm9200-sdramc", .data = &at91rm9200_ramc_of_data},
> ... ...
> { /*sentinel*/ }
> };
>
> What about you?
Yes, we agreed that using of_machine_is_compatible is not nice and that
is why I remove that usage in patch 4.
We still have to fill the uhp_udp_mask and that would mean adding a
match on the pmc compatible string. I would prefer not doing that. Or
maybe we can just remove the check, I don't think it it necessary
anymore.
At some point in time, I would like to be able to get rid of the
ramc_ids in mach-at91 but I'm not sure how yet.
Maybe we can do what you suggest after
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/316771.html
Because then, the ram detection is local to pm.c
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
next prev parent reply other threads:[~2015-01-16 10:26 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-15 14:59 [PATCH v2 0/8] AT91 cleanup for 3.20 #2 Alexandre Belloni
2015-01-15 14:59 ` Alexandre Belloni
2015-01-15 14:59 ` [PATCH v2 1/8] ARM: at91: pm: rework cpu detection Alexandre Belloni
2015-01-15 14:59 ` Alexandre Belloni
2015-01-16 2:44 ` Yang, Wenyou
2015-01-16 2:44 ` Yang, Wenyou
2015-01-16 10:26 ` Alexandre Belloni [this message]
2015-01-16 10:26 ` Alexandre Belloni
2015-01-15 14:59 ` [PATCH v2 2/8] ARM: at91: pm: use the mmio-sram pool to access SRAM Alexandre Belloni
2015-01-15 14:59 ` Alexandre Belloni
2015-01-15 14:59 ` [PATCH v2 3/8] ARM: at91: pm: add UDP and UHP checks to newer SoCs Alexandre Belloni
2015-01-15 14:59 ` Alexandre Belloni
2015-01-15 14:59 ` [PATCH v2 4/8] ARM: at91: pm: prepare for multiplatform Alexandre Belloni
2015-01-15 14:59 ` Alexandre Belloni
2015-01-22 16:03 ` [PATCH] ARM: at91: fix PM initialization for newer SoCs Nicolas Ferre
2015-01-22 16:03 ` Nicolas Ferre
2015-01-22 16:07 ` [PATCH v2] " Nicolas Ferre
2015-01-22 16:07 ` Nicolas Ferre
2015-01-23 7:50 ` Jean-Christophe PLAGNIOL-VILLARD
2015-01-23 7:50 ` Jean-Christophe PLAGNIOL-VILLARD
2015-01-23 10:11 ` Alexandre Belloni
2015-01-23 10:11 ` Alexandre Belloni
2015-01-15 14:59 ` [PATCH v2 5/8] ARM: at91: remove useless map_io Alexandre Belloni
2015-01-15 14:59 ` Alexandre Belloni
2015-01-15 14:59 ` [PATCH v2 6/8] ARM: at91: sama5d4: remove useless call to at91_init_sram Alexandre Belloni
2015-01-15 14:59 ` Alexandre Belloni
2015-01-15 14:59 ` [PATCH v2 7/8] ARM: at91: remove unused at91_init_sram Alexandre Belloni
2015-01-15 14:59 ` Alexandre Belloni
2015-01-15 14:59 ` [PATCH v2 8/8] ARM: at91: move at91rm9200_idle() to clk/at91/pmc.c Alexandre Belloni
2015-01-15 14:59 ` Alexandre Belloni
2015-01-16 17:11 ` [PATCH v2 0/8] AT91 cleanup for 3.20 #2 Nicolas Ferre
2015-01-16 17:11 ` Nicolas Ferre
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=20150116102651.GA3843@piout.net \
--to=alexandre.belloni@free-electrons.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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: link
Be 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.