* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-04 8:50 [PATCH v2 0/5] ARM: EXYNOS: Add support for Trats board using device tree Tomasz Figa
@ 2012-09-04 8:50 ` Tomasz Figa
2012-09-05 8:36 ` Jaehoon Chung
2012-09-19 5:42 ` Chris Ball
2012-09-04 8:50 ` [PATCH v2 2/5] ARM: Exynos4: dts: Specify address and size cells for i2c controllers Tomasz Figa
` (3 subsequent siblings)
4 siblings, 2 replies; 27+ messages in thread
From: Tomasz Figa @ 2012-09-04 8:50 UTC (permalink / raw)
To: linux-arm-kernel
Some boards use fixed voltage regulator for vmmc supply (e.g. for eMMC
memories). MMC_CAP2_BROKEN_VOLTAGE must be enabled for them to operate
correctly.
Cc: Ben Dooks <ben-linux@fluff.org>
Cc: Chris Ball <cjb@laptop.org>
CC: linux-mmc at vger.kernel.org
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
Documentation/devicetree/bindings/mmc/mmc.txt | 1 +
drivers/mmc/host/sdhci-s3c.c | 3 +++
2 files changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/mmc/mmc.txt b/Documentation/devicetree/bindings/mmc/mmc.txt
index 8a6811f..ecbde68 100644
--- a/Documentation/devicetree/bindings/mmc/mmc.txt
+++ b/Documentation/devicetree/bindings/mmc/mmc.txt
@@ -16,6 +16,7 @@ Optional properties:
- wp-inverted: when present, polarity on the wp gpio line is inverted
- non-removable: non-removable slot (like eMMC)
- max-frequency: maximum operating clock frequency
+- broken-voltage: vmmc regulator does not allow voltage control
Example:
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 445910e..39715b8 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -443,6 +443,9 @@ static int __devinit sdhci_s3c_parse_dt(struct device *dev,
if (!ourhost->gpios)
return -ENOMEM;
+ if (of_get_property(node, "broken-voltage", 0))
+ pdata->host_caps2 |= MMC_CAP2_BROKEN_VOLTAGE;
+
/* get the card detection method */
if (of_get_property(node, "broken-cd", 0)) {
pdata->cd_type = S3C_SDHCI_CD_NONE;
--
1.7.12
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-04 8:50 ` [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk Tomasz Figa
@ 2012-09-05 8:36 ` Jaehoon Chung
2012-09-19 5:42 ` Chris Ball
1 sibling, 0 replies; 27+ messages in thread
From: Jaehoon Chung @ 2012-09-05 8:36 UTC (permalink / raw)
To: linux-arm-kernel
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
On 09/04/2012 05:50 PM, Tomasz Figa wrote:
> Some boards use fixed voltage regulator for vmmc supply (e.g. for eMMC
> memories). MMC_CAP2_BROKEN_VOLTAGE must be enabled for them to operate
> correctly.
>
> Cc: Ben Dooks <ben-linux@fluff.org>
> Cc: Chris Ball <cjb@laptop.org>
> CC: linux-mmc at vger.kernel.org
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> Documentation/devicetree/bindings/mmc/mmc.txt | 1 +
> drivers/mmc/host/sdhci-s3c.c | 3 +++
> 2 files changed, 4 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/mmc/mmc.txt b/Documentation/devicetree/bindings/mmc/mmc.txt
> index 8a6811f..ecbde68 100644
> --- a/Documentation/devicetree/bindings/mmc/mmc.txt
> +++ b/Documentation/devicetree/bindings/mmc/mmc.txt
> @@ -16,6 +16,7 @@ Optional properties:
> - wp-inverted: when present, polarity on the wp gpio line is inverted
> - non-removable: non-removable slot (like eMMC)
> - max-frequency: maximum operating clock frequency
> +- broken-voltage: vmmc regulator does not allow voltage control
>
> Example:
>
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index 445910e..39715b8 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -443,6 +443,9 @@ static int __devinit sdhci_s3c_parse_dt(struct device *dev,
> if (!ourhost->gpios)
> return -ENOMEM;
>
> + if (of_get_property(node, "broken-voltage", 0))
> + pdata->host_caps2 |= MMC_CAP2_BROKEN_VOLTAGE;
> +
> /* get the card detection method */
> if (of_get_property(node, "broken-cd", 0)) {
> pdata->cd_type = S3C_SDHCI_CD_NONE;
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-04 8:50 ` [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk Tomasz Figa
2012-09-05 8:36 ` Jaehoon Chung
@ 2012-09-19 5:42 ` Chris Ball
2012-09-19 10:13 ` Tomasz Figa
1 sibling, 1 reply; 27+ messages in thread
From: Chris Ball @ 2012-09-19 5:42 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On Tue, Sep 04 2012, Tomasz Figa wrote:
> Some boards use fixed voltage regulator for vmmc supply (e.g. for eMMC
> memories). MMC_CAP2_BROKEN_VOLTAGE must be enabled for them to operate
> correctly.
>
> Cc: Ben Dooks <ben-linux@fluff.org>
> Cc: Chris Ball <cjb@laptop.org>
> CC: linux-mmc at vger.kernel.org
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> Documentation/devicetree/bindings/mmc/mmc.txt | 1 +
> drivers/mmc/host/sdhci-s3c.c | 3 +++
> 2 files changed, 4 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/mmc/mmc.txt b/Documentation/devicetree/bindings/mmc/mmc.txt
> index 8a6811f..ecbde68 100644
> --- a/Documentation/devicetree/bindings/mmc/mmc.txt
> +++ b/Documentation/devicetree/bindings/mmc/mmc.txt
> @@ -16,6 +16,7 @@ Optional properties:
> - wp-inverted: when present, polarity on the wp gpio line is inverted
> - non-removable: non-removable slot (like eMMC)
> - max-frequency: maximum operating clock frequency
> +- broken-voltage: vmmc regulator does not allow voltage control
>
> Example:
>
> diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
> index 445910e..39715b8 100644
> --- a/drivers/mmc/host/sdhci-s3c.c
> +++ b/drivers/mmc/host/sdhci-s3c.c
> @@ -443,6 +443,9 @@ static int __devinit sdhci_s3c_parse_dt(struct device *dev,
> if (!ourhost->gpios)
> return -ENOMEM;
>
> + if (of_get_property(node, "broken-voltage", 0))
> + pdata->host_caps2 |= MMC_CAP2_BROKEN_VOLTAGE;
> +
> /* get the card detection method */
> if (of_get_property(node, "broken-cd", 0)) {
> pdata->cd_type = S3C_SDHCI_CD_NONE;
Is there a reason we can't make this a property on the regulator instead?
Thanks,
- Chris.
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-19 5:42 ` Chris Ball
@ 2012-09-19 10:13 ` Tomasz Figa
2012-09-19 10:24 ` Chris Ball
0 siblings, 1 reply; 27+ messages in thread
From: Tomasz Figa @ 2012-09-19 10:13 UTC (permalink / raw)
To: linux-arm-kernel
Hi Chris,
On Wednesday 19 of September 2012 01:42:01 Chris Ball wrote:
> On Tue, Sep 04 2012, Tomasz Figa wrote:
> > Some boards use fixed voltage regulator for vmmc supply (e.g. for eMMC
> > memories). MMC_CAP2_BROKEN_VOLTAGE must be enabled for them to operate
> > correctly.
>>
> Is there a reason we can't make this a property on the regulator instead?
Is there a reason we can't make this a property of the mmc subsystem? ;)
Now, seriously, could you elaborate on this a bit more? Do you mean that a
regulator should provide a dummy set voltage operation that would accept
any voltage?
Best regards,
--
Tomasz Figa
Samsung Poland R&D Center
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-19 10:13 ` Tomasz Figa
@ 2012-09-19 10:24 ` Chris Ball
2012-09-19 10:34 ` Tomasz Figa
0 siblings, 1 reply; 27+ messages in thread
From: Chris Ball @ 2012-09-19 10:24 UTC (permalink / raw)
To: linux-arm-kernel
Hi Tomasz,
On Wed, Sep 19 2012, Tomasz Figa wrote:
> Hi Chris,
>
> On Wednesday 19 of September 2012 01:42:01 Chris Ball wrote:
>> On Tue, Sep 04 2012, Tomasz Figa wrote:
>> > Some boards use fixed voltage regulator for vmmc supply (e.g. for eMMC
>> > memories). MMC_CAP2_BROKEN_VOLTAGE must be enabled for them to operate
>> > correctly.
>>>
>> Is there a reason we can't make this a property on the regulator instead?
>
> Is there a reason we can't make this a property of the mmc subsystem? ;)
>
> Now, seriously, could you elaborate on this a bit more? Do you mean that a
> regulator should provide a dummy set voltage operation that would accept
> any voltage?
Sorry for the terseness.
It seems like we're encoding exactly the same information twice in two
different subsystems -- I don't see the point, so I'd like to think
about how we could do better.
For example, if we're only concerned about fixed regulators, could we
just detect a fixed regulator in the driver and avoid the failing call
to regulator_set_voltage() directly, without needing to go via this
capability? Seems like the capability doesn't tell us anything we
couldn't already have known.
Thanks,
- Chris.
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-19 10:24 ` Chris Ball
@ 2012-09-19 10:34 ` Tomasz Figa
2012-09-19 10:47 ` Chris Ball
0 siblings, 1 reply; 27+ messages in thread
From: Tomasz Figa @ 2012-09-19 10:34 UTC (permalink / raw)
To: linux-arm-kernel
Hi Chris,
On Wednesday 19 of September 2012 06:24:46 Chris Ball wrote:
> Hi Tomasz,
>
> On Wed, Sep 19 2012, Tomasz Figa wrote:
> > Hi Chris,
> >
> > On Wednesday 19 of September 2012 01:42:01 Chris Ball wrote:
> >> On Tue, Sep 04 2012, Tomasz Figa wrote:
> >> > Some boards use fixed voltage regulator for vmmc supply (e.g. for
> >> > eMMC
> >> > memories). MMC_CAP2_BROKEN_VOLTAGE must be enabled for them to
> >> > operate
> >> > correctly.
> >>
> >> Is there a reason we can't make this a property on the regulator
> >> instead?>
> > Is there a reason we can't make this a property of the mmc subsystem?
> > ;)
> >
> > Now, seriously, could you elaborate on this a bit more? Do you mean
> > that a regulator should provide a dummy set voltage operation that
> > would accept any voltage?
>
> Sorry for the terseness.
>
> It seems like we're encoding exactly the same information twice in two
> different subsystems -- I don't see the point, so I'd like to think
> about how we could do better.
>
> For example, if we're only concerned about fixed regulators, could we
> just detect a fixed regulator in the driver and avoid the failing call
> to regulator_set_voltage() directly, without needing to go via this
> capability? Seems like the capability doesn't tell us anything we
> couldn't already have known.
We could just check if the regulator provides the capability to change the
voltage.
I don't see any direct way of querying the regulator for provided
capabilities (correct me if I'm just blind), but calling
regulator_count_voltages() on the regulator and checking if the returned
value is 1 should be enough to assume that the regulator is fixed.
What do you think?
Best regards,
--
Tomasz Figa
Samsung Poland R&D Center
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-19 10:34 ` Tomasz Figa
@ 2012-09-19 10:47 ` Chris Ball
2012-09-19 10:49 ` Tomasz Figa
2012-09-19 11:02 ` Jaehoon Chung
0 siblings, 2 replies; 27+ messages in thread
From: Chris Ball @ 2012-09-19 10:47 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On Wed, Sep 19 2012, Tomasz Figa wrote:
> We could just check if the regulator provides the capability to change the
> voltage.
>
> I don't see any direct way of querying the regulator for provided
> capabilities (correct me if I'm just blind), but calling
> regulator_count_voltages() on the regulator and checking if the returned
> value is 1 should be enough to assume that the regulator is fixed.
Sounds good, I agree. Are you able to test that the obvious patch below
works on your fixed-regulator board?
Jaehoon and Adrian, can you think of any reason why we shouldn't replace
MMC_CAP2_BROKEN_VOLTAGE with the regulator_count_voltages() call below?
Thanks.
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 044cd01..a3cc740 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1132,7 +1132,7 @@ int mmc_regulator_set_ocr(struct mmc_host *mmc,
*/
voltage = regulator_get_voltage(supply);
- if (mmc->caps2 & MMC_CAP2_BROKEN_VOLTAGE)
+ if (regulator_count_voltages(supply) == 1)
min_uV = max_uV = voltage;
if (voltage < 0)
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-19 10:47 ` Chris Ball
@ 2012-09-19 10:49 ` Tomasz Figa
2012-09-19 11:02 ` Jaehoon Chung
1 sibling, 0 replies; 27+ messages in thread
From: Tomasz Figa @ 2012-09-19 10:49 UTC (permalink / raw)
To: linux-arm-kernel
hi,
On Wednesday 19 of September 2012 06:47:02 Chris Ball wrote:
> Hi,
>
> On Wed, Sep 19 2012, Tomasz Figa wrote:
> > We could just check if the regulator provides the capability to change
> > the voltage.
> >
> > I don't see any direct way of querying the regulator for provided
> > capabilities (correct me if I'm just blind), but calling
> > regulator_count_voltages() on the regulator and checking if the
> > returned
> > value is 1 should be enough to assume that the regulator is fixed.
>
> Sounds good, I agree. Are you able to test that the obvious patch below
> works on your fixed-regulator board?
Yes. I will report the result as soon as I test it.
Best regards,
--
Tomasz Figa
Samsung Poland R&D Center
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-19 10:47 ` Chris Ball
2012-09-19 10:49 ` Tomasz Figa
@ 2012-09-19 11:02 ` Jaehoon Chung
2012-09-19 14:39 ` Chris Ball
1 sibling, 1 reply; 27+ messages in thread
From: Jaehoon Chung @ 2012-09-19 11:02 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On 09/19/2012 07:47 PM, Chris Ball wrote:
> Hi,
>
> On Wed, Sep 19 2012, Tomasz Figa wrote:
>> We could just check if the regulator provides the capability to change the
>> voltage.
>>
>> I don't see any direct way of querying the regulator for provided
>> capabilities (correct me if I'm just blind), but calling
>> regulator_count_voltages() on the regulator and checking if the returned
>> value is 1 should be enough to assume that the regulator is fixed.
>
> Sounds good, I agree. Are you able to test that the obvious patch below
> works on your fixed-regulator board?
>
> Jaehoon and Adrian, can you think of any reason why we shouldn't replace
> MMC_CAP2_BROKEN_VOLTAGE with the regulator_count_voltages() call below?
> Thanks.
I think this is better than using MMC_CAP2_BROKEN_VOLTAGE.
I tested with this..and working fine.
Best Regards,
Jaehoon Chung
>
>
> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
> index 044cd01..a3cc740 100644
> --- a/drivers/mmc/core/core.c
> +++ b/drivers/mmc/core/core.c
> @@ -1132,7 +1132,7 @@ int mmc_regulator_set_ocr(struct mmc_host *mmc,
> */
> voltage = regulator_get_voltage(supply);
>
> - if (mmc->caps2 & MMC_CAP2_BROKEN_VOLTAGE)
> + if (regulator_count_voltages(supply) == 1)
> min_uV = max_uV = voltage;
>
> if (voltage < 0)
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-19 11:02 ` Jaehoon Chung
@ 2012-09-19 14:39 ` Chris Ball
2012-09-20 5:57 ` Jaehoon Chung
0 siblings, 1 reply; 27+ messages in thread
From: Chris Ball @ 2012-09-19 14:39 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On Wed, Sep 19 2012, Jaehoon Chung wrote:
>> On Wed, Sep 19 2012, Tomasz Figa wrote:
>>> We could just check if the regulator provides the capability to change the
>>> voltage.
>>>
>>> I don't see any direct way of querying the regulator for provided
>>> capabilities (correct me if I'm just blind), but calling
>>> regulator_count_voltages() on the regulator and checking if the returned
>>> value is 1 should be enough to assume that the regulator is fixed.
>>
>> Sounds good, I agree. Are you able to test that the obvious patch below
>> works on your fixed-regulator board?
>>
>> Jaehoon and Adrian, can you think of any reason why we shouldn't replace
>> MMC_CAP2_BROKEN_VOLTAGE with the regulator_count_voltages() call below?
>> Thanks.
>
> I think this is better than using MMC_CAP2_BROKEN_VOLTAGE.
> I tested with this..and working fine.
Great, here's the patch. Jaehoon, once this is merged, maybe you could
help remove the uses of MMC_CAP2_BROKEN_VOLTAGE from arch/arm/mach-exynos
and arch/arm/mach-s5pv210 now that they're no longer needed?
Thanks,
- Chris.
Subject: [PATCH] mmc: core: Replace MMC_CAP2_BROKEN_VOLTAGE with test for fixed regulator
Before this patch, we were using MMC_CAP2_BROKEN_VOLTAGE as a way to
avoid calling regulator_set_voltage() on a fixed regulator, but that's
just duplicating information that already exists -- we should test
whether the regulator is fixed directly, instead of via a capability.
This patch implements that test. We can't reclaim the capability bit
just yet, since there are still boards in arch/arm/ that reference it;
those references can be removed now.
Reported-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
---
drivers/mmc/core/core.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 044cd01..6612163 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -1113,7 +1113,8 @@ int mmc_regulator_set_ocr(struct mmc_host *mmc,
int tmp;
int voltage;
- /* REVISIT mmc_vddrange_to_ocrmask() may have set some
+ /*
+ * REVISIT mmc_vddrange_to_ocrmask() may have set some
* bits this regulator doesn't quite support ... don't
* be too picky, most cards and regulators are OK with
* a 0.1V range goof (it's a small error percentage).
@@ -1127,12 +1128,13 @@ int mmc_regulator_set_ocr(struct mmc_host *mmc,
max_uV = min_uV + 100 * 1000;
}
- /* avoid needless changes to this voltage; the regulator
- * might not allow this operation
+ /*
+ * If we're using a fixed/static regulator, don't call
+ * regulator_set_voltage; it would fail.
*/
voltage = regulator_get_voltage(supply);
- if (mmc->caps2 & MMC_CAP2_BROKEN_VOLTAGE)
+ if (regulator_count_voltages(supply) == 1)
min_uV = max_uV = voltage;
if (voltage < 0)
--
Chris Ball <cjb@laptop.org> <http://printf.net/>
One Laptop Per Child
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk
2012-09-19 14:39 ` Chris Ball
@ 2012-09-20 5:57 ` Jaehoon Chung
0 siblings, 0 replies; 27+ messages in thread
From: Jaehoon Chung @ 2012-09-20 5:57 UTC (permalink / raw)
To: linux-arm-kernel
On 09/19/2012 11:39 PM, Chris Ball wrote:
> Hi,
>
> On Wed, Sep 19 2012, Jaehoon Chung wrote:
>>> On Wed, Sep 19 2012, Tomasz Figa wrote:
>>>> We could just check if the regulator provides the capability to change the
>>>> voltage.
>>>>
>>>> I don't see any direct way of querying the regulator for provided
>>>> capabilities (correct me if I'm just blind), but calling
>>>> regulator_count_voltages() on the regulator and checking if the returned
>>>> value is 1 should be enough to assume that the regulator is fixed.
>>>
>>> Sounds good, I agree. Are you able to test that the obvious patch below
>>> works on your fixed-regulator board?
>>>
>>> Jaehoon and Adrian, can you think of any reason why we shouldn't replace
>>> MMC_CAP2_BROKEN_VOLTAGE with the regulator_count_voltages() call below?
>>> Thanks.
>>
>> I think this is better than using MMC_CAP2_BROKEN_VOLTAGE.
>> I tested with this..and working fine.
>
> Great, here's the patch. Jaehoon, once this is merged, maybe you could
> help remove the uses of MMC_CAP2_BROKEN_VOLTAGE from arch/arm/mach-exynos
> and arch/arm/mach-s5pv210 now that they're no longer needed?
Right, I will remove them and send the patch.
Best Regards,
Jaehoon Chung
>
> Thanks,
>
> - Chris.
>
>
> Subject: [PATCH] mmc: core: Replace MMC_CAP2_BROKEN_VOLTAGE with test for fixed regulator
>
> Before this patch, we were using MMC_CAP2_BROKEN_VOLTAGE as a way to
> avoid calling regulator_set_voltage() on a fixed regulator, but that's
> just duplicating information that already exists -- we should test
> whether the regulator is fixed directly, instead of via a capability.
>
> This patch implements that test. We can't reclaim the capability bit
> just yet, since there are still boards in arch/arm/ that reference it;
> those references can be removed now.
>
> Reported-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Chris Ball <cjb@laptop.org>
> ---
> drivers/mmc/core/core.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
> index 044cd01..6612163 100644
> --- a/drivers/mmc/core/core.c
> +++ b/drivers/mmc/core/core.c
> @@ -1113,7 +1113,8 @@ int mmc_regulator_set_ocr(struct mmc_host *mmc,
> int tmp;
> int voltage;
>
> - /* REVISIT mmc_vddrange_to_ocrmask() may have set some
> + /*
> + * REVISIT mmc_vddrange_to_ocrmask() may have set some
> * bits this regulator doesn't quite support ... don't
> * be too picky, most cards and regulators are OK with
> * a 0.1V range goof (it's a small error percentage).
> @@ -1127,12 +1128,13 @@ int mmc_regulator_set_ocr(struct mmc_host *mmc,
> max_uV = min_uV + 100 * 1000;
> }
>
> - /* avoid needless changes to this voltage; the regulator
> - * might not allow this operation
> + /*
> + * If we're using a fixed/static regulator, don't call
> + * regulator_set_voltage; it would fail.
> */
> voltage = regulator_get_voltage(supply);
>
> - if (mmc->caps2 & MMC_CAP2_BROKEN_VOLTAGE)
> + if (regulator_count_voltages(supply) == 1)
> min_uV = max_uV = voltage;
>
> if (voltage < 0)
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 2/5] ARM: Exynos4: dts: Specify address and size cells for i2c controllers
2012-09-04 8:50 [PATCH v2 0/5] ARM: EXYNOS: Add support for Trats board using device tree Tomasz Figa
2012-09-04 8:50 ` [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk Tomasz Figa
@ 2012-09-04 8:50 ` Tomasz Figa
2012-09-05 3:58 ` Thomas Abraham
2012-09-04 8:50 ` [PATCH v2 3/5] ARM: Exynos4: Add OF compatibility lookups for Exynos4 i2c adapters Tomasz Figa
` (2 subsequent siblings)
4 siblings, 1 reply; 27+ messages in thread
From: Tomasz Figa @ 2012-09-04 8:50 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
arch/arm/boot/dts/exynos4.dtsi | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 9b71b61..718e3d2 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -122,6 +122,8 @@
};
i2c at 13860000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
reg = <0x13860000 0x100>;
interrupts = <0 58 0>;
@@ -129,6 +131,8 @@
};
i2c at 13870000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
reg = <0x13870000 0x100>;
interrupts = <0 59 0>;
@@ -136,6 +140,8 @@
};
i2c at 13880000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
reg = <0x13880000 0x100>;
interrupts = <0 60 0>;
@@ -143,6 +149,8 @@
};
i2c at 13890000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
reg = <0x13890000 0x100>;
interrupts = <0 61 0>;
@@ -150,6 +158,8 @@
};
i2c at 138A0000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
reg = <0x138A0000 0x100>;
interrupts = <0 62 0>;
@@ -157,6 +167,8 @@
};
i2c at 138B0000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
reg = <0x138B0000 0x100>;
interrupts = <0 63 0>;
@@ -164,6 +176,8 @@
};
i2c at 138C0000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
reg = <0x138C0000 0x100>;
interrupts = <0 64 0>;
@@ -171,6 +185,8 @@
};
i2c at 138D0000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
compatible = "samsung,s3c2440-i2c";
reg = <0x138D0000 0x100>;
interrupts = <0 65 0>;
--
1.7.12
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v2 2/5] ARM: Exynos4: dts: Specify address and size cells for i2c controllers
2012-09-04 8:50 ` [PATCH v2 2/5] ARM: Exynos4: dts: Specify address and size cells for i2c controllers Tomasz Figa
@ 2012-09-05 3:58 ` Thomas Abraham
2012-09-08 2:37 ` Kukjin Kim
0 siblings, 1 reply; 27+ messages in thread
From: Thomas Abraham @ 2012-09-05 3:58 UTC (permalink / raw)
To: linux-arm-kernel
On 4 September 2012 14:20, Tomasz Figa <t.figa@samsung.com> wrote:
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> arch/arm/boot/dts/exynos4.dtsi | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
Acked-by: Thomas Abraham <thomas.abraham@linaro.org>
>
> diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
> index 9b71b61..718e3d2 100644
> --- a/arch/arm/boot/dts/exynos4.dtsi
> +++ b/arch/arm/boot/dts/exynos4.dtsi
> @@ -122,6 +122,8 @@
> };
>
> i2c at 13860000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> reg = <0x13860000 0x100>;
> interrupts = <0 58 0>;
> @@ -129,6 +131,8 @@
> };
>
> i2c at 13870000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> reg = <0x13870000 0x100>;
> interrupts = <0 59 0>;
> @@ -136,6 +140,8 @@
> };
>
> i2c at 13880000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> reg = <0x13880000 0x100>;
> interrupts = <0 60 0>;
> @@ -143,6 +149,8 @@
> };
>
> i2c at 13890000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> reg = <0x13890000 0x100>;
> interrupts = <0 61 0>;
> @@ -150,6 +158,8 @@
> };
>
> i2c at 138A0000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> reg = <0x138A0000 0x100>;
> interrupts = <0 62 0>;
> @@ -157,6 +167,8 @@
> };
>
> i2c at 138B0000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> reg = <0x138B0000 0x100>;
> interrupts = <0 63 0>;
> @@ -164,6 +176,8 @@
> };
>
> i2c at 138C0000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> reg = <0x138C0000 0x100>;
> interrupts = <0 64 0>;
> @@ -171,6 +185,8 @@
> };
>
> i2c at 138D0000 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> compatible = "samsung,s3c2440-i2c";
> reg = <0x138D0000 0x100>;
> interrupts = <0 65 0>;
> --
> 1.7.12
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 2/5] ARM: Exynos4: dts: Specify address and size cells for i2c controllers
2012-09-05 3:58 ` Thomas Abraham
@ 2012-09-08 2:37 ` Kukjin Kim
0 siblings, 0 replies; 27+ messages in thread
From: Kukjin Kim @ 2012-09-08 2:37 UTC (permalink / raw)
To: linux-arm-kernel
Thomas Abraham wrote:
>
> On 4 September 2012 14:20, Tomasz Figa <t.figa@samsung.com> wrote:
> > Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > ---
> > arch/arm/boot/dts/exynos4.dtsi | 16 ++++++++++++++++
> > 1 file changed, 16 insertions(+)
>
> Acked-by: Thomas Abraham <thomas.abraham@linaro.org>
>
Looks OK to me, will apply.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 3/5] ARM: Exynos4: Add OF compatibility lookups for Exynos4 i2c adapters
2012-09-04 8:50 [PATCH v2 0/5] ARM: EXYNOS: Add support for Trats board using device tree Tomasz Figa
2012-09-04 8:50 ` [PATCH v2 1/5] mmc: host: sdhci-s3c: Add broken-voltage DT property for broken voltage quirk Tomasz Figa
2012-09-04 8:50 ` [PATCH v2 2/5] ARM: Exynos4: dts: Specify address and size cells for i2c controllers Tomasz Figa
@ 2012-09-04 8:50 ` Tomasz Figa
2012-09-05 3:59 ` Thomas Abraham
2012-09-04 8:50 ` [PATCH v2 4/5] ARM: EXYNOS: Increase maximum possible memory bank size to 512MiB Tomasz Figa
2012-09-04 8:50 ` [PATCH v2 5/5] ARM: Exynos: Add basic dts file for Samsung Trats board Tomasz Figa
4 siblings, 1 reply; 27+ messages in thread
From: Tomasz Figa @ 2012-09-04 8:50 UTC (permalink / raw)
To: linux-arm-kernel
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
arch/arm/mach-exynos/mach-exynos4-dt.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/arm/mach-exynos/mach-exynos4-dt.c b/arch/arm/mach-exynos/mach-exynos4-dt.c
index 8dad4ec..5f805b4 100644
--- a/arch/arm/mach-exynos/mach-exynos4-dt.c
+++ b/arch/arm/mach-exynos/mach-exynos4-dt.c
@@ -55,6 +55,20 @@ static const struct of_dev_auxdata exynos4_auxdata_lookup[] __initconst = {
"exynos4-sdhci.3", NULL),
OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(0),
"s3c2440-i2c.0", NULL),
+ OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(1),
+ "s3c2440-i2c.1", NULL),
+ OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(2),
+ "s3c2440-i2c.2", NULL),
+ OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(3),
+ "s3c2440-i2c.3", NULL),
+ OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(4),
+ "s3c2440-i2c.4", NULL),
+ OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(5),
+ "s3c2440-i2c.5", NULL),
+ OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(6),
+ "s3c2440-i2c.6", NULL),
+ OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(7),
+ "s3c2440-i2c.7", NULL),
OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS4_PA_SPI0,
"exynos4210-spi.0", NULL),
OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS4_PA_SPI1,
--
1.7.12
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v2 3/5] ARM: Exynos4: Add OF compatibility lookups for Exynos4 i2c adapters
2012-09-04 8:50 ` [PATCH v2 3/5] ARM: Exynos4: Add OF compatibility lookups for Exynos4 i2c adapters Tomasz Figa
@ 2012-09-05 3:59 ` Thomas Abraham
2012-09-08 2:38 ` Kukjin Kim
0 siblings, 1 reply; 27+ messages in thread
From: Thomas Abraham @ 2012-09-05 3:59 UTC (permalink / raw)
To: linux-arm-kernel
On 4 September 2012 14:20, Tomasz Figa <t.figa@samsung.com> wrote:
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> arch/arm/mach-exynos/mach-exynos4-dt.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
Acked-by: Thomas Abraham <thomas.abraham@linaro.org>
>
> diff --git a/arch/arm/mach-exynos/mach-exynos4-dt.c b/arch/arm/mach-exynos/mach-exynos4-dt.c
> index 8dad4ec..5f805b4 100644
> --- a/arch/arm/mach-exynos/mach-exynos4-dt.c
> +++ b/arch/arm/mach-exynos/mach-exynos4-dt.c
> @@ -55,6 +55,20 @@ static const struct of_dev_auxdata exynos4_auxdata_lookup[] __initconst = {
> "exynos4-sdhci.3", NULL),
> OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(0),
> "s3c2440-i2c.0", NULL),
> + OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(1),
> + "s3c2440-i2c.1", NULL),
> + OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(2),
> + "s3c2440-i2c.2", NULL),
> + OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(3),
> + "s3c2440-i2c.3", NULL),
> + OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(4),
> + "s3c2440-i2c.4", NULL),
> + OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(5),
> + "s3c2440-i2c.5", NULL),
> + OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(6),
> + "s3c2440-i2c.6", NULL),
> + OF_DEV_AUXDATA("samsung,s3c2440-i2c", EXYNOS4_PA_IIC(7),
> + "s3c2440-i2c.7", NULL),
> OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS4_PA_SPI0,
> "exynos4210-spi.0", NULL),
> OF_DEV_AUXDATA("samsung,exynos4210-spi", EXYNOS4_PA_SPI1,
> --
> 1.7.12
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 3/5] ARM: Exynos4: Add OF compatibility lookups for Exynos4 i2c adapters
2012-09-05 3:59 ` Thomas Abraham
@ 2012-09-08 2:38 ` Kukjin Kim
0 siblings, 0 replies; 27+ messages in thread
From: Kukjin Kim @ 2012-09-08 2:38 UTC (permalink / raw)
To: linux-arm-kernel
Thomas Abraham wrote:
>
> On 4 September 2012 14:20, Tomasz Figa <t.figa@samsung.com> wrote:
> > Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> > ---
> > arch/arm/mach-exynos/mach-exynos4-dt.c | 14 ++++++++++++++
> > 1 file changed, 14 insertions(+)
>
> Acked-by: Thomas Abraham <thomas.abraham@linaro.org>
>
OK, will apply.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 4/5] ARM: EXYNOS: Increase maximum possible memory bank size to 512MiB
2012-09-04 8:50 [PATCH v2 0/5] ARM: EXYNOS: Add support for Trats board using device tree Tomasz Figa
` (2 preceding siblings ...)
2012-09-04 8:50 ` [PATCH v2 3/5] ARM: Exynos4: Add OF compatibility lookups for Exynos4 i2c adapters Tomasz Figa
@ 2012-09-04 8:50 ` Tomasz Figa
2012-09-08 2:41 ` Kukjin Kim
2012-09-04 8:50 ` [PATCH v2 5/5] ARM: Exynos: Add basic dts file for Samsung Trats board Tomasz Figa
4 siblings, 1 reply; 27+ messages in thread
From: Tomasz Figa @ 2012-09-04 8:50 UTC (permalink / raw)
To: linux-arm-kernel
Some boards have larger memory banks than 256MiB. This patch increses
maximum bank size for Exynos-based boards to 512MiB.
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
arch/arm/mach-exynos/include/mach/memory.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-exynos/include/mach/memory.h b/arch/arm/mach-exynos/include/mach/memory.h
index 374ef2c..d4db508 100644
--- a/arch/arm/mach-exynos/include/mach/memory.h
+++ b/arch/arm/mach-exynos/include/mach/memory.h
@@ -15,8 +15,8 @@
#define PLAT_PHYS_OFFSET UL(0x40000000)
-/* Maximum of 256MiB in one bank */
+/* Maximum of 512MiB in one bank */
#define MAX_PHYSMEM_BITS 32
-#define SECTION_SIZE_BITS 28
+#define SECTION_SIZE_BITS 29
#endif /* __ASM_ARCH_MEMORY_H */
--
1.7.12
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v2 4/5] ARM: EXYNOS: Increase maximum possible memory bank size to 512MiB
2012-09-04 8:50 ` [PATCH v2 4/5] ARM: EXYNOS: Increase maximum possible memory bank size to 512MiB Tomasz Figa
@ 2012-09-08 2:41 ` Kukjin Kim
2012-09-08 8:15 ` Tomasz Figa
0 siblings, 1 reply; 27+ messages in thread
From: Kukjin Kim @ 2012-09-08 2:41 UTC (permalink / raw)
To: linux-arm-kernel
Tomasz Figa wrote:
>
> Some boards have larger memory banks than 256MiB. This patch increses
> maximum bank size for Exynos-based boards to 512MiB.
>
Well...the meaning of SECTION_SIZE_BITS is a little bit different you know.
Please refer to following thread.
http://lists.infradead.org/pipermail/linux-arm-kernel/2010-July/020184.html
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> arch/arm/mach-exynos/include/mach/memory.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-exynos/include/mach/memory.h b/arch/arm/mach-
> exynos/include/mach/memory.h
> index 374ef2c..d4db508 100644
> --- a/arch/arm/mach-exynos/include/mach/memory.h
> +++ b/arch/arm/mach-exynos/include/mach/memory.h
> @@ -15,8 +15,8 @@
>
> #define PLAT_PHYS_OFFSET UL(0x40000000)
>
> -/* Maximum of 256MiB in one bank */
> +/* Maximum of 512MiB in one bank */
> #define MAX_PHYSMEM_BITS 32
> -#define SECTION_SIZE_BITS 28
> +#define SECTION_SIZE_BITS 29
>
> #endif /* __ASM_ARCH_MEMORY_H */
> --
> 1.7.12
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 4/5] ARM: EXYNOS: Increase maximum possible memory bank size to 512MiB
2012-09-08 2:41 ` Kukjin Kim
@ 2012-09-08 8:15 ` Tomasz Figa
0 siblings, 0 replies; 27+ messages in thread
From: Tomasz Figa @ 2012-09-08 8:15 UTC (permalink / raw)
To: linux-arm-kernel
Hi Kgene,
On Saturday 08 of September 2012 11:41:31 Kukjin Kim wrote:
> Tomasz Figa wrote:
> > Some boards have larger memory banks than 256MiB. This patch increses
> > maximum bank size for Exynos-based boards to 512MiB.
>
> Well...the meaning of SECTION_SIZE_BITS is a little bit different you
> know.
>
> Please refer to following thread.
> http://lists.infradead.org/pipermail/linux-arm-kernel/2010-July/020184.ht
> ml
Well, I agree, but the effect of this patch is that it is possible to have
first bank (or rather section) up to 512MiB, in case of CONFIG_SPARSEMEM.
Still, we could go the other way and just define more smaller sections
instead and simply drop this patch. (Assuming that the correspondence of
sections and memory banks is irrelevant.)
--
Best regards,
Tomasz Figa
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 5/5] ARM: Exynos: Add basic dts file for Samsung Trats board
2012-09-04 8:50 [PATCH v2 0/5] ARM: EXYNOS: Add support for Trats board using device tree Tomasz Figa
` (3 preceding siblings ...)
2012-09-04 8:50 ` [PATCH v2 4/5] ARM: EXYNOS: Increase maximum possible memory bank size to 512MiB Tomasz Figa
@ 2012-09-04 8:50 ` Tomasz Figa
2012-09-05 4:05 ` Thomas Abraham
4 siblings, 1 reply; 27+ messages in thread
From: Tomasz Figa @ 2012-09-04 8:50 UTC (permalink / raw)
To: linux-arm-kernel
This commit adds basic device tree for Exynos4210-based Trats board.
Currently it provides support for eMMC over sdhci and MAX8997 PMIC.
Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
---
arch/arm/boot/dts/exynos4210-trats.dts | 237 +++++++++++++++++++++++++++++++++
arch/arm/mach-exynos/Makefile.boot | 2 +-
2 files changed, 238 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/exynos4210-trats.dts
diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
new file mode 100644
index 0000000..73567b8
--- /dev/null
+++ b/arch/arm/boot/dts/exynos4210-trats.dts
@@ -0,0 +1,237 @@
+/*
+ * Samsung's Exynos4210 based Trats board device tree source
+ *
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com
+ *
+ * Device tree source file for Samsung's Trats board which is based on
+ * Samsung's Exynos4210 SoC.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/dts-v1/;
+/include/ "exynos4210.dtsi"
+
+/ {
+ model = "Samsung Trats based on Exynos4210";
+ compatible = "samsung,trats", "samsung,exynos4210";
+
+ memory {
+ reg = <0x40000000 0x20000000
+ 0x60000000 0x20000000>;
+ };
+
+ chosen {
+ bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5";
+ };
+
+ vemmc_reg: voltage-regulator at 0 {
+ compatible = "regulator-fixed";
+ regulator-name = "VMEM_VDD_2.8V";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ gpio = <&gpk0 2 1 0 0>;
+ enable-active-high;
+ };
+
+ sdhci_emmc: sdhci at 12510000 {
+ bus-width = <8>;
+ non-removable;
+ broken-voltage;
+ gpios = <&gpk0 0 2 0 3>,
+ <&gpk0 1 2 0 3>,
+ <&gpk0 3 2 2 3>,
+ <&gpk0 4 2 2 3>,
+ <&gpk0 5 2 2 3>,
+ <&gpk0 6 2 2 3>,
+ <&gpk1 3 3 3 3>,
+ <&gpk1 4 3 3 3>,
+ <&gpk1 5 3 3 3>,
+ <&gpk1 6 3 3 3>;
+ vmmc-supply = <&vemmc_reg>;
+ status = "okay";
+ };
+
+ serial at 13800000 {
+ status = "okay";
+ };
+
+ serial at 13810000 {
+ status = "okay";
+ };
+
+ serial at 13820000 {
+ status = "okay";
+ };
+
+ serial at 13830000 {
+ status = "okay";
+ };
+
+ i2c at 138B0000 {
+ samsung,i2c-sda-delay = <100>;
+ samsung,i2c-slave-addr = <0x10>;
+ samsung,i2c-max-bus-freq = <100000>;
+ gpios = <&gpb 6 3 3 0>,
+ <&gpb 7 3 3 0>;
+ status = "okay";
+
+ max8997_pmic at 66 {
+ compatible = "maxim,max8997-pmic";
+
+ reg = <0x66>;
+
+ max8997,pmic-buck1-uses-gpio-dvs;
+ max8997,pmic-buck2-uses-gpio-dvs;
+ max8997,pmic-buck5-uses-gpio-dvs;
+
+ max8997,pmic-ignore-gpiodvs-side-effect;
+ max8997,pmic-buck125-default-dvs-idx = <0>;
+
+ max8997,pmic-buck125-dvs-gpios = <&gpx0 5 1 0 0>,
+ <&gpx0 6 1 0 0>,
+ <&gpl0 0 1 0 0>;
+
+ max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
+ <1250000>, <1200000>,
+ <1150000>, <1100000>,
+ <1000000>, <950000>;
+
+ max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
+ <950000>, <900000>,
+ <1100000>, <1000000>,
+ <950000>, <900000>;
+
+ max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
+ <1200000>, <1200000>,
+ <1200000>, <1200000>,
+ <1200000>, <1200000>;
+
+ regulators {
+ valive_reg: LDO2 {
+ regulator-name = "VALIVE_1.1V_C210";
+ regulator-min-microvolt = <1100000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-always-on;
+ };
+
+ vusb_reg: LDO3 {
+ regulator-name = "VUSB_1.1V_C210";
+ regulator-min-microvolt = <1100000>;
+ regulator-max-microvolt = <1100000>;
+ };
+
+ vmipi_reg: LDO4 {
+ regulator-name = "VMIPI_1.8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ vpda_reg: LDO6 {
+ regulator-name = "VCC_1.8V_PDA";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+
+ vcam_reg: LDO7 {
+ regulator-name = "CAM_ISP_1.8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ vusbdac_reg: LDO8 {
+ regulator-name = "VUSB/VDAC_3.3V_C210";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ vccpda_reg: LDO9 {
+ regulator-name = "VCC_2.8V_PDA";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ regulator-always-on;
+ };
+
+ vpll_reg: LDO10 {
+ regulator-name = "VPLL_1.1V_C210";
+ regulator-min-microvolt = <1100000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-always-on;
+ };
+
+ vcclcd_reg: LDO13 {
+ regulator-name = "VCC_3.3V_LCD";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ };
+
+ vlcd_reg: LDO15 {
+ regulator-name = "VLCD_2.2V";
+ regulator-min-microvolt = <2200000>;
+ regulator-max-microvolt = <2200000>;
+ };
+
+ camsensor_reg: LDO16 {
+ regulator-name = "CAM_SENSOR_IO_1.8V";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+
+ vddq_reg: LDO21 {
+ regulator-name = "VDDQ_M1M2_1.2V";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-always-on;
+ };
+
+ varm_breg: BUCK1 {
+ regulator-name = "VARM_1.2V_C210";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-always-on;
+ };
+
+ vint_breg: BUCK2 {
+ regulator-name = "VINT_1.1V_C210";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-always-on;
+ };
+
+ camisp_breg: BUCK4 {
+ regulator-name = "CAM_ISP_CORE_1.2V";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ };
+
+ vmem_breg: BUCK5 {
+ regulator-name = "VMEM_1.2V_C210";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-always-on;
+ };
+
+ vccsub_breg: BUCK7 {
+ regulator-name = "VCC_SUB_2.0V";
+ regulator-min-microvolt = <2000000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-always-on;
+ };
+
+ safe1_sreg: ESAFEOUT1 {
+ regulator-name = "SAFEOUT1";
+ regulator-always-on;
+ };
+
+ safe2_sreg: ESAFEOUT2 {
+ regulator-name = "SAFEOUT2";
+ regulator-boot-on;
+ };
+ };
+ };
+ };
+};
diff --git a/arch/arm/mach-exynos/Makefile.boot b/arch/arm/mach-exynos/Makefile.boot
index 31bd181..a79d999 100644
--- a/arch/arm/mach-exynos/Makefile.boot
+++ b/arch/arm/mach-exynos/Makefile.boot
@@ -1,5 +1,5 @@
zreladdr-y += 0x40008000
params_phys-y := 0x40000100
-dtb-$(CONFIG_MACH_EXYNOS4_DT) += exynos4210-origen.dtb exynos4210-smdkv310.dtb
+dtb-$(CONFIG_MACH_EXYNOS4_DT) += exynos4210-origen.dtb exynos4210-smdkv310.dtb exynos4210-trats.dtb
dtb-$(CONFIG_MACH_EXYNOS5_DT) += exynos5250-smdk5250.dtb
--
1.7.12
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v2 5/5] ARM: Exynos: Add basic dts file for Samsung Trats board
2012-09-04 8:50 ` [PATCH v2 5/5] ARM: Exynos: Add basic dts file for Samsung Trats board Tomasz Figa
@ 2012-09-05 4:05 ` Thomas Abraham
2012-09-05 5:53 ` Tomasz Figa
0 siblings, 1 reply; 27+ messages in thread
From: Thomas Abraham @ 2012-09-05 4:05 UTC (permalink / raw)
To: linux-arm-kernel
On 4 September 2012 14:20, Tomasz Figa <t.figa@samsung.com> wrote:
> This commit adds basic device tree for Exynos4210-based Trats board.
>
> Currently it provides support for eMMC over sdhci and MAX8997 PMIC.
>
> Signed-off-by: Tomasz Figa <t.figa@samsung.com>
> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
> ---
> arch/arm/boot/dts/exynos4210-trats.dts | 237 +++++++++++++++++++++++++++++++++
> arch/arm/mach-exynos/Makefile.boot | 2 +-
> 2 files changed, 238 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm/boot/dts/exynos4210-trats.dts
>
> diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
> new file mode 100644
> index 0000000..73567b8
> --- /dev/null
> +++ b/arch/arm/boot/dts/exynos4210-trats.dts
> @@ -0,0 +1,237 @@
> +/*
> + * Samsung's Exynos4210 based Trats board device tree source
> + *
> + * Copyright (c) 2012 Samsung Electronics Co., Ltd.
> + * http://www.samsung.com
> + *
> + * Device tree source file for Samsung's Trats board which is based on
> + * Samsung's Exynos4210 SoC.
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> +*/
> +
> +/dts-v1/;
> +/include/ "exynos4210.dtsi"
> +
> +/ {
> + model = "Samsung Trats based on Exynos4210";
> + compatible = "samsung,trats", "samsung,exynos4210";
> +
> + memory {
> + reg = <0x40000000 0x20000000
> + 0x60000000 0x20000000>;
> + };
Why does this have to be split. Why not have a single entry with the
size as 0x40000000?
> +
> + chosen {
> + bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5";
> + };
> +
> + vemmc_reg: voltage-regulator at 0 {
> + compatible = "regulator-fixed";
> + regulator-name = "VMEM_VDD_2.8V";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + gpio = <&gpk0 2 1 0 0>;
> + enable-active-high;
> + };
> +
> + sdhci_emmc: sdhci at 12510000 {
> + bus-width = <8>;
> + non-removable;
> + broken-voltage;
> + gpios = <&gpk0 0 2 0 3>,
> + <&gpk0 1 2 0 3>,
> + <&gpk0 3 2 2 3>,
> + <&gpk0 4 2 2 3>,
> + <&gpk0 5 2 2 3>,
> + <&gpk0 6 2 2 3>,
> + <&gpk1 3 3 3 3>,
> + <&gpk1 4 3 3 3>,
> + <&gpk1 5 3 3 3>,
> + <&gpk1 6 3 3 3>;
> + vmmc-supply = <&vemmc_reg>;
> + status = "okay";
> + };
> +
> + serial at 13800000 {
> + status = "okay";
> + };
> +
> + serial at 13810000 {
> + status = "okay";
> + };
> +
> + serial at 13820000 {
> + status = "okay";
> + };
> +
> + serial at 13830000 {
> + status = "okay";
> + };
> +
> + i2c at 138B0000 {
> + samsung,i2c-sda-delay = <100>;
> + samsung,i2c-slave-addr = <0x10>;
> + samsung,i2c-max-bus-freq = <100000>;
> + gpios = <&gpb 6 3 3 0>,
> + <&gpb 7 3 3 0>;
> + status = "okay";
> +
> + max8997_pmic at 66 {
> + compatible = "maxim,max8997-pmic";
> +
> + reg = <0x66>;
Probably, the interrupts can be listed when we have pinctrl driver
merged in Samsung tree.
> +
> + max8997,pmic-buck1-uses-gpio-dvs;
> + max8997,pmic-buck2-uses-gpio-dvs;
> + max8997,pmic-buck5-uses-gpio-dvs;
> +
> + max8997,pmic-ignore-gpiodvs-side-effect;
> + max8997,pmic-buck125-default-dvs-idx = <0>;
> +
> + max8997,pmic-buck125-dvs-gpios = <&gpx0 5 1 0 0>,
> + <&gpx0 6 1 0 0>,
> + <&gpl0 0 1 0 0>;
> +
> + max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
> + <1250000>, <1200000>,
> + <1150000>, <1100000>,
> + <1000000>, <950000>;
> +
> + max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
> + <950000>, <900000>,
> + <1100000>, <1000000>,
> + <950000>, <900000>;
> +
> + max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
> + <1200000>, <1200000>,
> + <1200000>, <1200000>,
> + <1200000>, <1200000>;
> +
> + regulators {
> + valive_reg: LDO2 {
> + regulator-name = "VALIVE_1.1V_C210";
> + regulator-min-microvolt = <1100000>;
> + regulator-max-microvolt = <1100000>;
> + regulator-always-on;
> + };
> +
> + vusb_reg: LDO3 {
> + regulator-name = "VUSB_1.1V_C210";
> + regulator-min-microvolt = <1100000>;
> + regulator-max-microvolt = <1100000>;
> + };
> +
> + vmipi_reg: LDO4 {
> + regulator-name = "VMIPI_1.8V";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + vpda_reg: LDO6 {
> + regulator-name = "VCC_1.8V_PDA";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + };
> +
> + vcam_reg: LDO7 {
> + regulator-name = "CAM_ISP_1.8V";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + vusbdac_reg: LDO8 {
> + regulator-name = "VUSB/VDAC_3.3V_C210";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + vccpda_reg: LDO9 {
> + regulator-name = "VCC_2.8V_PDA";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + regulator-always-on;
> + };
> +
> + vpll_reg: LDO10 {
> + regulator-name = "VPLL_1.1V_C210";
> + regulator-min-microvolt = <1100000>;
> + regulator-max-microvolt = <1100000>;
> + regulator-always-on;
> + };
> +
> + vcclcd_reg: LDO13 {
> + regulator-name = "VCC_3.3V_LCD";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + };
> +
> + vlcd_reg: LDO15 {
> + regulator-name = "VLCD_2.2V";
> + regulator-min-microvolt = <2200000>;
> + regulator-max-microvolt = <2200000>;
> + };
> +
> + camsensor_reg: LDO16 {
> + regulator-name = "CAM_SENSOR_IO_1.8V";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +
> + vddq_reg: LDO21 {
> + regulator-name = "VDDQ_M1M2_1.2V";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-always-on;
> + };
> +
> + varm_breg: BUCK1 {
> + regulator-name = "VARM_1.2V_C210";
> + regulator-min-microvolt = <900000>;
> + regulator-max-microvolt = <1350000>;
> + regulator-always-on;
> + };
> +
> + vint_breg: BUCK2 {
> + regulator-name = "VINT_1.1V_C210";
> + regulator-min-microvolt = <900000>;
> + regulator-max-microvolt = <1100000>;
> + regulator-always-on;
> + };
> +
> + camisp_breg: BUCK4 {
> + regulator-name = "CAM_ISP_CORE_1.2V";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + };
> +
> + vmem_breg: BUCK5 {
> + regulator-name = "VMEM_1.2V_C210";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-always-on;
> + };
> +
> + vccsub_breg: BUCK7 {
> + regulator-name = "VCC_SUB_2.0V";
> + regulator-min-microvolt = <2000000>;
> + regulator-max-microvolt = <2000000>;
> + regulator-always-on;
> + };
> +
> + safe1_sreg: ESAFEOUT1 {
> + regulator-name = "SAFEOUT1";
> + regulator-always-on;
> + };
> +
> + safe2_sreg: ESAFEOUT2 {
> + regulator-name = "SAFEOUT2";
> + regulator-boot-on;
> + };
> + };
> + };
> + };
> +};
> diff --git a/arch/arm/mach-exynos/Makefile.boot b/arch/arm/mach-exynos/Makefile.boot
> index 31bd181..a79d999 100644
> --- a/arch/arm/mach-exynos/Makefile.boot
> +++ b/arch/arm/mach-exynos/Makefile.boot
> @@ -1,5 +1,5 @@
> zreladdr-y += 0x40008000
> params_phys-y := 0x40000100
>
> -dtb-$(CONFIG_MACH_EXYNOS4_DT) += exynos4210-origen.dtb exynos4210-smdkv310.dtb
> +dtb-$(CONFIG_MACH_EXYNOS4_DT) += exynos4210-origen.dtb exynos4210-smdkv310.dtb exynos4210-trats.dtb
> dtb-$(CONFIG_MACH_EXYNOS5_DT) += exynos5250-smdk5250.dtb
> --
> 1.7.12
>
Reviewed-by: Thomas Abraham <thomas.abraham@linaro.org>
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 5/5] ARM: Exynos: Add basic dts file for Samsung Trats board
2012-09-05 4:05 ` Thomas Abraham
@ 2012-09-05 5:53 ` Tomasz Figa
2012-09-08 2:47 ` Kukjin Kim
0 siblings, 1 reply; 27+ messages in thread
From: Tomasz Figa @ 2012-09-05 5:53 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
Thanks for reviewing the patch.
On Wednesday 05 of September 2012 09:35:49 Thomas Abraham wrote:
> > +
> > + memory {
> > + reg = <0x40000000 0x20000000
> > + 0x60000000 0x20000000>;
> > + };
>
> Why does this have to be split. Why not have a single entry with the
> size as 0x40000000?
The memory node corresponds to struct meminfo and each entry (with two
values) makes one struct membank defining a memory bank.
I've been talking with Kyungmin about this. Originally bootloaders used to
report 4 banks of 256 MiB, but it turned out that real bank configuration
on Trats is 2 banks of 512 MiB.
I'm not into memory management internals, so I don't know if this has any
significance, but I defined the node to represent the real configuration
(otherwise I would have probably used 4 banks of 256 MiB and drop the 4th
patch).
> > + max8997_pmic at 66 {
> > + compatible = "maxim,max8997-pmic";
> > +
> > + reg = <0x66>;
>
> Probably, the interrupts can be listed when we have pinctrl driver
> merged in Samsung tree.
>
Right.
--
Best regards,
Tomasz Figa
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 5/5] ARM: Exynos: Add basic dts file for Samsung Trats board
2012-09-05 5:53 ` Tomasz Figa
@ 2012-09-08 2:47 ` Kukjin Kim
2012-09-08 8:21 ` Tomasz Figa
0 siblings, 1 reply; 27+ messages in thread
From: Kukjin Kim @ 2012-09-08 2:47 UTC (permalink / raw)
To: linux-arm-kernel
Tomasz Figa wrote:
>
> Hi,
>
> Thanks for reviewing the patch.
>
> On Wednesday 05 of September 2012 09:35:49 Thomas Abraham wrote:
> > > +
> > > + memory {
> > > + reg = <0x40000000 0x20000000
> > > + 0x60000000 0x20000000>;
> > > + };
> >
> > Why does this have to be split. Why not have a single entry with the
> > size as 0x40000000?
>
> The memory node corresponds to struct meminfo and each entry (with two
> values) makes one struct membank defining a memory bank.
>
Well...
> I've been talking with Kyungmin about this. Originally bootloaders used to
> report 4 banks of 256 MiB, but it turned out that real bank configuration
> on Trats is 2 banks of 512 MiB.
>
I think, following should ok here.
memory {
reg = <0x40000000 0x40000000>;
};
> I'm not into memory management internals, so I don't know if this has any
> significance, but I defined the node to represent the real configuration
> (otherwise I would have probably used 4 banks of 256 MiB and drop the 4th
> patch).
>
> > > + max8997_pmic at 66 {
> > > + compatible = "maxim,max8997-pmic";
> > > +
> > > + reg = <0x66>;
> >
> > Probably, the interrupts can be listed when we have pinctrl driver
> > merged in Samsung tree.
> >
>
> Right.
>
Note, you can do it on top of samsung tree :-)
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 5/5] ARM: Exynos: Add basic dts file for Samsung Trats board
2012-09-08 2:47 ` Kukjin Kim
@ 2012-09-08 8:21 ` Tomasz Figa
2012-09-19 23:49 ` Kukjin Kim
0 siblings, 1 reply; 27+ messages in thread
From: Tomasz Figa @ 2012-09-08 8:21 UTC (permalink / raw)
To: linux-arm-kernel
Hi Kgene,
On Saturday 08 of September 2012 11:47:15 Kukjin Kim wrote:
> > > > + memory {
> > > > + reg = <0x40000000 0x20000000
> > > > + 0x60000000 0x20000000>;
> > > > + };
> > >
> > > Why does this have to be split. Why not have a single entry with the
> > > size as 0x40000000?
> >
> > The memory node corresponds to struct meminfo and each entry (with two
> > values) makes one struct membank defining a memory bank.
>
> Well...
>
> > I've been talking with Kyungmin about this. Originally bootloaders used
> > to report 4 banks of 256 MiB, but it turned out that real bank
> > configuration on Trats is 2 banks of 512 MiB.
>
> I think, following should ok here.
>
> memory {
> reg = <0x40000000 0x40000000>;
> };
This will not boot with CONFIG_SPARSEMEM, unless maximum section size is
increased to 1024MiB.
> > > Probably, the interrupts can be listed when we have pinctrl driver
> > > merged in Samsung tree.
> >
> > Right.
>
> Note, you can do it on top of samsung tree :-)
OK.
--
Best regards,
Tomasz Figa
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v2 5/5] ARM: Exynos: Add basic dts file for Samsung Trats board
2012-09-08 8:21 ` Tomasz Figa
@ 2012-09-19 23:49 ` Kukjin Kim
0 siblings, 0 replies; 27+ messages in thread
From: Kukjin Kim @ 2012-09-19 23:49 UTC (permalink / raw)
To: linux-arm-kernel
Tomasz Figa wrote:
>
> Hi Kgene,
>
> On Saturday 08 of September 2012 11:47:15 Kukjin Kim wrote:
> > > > > + memory {
> > > > > + reg = <0x40000000 0x20000000
> > > > > + 0x60000000 0x20000000>;
> > > > > + };
> > > >
> > > > Why does this have to be split. Why not have a single entry with the
> > > > size as 0x40000000?
> > >
> > > The memory node corresponds to struct meminfo and each entry (with two
> > > values) makes one struct membank defining a memory bank.
> >
> > Well...
> >
> > > I've been talking with Kyungmin about this. Originally bootloaders
> used
> > > to report 4 banks of 256 MiB, but it turned out that real bank
> > > configuration on Trats is 2 banks of 512 MiB.
> >
> > I think, following should ok here.
> >
> > memory {
> > reg = <0x40000000 0x40000000>;
> > };
>
> This will not boot with CONFIG_SPARSEMEM, unless maximum section size is
> increased to 1024MiB.
>
Well, see other Origen board. As I know, it works well under environment you
said but I'm not sure about its boot-loader environment. Anyway, please
check one more and let me know. Then, if you still have same problem, let's
use double entries for memory temporary.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply [flat|nested] 27+ messages in thread