Re: [U-Boot] [PATCH RFC 1/7] omap_hsmmc: update struct hsmmc to accommodate omap3 from DT

2017-04-11 Thread Adam Ford
On Mon, Apr 10, 2017 at 11:33 PM, Vignesh R  wrote:
>
>
> On Tuesday 11 April 2017 03:42 AM, Adam Ford wrote:
>> I am working on porting an OMAP3630 board to support device tree, and
>> I attempted to change enable DM_MMC.  Unfortunately, that broke MMC.
>>
>> I discovered that the base addresses were originally updated to reflect a
>> change in the base address when using the device tree for some devices.
>>
>> This was done in 11e1582506c6 ("omap_hsmmc: update struct hsmmc to accomodate
>> base address from DT")
>>
>> Unfortunately, this breaks the base address on an OMAP3630 (and I assume
>> omap34xx) which currently doesn't have OF support yet.
>>
>> Without this patch, the when driver attemps to write to mmc_base->sysconfig
>> at 4809c110 is used instead of mmc_base->sysconfig at 4809c010.  This makes 
>> any
>> attempt to use the mmc fail.  With this patch, I am able to read/write to the
>> MMC device with DM_MMC enabled with OF support.
>>
>> If there is a better solution, I am open to ideas.  I verified this against
>> the OMAP3530 TRM and OMAP3630 TRM.  Since AM3359 TRM has the same value,
>> it might be helpful for other boards, but I don't have them to test.  If 
>> there
>> is a better solution, I am perfectly open for suggestions.
>
> How about handling this in the same way as handled by Linux kernel
> omap_hsmmc driver?
>

I will concede that I originally misread the AM33xx TRM.   According
to it Table 18-14, the SYSSTATUS is offset 0x114, and the OMAP3
datasheet shows 0x14 consistent with the table in U-boot without the
x100 byte offset.

I believe my initial suggestion should work by checking
CONFIG_OMAP34XX.  If present, it will not add the offset.

Sorry for the noise, I'll clean up the patch and resubmit it.

adam

>>
>> If this gets reviewed and approved, I can push the OMAP3630 (and OMAP3) 
>> device
>> trees which might let more boards move to DM and OF support.
>>
>> Signed-off-by: Adam Ford 
>>
>> diff --git a/arch/arm/include/asm/omap_mmc.h 
>> b/arch/arm/include/asm/omap_mmc.h
>> index f2bf645..fd9b741 100644
>> --- a/arch/arm/include/asm/omap_mmc.h
>> +++ b/arch/arm/include/asm/omap_mmc.h
>> @@ -26,7 +26,7 @@
>>  #define OMAP_MMC_H_
>>
>>  struct hsmmc {
>> -#ifdef CONFIG_DM_MMC
>> +#if defined(CONFIG_DM_MMC) && !defined(OMAP34XX)
>>   unsigned char res0[0x100];
>>  #endif
>>   unsigned char res1[0x10];
>>
>
> --
> Regards
> Vignesh
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH RFC 1/7] omap_hsmmc: update struct hsmmc to accommodate omap3 from DT

2017-04-10 Thread Vignesh R


On Tuesday 11 April 2017 03:42 AM, Adam Ford wrote:
> I am working on porting an OMAP3630 board to support device tree, and
> I attempted to change enable DM_MMC.  Unfortunately, that broke MMC.
> 
> I discovered that the base addresses were originally updated to reflect a
> change in the base address when using the device tree for some devices.
> 
> This was done in 11e1582506c6 ("omap_hsmmc: update struct hsmmc to accomodate
> base address from DT")
> 
> Unfortunately, this breaks the base address on an OMAP3630 (and I assume
> omap34xx) which currently doesn't have OF support yet.
> 
> Without this patch, the when driver attemps to write to mmc_base->sysconfig
> at 4809c110 is used instead of mmc_base->sysconfig at 4809c010.  This makes 
> any
> attempt to use the mmc fail.  With this patch, I am able to read/write to the
> MMC device with DM_MMC enabled with OF support.
> 
> If there is a better solution, I am open to ideas.  I verified this against
> the OMAP3530 TRM and OMAP3630 TRM.  Since AM3359 TRM has the same value,
> it might be helpful for other boards, but I don't have them to test.  If there
> is a better solution, I am perfectly open for suggestions.

How about handling this in the same way as handled by Linux kernel
omap_hsmmc driver?

> 
> If this gets reviewed and approved, I can push the OMAP3630 (and OMAP3) device
> trees which might let more boards move to DM and OF support.
> 
> Signed-off-by: Adam Ford 
> 
> diff --git a/arch/arm/include/asm/omap_mmc.h b/arch/arm/include/asm/omap_mmc.h
> index f2bf645..fd9b741 100644
> --- a/arch/arm/include/asm/omap_mmc.h
> +++ b/arch/arm/include/asm/omap_mmc.h
> @@ -26,7 +26,7 @@
>  #define OMAP_MMC_H_
>  
>  struct hsmmc {
> -#ifdef CONFIG_DM_MMC
> +#if defined(CONFIG_DM_MMC) && !defined(OMAP34XX)
>   unsigned char res0[0x100];
>  #endif
>   unsigned char res1[0x10];
> 

-- 
Regards
Vignesh
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH RFC 1/7] omap_hsmmc: update struct hsmmc to accommodate omap3 from DT

2017-04-10 Thread Adam Ford
I am working on porting an OMAP3630 board to support device tree, and
I attempted to change enable DM_MMC.  Unfortunately, that broke MMC.

I discovered that the base addresses were originally updated to reflect a
change in the base address when using the device tree for some devices.

This was done in 11e1582506c6 ("omap_hsmmc: update struct hsmmc to accomodate
base address from DT")

Unfortunately, this breaks the base address on an OMAP3630 (and I assume
omap34xx) which currently doesn't have OF support yet.

Without this patch, the when driver attemps to write to mmc_base->sysconfig
at 4809c110 is used instead of mmc_base->sysconfig at 4809c010.  This makes any
attempt to use the mmc fail.  With this patch, I am able to read/write to the
MMC device with DM_MMC enabled with OF support.

If there is a better solution, I am open to ideas.  I verified this against
the OMAP3530 TRM and OMAP3630 TRM.  Since AM3359 TRM has the same value,
it might be helpful for other boards, but I don't have them to test.  If there
is a better solution, I am perfectly open for suggestions.

If this gets reviewed and approved, I can push the OMAP3630 (and OMAP3) device
trees which might let more boards move to DM and OF support.

Signed-off-by: Adam Ford 

diff --git a/arch/arm/include/asm/omap_mmc.h b/arch/arm/include/asm/omap_mmc.h
index f2bf645..fd9b741 100644
--- a/arch/arm/include/asm/omap_mmc.h
+++ b/arch/arm/include/asm/omap_mmc.h
@@ -26,7 +26,7 @@
 #define OMAP_MMC_H_
 
 struct hsmmc {
-#ifdef CONFIG_DM_MMC
+#if defined(CONFIG_DM_MMC) && !defined(OMAP34XX)
unsigned char res0[0x100];
 #endif
unsigned char res1[0x10];
-- 
2.7.4

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot