[PATCH 1/6] U6/U6715 ARM architecture files
Philippe Langlais
philippe.langlais at stericsson.com
Fri Jul 16 09:04:13 EDT 2010
Hi,
On 07/15/10 13:17, Russell King - ARM Linux wrote:
> Sorry, there's a few more points here.
>
>
Never mind
> On Fri, Jul 09, 2010 at 05:21:48PM +0200, Philippe Langlais wrote:
>
>> diff --git a/arch/arm/mach-u67xx/Kconfig b/arch/arm/mach-u67xx/Kconfig
>> new file mode 100644
>> index 0000000..48f53fb
>> --- /dev/null
>> +++ b/arch/arm/mach-u67xx/Kconfig
>> @@ -0,0 +1,11 @@
>> +comment "U67XX Board Type"
>> + depends on ARCH_U67XX
>> +
>> +choice
>> + prompt "Choose the U67XX Board type"
>> + default MACH_U67XX_WAVEC_2GB
>> + help
>> + "Choose the ST-Ericsson Reference Design Board"
>> + config MACH_U67XX_WAVEC_2GB
>> + bool "U67XX WaveC Board with 2Gb Micron combo"
>>
> I thought convention here was to have the "config" statements all starting
> on column 1, and a blank line after 'help'. help shouldn't need the text
> quoted.
>
>
OK
>> diff --git a/arch/arm/plat-u6xxx/Kconfig b/arch/arm/plat-u6xxx/Kconfig
>> new file mode 100644
>> index 0000000..b01f77c
>> --- /dev/null
>> +++ b/arch/arm/plat-u6xxx/Kconfig
>> @@ -0,0 +1,20 @@
>> +menu "STE U6XXX Implementations"
>> +
>> +choice
>> + prompt "U67XX System Type"
>> + default ARCH_U67XX
>> +
>> +config ARCH_U67XX
>> + bool "U67XX"
>> + select PLAT_U6XXX
>> + select CPU_ARM926T
>> + select GENERIC_TIME
>> + select GENERIC_CLOCKEVENTS
>> + select U6_MTU_TIMER
>> +endchoice
>>
> ...
>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index cf30fc9..7045a05 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -739,6 +739,13 @@ config ARCH_U300
>> help
>> Support for ST-Ericsson U300 series mobile platforms.
>>
>> +config PLAT_U6XXX
>> + bool "ST-Ericsson U6XXX Series"
>> + select GENERIC_GPIO
>> + select ARCH_REQUIRE_GPIOLIB
>> + help
>> + Support for ST-Ericsson's U6XXX architecture
>> +
>> config ARCH_U8500
>> bool "ST-Ericsson U8500 Series"
>> select CPU_V7
>>
> Hmm. So, we have PLAT_U6XXX to select support for the U6XXX platform
> series on the main machine class menu. We then have a globally visible
> ARCH_U67XX option, which selects PLAT_U6XXX, and that then gives us a
> MACH_U67XX_WAVEC_2GB option.
>
> This seems to be rather obsure - what if I have some other machine class
> selected, and I enable ARCH_U67XX ?
>
> How about having ARCH_U67XX in the main machine class menu, which allows
> us to see MACH_U67XX_WAVEC_2GB. When MACH_U67XX_WAVEC_2GB is enabled,
> this selects PLAT_U6XXX to pick up the plat-* stuff?
>
>
You're right, I fix that.
>> +static inline void arch_reset(char mode, const char *cmd)
>> +{
>> + unsigned long flags;
>> + /*
>> + * To reset, we hit the on-board reset register
>> + * in the system FPGA
>> + */
>> + /* diasble HW interruption */
>> + raw_local_irq_save(flags);
>> + /* load watchdog with reset value */
>> + outl(0x5, IO_ADDRESS(WDRU_BASE + WDRU_TIM_OFFSET));
>>
> s/outl/writel/ please.
>
OK
>
>> diff --git a/arch/arm/plat-u6xxx/include/mach/uncompress.h b/arch/arm/plat-u6xxx/include/mach/uncompress.h
>> new file mode 100644
>> index 0000000..7dae14d
>> --- /dev/null
>> +++ b/arch/arm/plat-u6xxx/include/mach/uncompress.h
>>
> ...
>
>> +static void putc(int c)
>> +{
>> + if (c == '\n')
>> + putc('\r');
>>
> Hmm, so you want to output \r\r\n for each \n in the output stream?
>
I removed these lines.
>
>> diff --git a/arch/arm/plat-u6xxx/timer.c b/arch/arm/plat-u6xxx/timer.c
>> new file mode 100644
>> index 0000000..90464b1
>> --- /dev/null
>> +++ b/arch/arm/plat-u6xxx/timer.c
>>
> ...
>
>> +struct mmtu_ctxt {
>> + unsigned long *base;
>>
> __iomem ?
>
Yes
>
>> + int autoreload;
>>
> Is this a write-only variable? I couldn't find anything which reads it.
>
>
OK, it's a relicat of auto reload precedent implementation.
>> + uint32_t compvalue;
>> + uint32_t endvalue;
>> + struct clk *clk;
>> + int mode;
>> +};
>>
> ...
>
>> + case CLOCK_EVT_MODE_SHUTDOWN:
>> + mmtu->autoreload = 0;
>> +
>> + if (mmtu->clk == NULL) {
>> + mmtu->clk = clk_get(0, "MMTU");
>>
> clk_get(NULL, "MMTU")
>
OK
>
>> +struct sys_timer u6_timer = {
>> + .init = u6_timer_init,
>> +#ifndef CONFIG_GENERIC_TIME
>> + .offset = NULL,
>> +#endif
>>
> There's no need to initialize .offset, so this ifdef and initializer can
> be removed entirely.
>
OK
A new U6 arch patch will be sent very soon.
Regards,
Philippe
More information about the linux-arm-kernel
mailing list