RE: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-20 Thread Pandita, Vikram

>From: Tony Lindgren [mailto:t...@atomide.com]
>To: Pandita, Vikram
>Cc: Christensen, Mikkel; linux-omap@vger.kernel.org
>Subject: Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
>
>* Pandita, Vikram  [090519 17:10]:
>> Tony
>>
>> >-Original Message-
>> >From: linux-omap-ow...@vger.kernel.org 
>> >[mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of
>> >Pandita, Vikram
>> >Sent: Tuesday, May 19, 2009 7:01 PM
>> >To: Tony Lindgren
>> >Cc: Christensen, Mikkel; linux-omap@vger.kernel.org
>> >Subject: RE: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
>> >
>> >
>> >
>> 
>> >>
>> >>Well you still cannot have it as a late_initcall(), you should just call 
>> >>the
>> >>function from board-zoom2.c. Otherwise it will run for all the boards.
>>
>> Way not execute the debug board function for other boards could be to put it 
>> under
>> #ifdef CONFIG_MACH_OMAP_ZOOM2
>>
>> static int __init omap_zoom2_debugboard_init(void)
>> {
>> #ifdef CONFIG_MACH_OMAP_ZOOM2
>> if (!omap_zoom2_debugboard_detect())
>> return 0;
>>
>> zoom2_init_smsc911x();
>> zoom2_init_quaduart();
>> return platform_add_devices(zoom2_devices, 
>> ARRAY_SIZE(zoom2_devices));
>> #endif
>> }
>> late_initcall(omap_zoom2_debugboard_init);
>>
>>
>> The registration order of the UARTS with 8250 driver is all the reason we 
>> have to do this
>_initcall()
>
>Hmm, OK. That sounds like a bug that's from some older code. We should probably
>just do the platform_device_register in omap_serial_init(), then you can call
>your zoom_debug_init() after omap_serial_init().
>
>Care to do a separate patch to get rid of omap_init in mach-omap2/serial.c, 
>and do
>the registration in omap_serial_init()?

Yes I can do that. I will submit the patch for this change.
Following this I will resubmit Zoom2-board support version4 

>
>Regards,
>
>Tony
>
>>
>>
>> >
>> >The problem is that serial.c: platform_device_register() for UART1/2/3 
>> >happens as arch_init().
>> >
>> >We want that Quard/Dbg-board Uart console to appear as UART4(ttyS3) and so 
>> >the
>> >platform_device_register() has to happen after the arch_init() call from 
>> >serial.c
>> >
>> >If we put the dbg-board init in .init_machine   = omap_zoom2_init() 
>> >function, then this gets
>called
>> >first before the serial.c:arch_init() and assigns ttyS0(UART0) to the debug 
>> >board uart.
>> >
>> >This is not what we want to do.
>> >
>> >
>> >>
>> >>Regards,
>> >>
>> >>Tony
>> >>
>> >
>> >--
>> >To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>> >the body of a message to majord...@vger.kernel.org
>> >More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-20 Thread Tony Lindgren
* Pandita, Vikram  [090519 17:10]:
> Tony
> 
> >-Original Message-
> >From: linux-omap-ow...@vger.kernel.org 
> >[mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of
> >Pandita, Vikram
> >Sent: Tuesday, May 19, 2009 7:01 PM
> >To: Tony Lindgren
> >Cc: Christensen, Mikkel; linux-omap@vger.kernel.org
> >Subject: RE: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
> >
> >
> >
> 
> >>
> >>Well you still cannot have it as a late_initcall(), you should just call the
> >>function from board-zoom2.c. Otherwise it will run for all the boards.
> 
> Way not execute the debug board function for other boards could be to put it 
> under 
> #ifdef CONFIG_MACH_OMAP_ZOOM2 
> 
> static int __init omap_zoom2_debugboard_init(void)
> {
> #ifdef CONFIG_MACH_OMAP_ZOOM2
> if (!omap_zoom2_debugboard_detect())
> return 0;
> 
> zoom2_init_smsc911x();
> zoom2_init_quaduart();
> return platform_add_devices(zoom2_devices, ARRAY_SIZE(zoom2_devices));
> #endif
> }
> late_initcall(omap_zoom2_debugboard_init);
> 
> 
> The registration order of the UARTS with 8250 driver is all the reason we 
> have to do this _initcall()

Hmm, OK. That sounds like a bug that's from some older code. We should probably
just do the platform_device_register in omap_serial_init(), then you can call
your zoom_debug_init() after omap_serial_init().

Care to do a separate patch to get rid of omap_init in mach-omap2/serial.c, and 
do
the registration in omap_serial_init()?

Regards,

Tony

> 
> 
> >
> >The problem is that serial.c: platform_device_register() for UART1/2/3 
> >happens as arch_init().
> >
> >We want that Quard/Dbg-board Uart console to appear as UART4(ttyS3) and so 
> >the
> >platform_device_register() has to happen after the arch_init() call from 
> >serial.c
> >
> >If we put the dbg-board init in .init_machine   = omap_zoom2_init() 
> >function, then this gets called
> >first before the serial.c:arch_init() and assigns ttyS0(UART0) to the debug 
> >board uart.
> >
> >This is not what we want to do.
> >
> >
> >>
> >>Regards,
> >>
> >>Tony
> >>
> >
> >--
> >To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> >the body of a message to majord...@vger.kernel.org
> >More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-19 Thread Pandita, Vikram
Tony

>-Original Message-
>From: linux-omap-ow...@vger.kernel.org 
>[mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of
>Pandita, Vikram
>Sent: Tuesday, May 19, 2009 7:01 PM
>To: Tony Lindgren
>Cc: Christensen, Mikkel; linux-omap@vger.kernel.org
>Subject: RE: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
>
>
>

>>
>>Well you still cannot have it as a late_initcall(), you should just call the
>>function from board-zoom2.c. Otherwise it will run for all the boards.

Way not execute the debug board function for other boards could be to put it 
under 
#ifdef CONFIG_MACH_OMAP_ZOOM2 

static int __init omap_zoom2_debugboard_init(void)
{
#ifdef CONFIG_MACH_OMAP_ZOOM2
if (!omap_zoom2_debugboard_detect())
return 0;

zoom2_init_smsc911x();
zoom2_init_quaduart();
return platform_add_devices(zoom2_devices, ARRAY_SIZE(zoom2_devices));
#endif
}
late_initcall(omap_zoom2_debugboard_init);


The registration order of the UARTS with 8250 driver is all the reason we have 
to do this _initcall()


>
>The problem is that serial.c: platform_device_register() for UART1/2/3 happens 
>as arch_init().
>
>We want that Quard/Dbg-board Uart console to appear as UART4(ttyS3) and so the
>platform_device_register() has to happen after the arch_init() call from 
>serial.c
>
>If we put the dbg-board init in .init_machine   = omap_zoom2_init() function, 
>then this gets called
>first before the serial.c:arch_init() and assigns ttyS0(UART0) to the debug 
>board uart.
>
>This is not what we want to do.
>
>
>>
>>Regards,
>>
>>Tony
>>
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>the body of a message to majord...@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-19 Thread Pandita, Vikram


>-Original Message-
>From: Tony Lindgren [mailto:t...@atomide.com]
>Sent: Tuesday, May 19, 2009 6:55 PM
>To: Pandita, Vikram
>Cc: Christensen, Mikkel; linux-omap@vger.kernel.org
>Subject: Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
>
>* Pandita, Vikram  [090519 16:48]:
>> Tony
>>
>> >-Original Message-
>> >From: Tony Lindgren [mailto:t...@atomide.com]
>> >Sent: Tuesday, May 19, 2009 11:30 AM
>> >To: Pandita, Vikram
>> >Cc: Christensen, Mikkel; linux-omap@vger.kernel.org
>> >Subject: Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
>> >
>> >* Pandita, Vikram  [090518 20:55]:
>> >> Tony
>> >>
>> >> >* Pandita, Vikram  [090518 14:31]:
>> >> >> Tony
>> >> >>
>> >> >> >>
>> >> >> >> +
>> >> >> >> +   zoom2_init_smsc911x();
>> >> >> >> +   zoom2_init_quaduart();
>> >> >> >> +   return platform_add_devices(zoom2_devices, 
>> >> >> >> ARRAY_SIZE(zoom2_devices));
>> >> >> >> +}
>> >> >> >> +arch_initcall(omap_zoom2_debugboard_init);
>> >> >> >
>> >> >> >Please just move all the related functions to board-zoom2.c. I don't 
>> >> >> >see any
>> >> >> >reason to have a separate file for the debugboard features. The 
>> >> >> >runtime detection
>> >> >> >should do the trick.
>> >> >>
>> >> >> Two reasons for keeping a separate debug board.
>> >> >> a) debug board is detachable in h/w and hence we thought its better to 
>> >> >> keep the s/w also that
>> >way
>> >> >> The quart chip on debug bard is a quard-uart and can support 4 
>> >> >> different console outputs.
>> >> >> All those we thought of adding in future.
>> >> >
>> >> >Well those you can easily optimize out by not compiling in those devices.
>> >> >
>> >> >>
>> >> >> b) we took reference from board-rx51-peripherals.c wherein some parts 
>> >> >> of the board file can
>be
>> >> >moved out to a new file
>> >> >>
>> >> >> If you still think we need to merge, then let us know.
>> >> >> We are open to suggestions/changes.
>> >> >
>> >> >Well the reason for separate board-*-peripheral-whatever.c files is that
>> >> >they're intended to be shared with other board-*.c files. Currently n8x0
>> >> >and rx51 share devices. In general, we should try to do generic platform
>> >> >init files, like gpmc-onenand.c and gpmc-smc91x.c.
>> >> >
>> >> >Then I see need for gpmc-sdp-flash.c that's shared between 2430 and 3430 
>> >> >sdp
>> >> >at least.
>> >> >
>> >> >So yeah, for zoom2, I'd rather see just board-zoom2.c for now. But if you
>> >> >create some other board that uses the same debug board functions, then
>> >> >there could be a separate zoom-debugboard.c.
>> >>
>> >>
>> >> Yes. There is next generation of zoom boards that will re-use the Debug 
>> >> board.
>> >> That way the debug board file will get re-used.
>> >
>> >OK, how about rename it to something that makes sense as a name for
>> >multiple zoom like boards and resubmit.
>>
>> I am planning on renaming debug board zoom2 file to board-zoom-debugboard.c
>> That way it can be used by different Zoom family of boards.
>
>OK
>
>> >Also the arch_initcall() issue below still needs fixing.
>>
>> I have cleaned the issue by making the debug_board_init call as 
>> late_initcall().
>>
>> There is a dependency on serial.c file and hence the need for 
>> arch_init/late_init calls.
>>
>> platform_device_register() should happen for serial.c file (8250) for the 
>> omap uarts first and this
>should be followed by platform_device_register() for the quard uart on debug 
>board.
>>
>> So there is a dependency on order of registration of platform device for the 
>> same 8250 driver.
>>
>> If you ack, then I can post the patches with the changes.
>
>Well you still cannot have it as a late_initcall(), you should just call the
>function from board-zoom2.c. Otherwise it will run for all the boards.

The problem is that serial.c: platform_device_register() for UART1/2/3 happens 
as arch_init().

We want that Quard/Dbg-board Uart console to appear as UART4(ttyS3) and so the 
platform_device_register() has to happen after the arch_init() call from 
serial.c

If we put the dbg-board init in .init_machine   = omap_zoom2_init() function, 
then this gets called first before the serial.c:arch_init() and assigns 
ttyS0(UART0) to the debug board uart.

This is not what we want to do.

 
>
>Regards,
>
>Tony
>

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-19 Thread Tony Lindgren
* Pandita, Vikram  [090519 16:48]:
> Tony
> 
> >-Original Message-
> >From: Tony Lindgren [mailto:t...@atomide.com]
> >Sent: Tuesday, May 19, 2009 11:30 AM
> >To: Pandita, Vikram
> >Cc: Christensen, Mikkel; linux-omap@vger.kernel.org
> >Subject: Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
> >
> >* Pandita, Vikram  [090518 20:55]:
> >> Tony
> >>
> >> >* Pandita, Vikram  [090518 14:31]:
> >> >> Tony
> >> >>
> >> >> >>
> >> >> >> +
> >> >> >> +zoom2_init_smsc911x();
> >> >> >> +zoom2_init_quaduart();
> >> >> >> +return platform_add_devices(zoom2_devices, 
> >> >> >> ARRAY_SIZE(zoom2_devices));
> >> >> >> +}
> >> >> >> +arch_initcall(omap_zoom2_debugboard_init);
> >> >> >
> >> >> >Please just move all the related functions to board-zoom2.c. I don't 
> >> >> >see any
> >> >> >reason to have a separate file for the debugboard features. The 
> >> >> >runtime detection
> >> >> >should do the trick.
> >> >>
> >> >> Two reasons for keeping a separate debug board.
> >> >> a) debug board is detachable in h/w and hence we thought its better to 
> >> >> keep the s/w also that
> >way
> >> >> The quart chip on debug bard is a quard-uart and can support 4 
> >> >> different console outputs.
> >> >> All those we thought of adding in future.
> >> >
> >> >Well those you can easily optimize out by not compiling in those devices.
> >> >
> >> >>
> >> >> b) we took reference from board-rx51-peripherals.c wherein some parts 
> >> >> of the board file can be
> >> >moved out to a new file
> >> >>
> >> >> If you still think we need to merge, then let us know.
> >> >> We are open to suggestions/changes.
> >> >
> >> >Well the reason for separate board-*-peripheral-whatever.c files is that
> >> >they're intended to be shared with other board-*.c files. Currently n8x0
> >> >and rx51 share devices. In general, we should try to do generic platform
> >> >init files, like gpmc-onenand.c and gpmc-smc91x.c.
> >> >
> >> >Then I see need for gpmc-sdp-flash.c that's shared between 2430 and 3430 
> >> >sdp
> >> >at least.
> >> >
> >> >So yeah, for zoom2, I'd rather see just board-zoom2.c for now. But if you
> >> >create some other board that uses the same debug board functions, then
> >> >there could be a separate zoom-debugboard.c.
> >>
> >>
> >> Yes. There is next generation of zoom boards that will re-use the Debug 
> >> board.
> >> That way the debug board file will get re-used.
> >
> >OK, how about rename it to something that makes sense as a name for
> >multiple zoom like boards and resubmit.
> 
> I am planning on renaming debug board zoom2 file to board-zoom-debugboard.c
> That way it can be used by different Zoom family of boards.

OK 

> >Also the arch_initcall() issue below still needs fixing.
> 
> I have cleaned the issue by making the debug_board_init call as 
> late_initcall().
> 
> There is a dependency on serial.c file and hence the need for 
> arch_init/late_init calls.
> 
> platform_device_register() should happen for serial.c file (8250) for the 
> omap uarts first and this should be followed by platform_device_register() 
> for the quard uart on debug board.
> 
> So there is a dependency on order of registration of platform device for the 
> same 8250 driver.
> 
> If you ack, then I can post the patches with the changes.

Well you still cannot have it as a late_initcall(), you should just call the
function from board-zoom2.c. Otherwise it will run for all the boards.

Regards,

Tony

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-19 Thread Pandita, Vikram
Tony

>-Original Message-
>From: Tony Lindgren [mailto:t...@atomide.com]
>Sent: Tuesday, May 19, 2009 11:30 AM
>To: Pandita, Vikram
>Cc: Christensen, Mikkel; linux-omap@vger.kernel.org
>Subject: Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
>
>* Pandita, Vikram  [090518 20:55]:
>> Tony
>>
>> >* Pandita, Vikram  [090518 14:31]:
>> >> Tony
>> >>
>> >> >>
>> >> >> +
>> >> >> +  zoom2_init_smsc911x();
>> >> >> +  zoom2_init_quaduart();
>> >> >> +  return platform_add_devices(zoom2_devices, 
>> >> >> ARRAY_SIZE(zoom2_devices));
>> >> >> +}
>> >> >> +arch_initcall(omap_zoom2_debugboard_init);
>> >> >
>> >> >Please just move all the related functions to board-zoom2.c. I don't see 
>> >> >any
>> >> >reason to have a separate file for the debugboard features. The runtime 
>> >> >detection
>> >> >should do the trick.
>> >>
>> >> Two reasons for keeping a separate debug board.
>> >> a) debug board is detachable in h/w and hence we thought its better to 
>> >> keep the s/w also that
>way
>> >> The quart chip on debug bard is a quard-uart and can support 4 different 
>> >> console outputs.
>> >> All those we thought of adding in future.
>> >
>> >Well those you can easily optimize out by not compiling in those devices.
>> >
>> >>
>> >> b) we took reference from board-rx51-peripherals.c wherein some parts of 
>> >> the board file can be
>> >moved out to a new file
>> >>
>> >> If you still think we need to merge, then let us know.
>> >> We are open to suggestions/changes.
>> >
>> >Well the reason for separate board-*-peripheral-whatever.c files is that
>> >they're intended to be shared with other board-*.c files. Currently n8x0
>> >and rx51 share devices. In general, we should try to do generic platform
>> >init files, like gpmc-onenand.c and gpmc-smc91x.c.
>> >
>> >Then I see need for gpmc-sdp-flash.c that's shared between 2430 and 3430 sdp
>> >at least.
>> >
>> >So yeah, for zoom2, I'd rather see just board-zoom2.c for now. But if you
>> >create some other board that uses the same debug board functions, then
>> >there could be a separate zoom-debugboard.c.
>>
>>
>> Yes. There is next generation of zoom boards that will re-use the Debug 
>> board.
>> That way the debug board file will get re-used.
>
>OK, how about rename it to something that makes sense as a name for
>multiple zoom like boards and resubmit.

I am planning on renaming debug board zoom2 file to board-zoom-debugboard.c
That way it can be used by different Zoom family of boards.

>
>Also the arch_initcall() issue below still needs fixing.

I have cleaned the issue by making the debug_board_init call as late_initcall().

There is a dependency on serial.c file and hence the need for 
arch_init/late_init calls.

platform_device_register() should happen for serial.c file (8250) for the omap 
uarts first and this should be followed by platform_device_register() for the 
quard uart on debug board.

So there is a dependency on order of registration of platform device for the 
same 8250 driver.

If you ack, then I can post the patches with the changes.

>
>Regards,
>
>Tony
>
>>
>> >
>> >Regards,
>> >
>> >Tony
>> >
>> >
>> >> >
>> >> >Also, the arch_initcall() above is wrong, it runs for all the boards and
>> >> >platforms compiled in even if they are not zoom2 boards.
>> >> >
>> >> >Other than, looks OK to me, so we might be able to get this into mainline
>> >> >this merge window.
>> >> >
>> >> >Regards,
>> >> >
>> >> >Tony
>> >>
>> >>
>> >>
>> >> >
>> >> >
>> >> >> diff --git a/arch/arm/mach-omap2/board-zoom2.c 
>> >> >> b/arch/arm/mach-omap2/board-zoom2.c
>> >> >> new file mode 100644
>> >> >> index 000..5a656b3
>> >> >> --- /dev/null
>> >> >> +++ b/arch/arm/mach-omap2/board-zoom2.c
>> >> >> @@ -0,0 +1,107 @@
>> >> >> +/*
>> >> >> + * Copyright (C) 2009 Texas Instruments Inc.

Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-19 Thread Tony Lindgren
* Pandita, Vikram  [090518 20:55]:
> Tony
> 
> >-Original Message-
> >From: Tony Lindgren [mailto:t...@atomide.com]
> >Sent: Monday, May 18, 2009 4:39 PM
> >To: Pandita, Vikram
> >Cc: Christensen, Mikkel; linux-omap@vger.kernel.org
> >Subject: Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
> >
> >* Pandita, Vikram  [090518 14:31]:
> >> Tony
> >>
> >> >>
> >> >> +
> >> >> +   zoom2_init_smsc911x();
> >> >> +   zoom2_init_quaduart();
> >> >> +   return platform_add_devices(zoom2_devices, 
> >> >> ARRAY_SIZE(zoom2_devices));
> >> >> +}
> >> >> +arch_initcall(omap_zoom2_debugboard_init);
> >> >
> >> >Please just move all the related functions to board-zoom2.c. I don't see 
> >> >any
> >> >reason to have a separate file for the debugboard features. The runtime 
> >> >detection
> >> >should do the trick.
> >>
> >> Two reasons for keeping a separate debug board.
> >> a) debug board is detachable in h/w and hence we thought its better to 
> >> keep the s/w also that way
> >> The quart chip on debug bard is a quard-uart and can support 4 different 
> >> console outputs.
> >> All those we thought of adding in future.
> >
> >Well those you can easily optimize out by not compiling in those devices.
> >
> >>
> >> b) we took reference from board-rx51-peripherals.c wherein some parts of 
> >> the board file can be
> >moved out to a new file
> >>
> >> If you still think we need to merge, then let us know.
> >> We are open to suggestions/changes.
> >
> >Well the reason for separate board-*-peripheral-whatever.c files is that
> >they're intended to be shared with other board-*.c files. Currently n8x0
> >and rx51 share devices. In general, we should try to do generic platform
> >init files, like gpmc-onenand.c and gpmc-smc91x.c.
> >
> >Then I see need for gpmc-sdp-flash.c that's shared between 2430 and 3430 sdp
> >at least.
> >
> >So yeah, for zoom2, I'd rather see just board-zoom2.c for now. But if you
> >create some other board that uses the same debug board functions, then
> >there could be a separate zoom-debugboard.c.
> 
> 
> Yes. There is next generation of zoom boards that will re-use the Debug board.
> That way the debug board file will get re-used.

OK, how about rename it to something that makes sense as a name for
multiple zoom like boards and resubmit.

Also the arch_initcall() issue below still needs fixing.

Regards,

Tony

> 
> >
> >Regards,
> >
> >Tony
> >
> >
> >> >
> >> >Also, the arch_initcall() above is wrong, it runs for all the boards and
> >> >platforms compiled in even if they are not zoom2 boards.
> >> >
> >> >Other than, looks OK to me, so we might be able to get this into mainline
> >> >this merge window.
> >> >
> >> >Regards,
> >> >
> >> >Tony
> >>
> >>
> >>
> >> >
> >> >
> >> >> diff --git a/arch/arm/mach-omap2/board-zoom2.c 
> >> >> b/arch/arm/mach-omap2/board-zoom2.c
> >> >> new file mode 100644
> >> >> index 000..5a656b3
> >> >> --- /dev/null
> >> >> +++ b/arch/arm/mach-omap2/board-zoom2.c
> >> >> @@ -0,0 +1,107 @@
> >> >> +/*
> >> >> + * Copyright (C) 2009 Texas Instruments Inc.
> >> >> + * Mikkel Christensen 
> >> >> + *
> >> >> + * Modified from mach-omap2/board-ldp.c
> >> >> + *
> >> >> + * 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.
> >> >> + */
> >> >> +
> >> >> +#include 
> >> >> +#include 
> >> >> +#include 
> >> >> +#include 
> >> >> +
> >> >> +#include 
> >> >> +#include 
> >> >> +
> >> >> +#include 
> >> >> +#include 
> >> >> +#include 
> >> >> +
> >> >> +#include "mmc-twl4030.h"
> >> >> +
> >> >> +static void __init omap_zoom2_init_irq(void)
> >> >> +{
> >> &

RE: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-18 Thread Pandita, Vikram
Tony

>-Original Message-
>From: Tony Lindgren [mailto:t...@atomide.com]
>Sent: Monday, May 18, 2009 4:39 PM
>To: Pandita, Vikram
>Cc: Christensen, Mikkel; linux-omap@vger.kernel.org
>Subject: Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
>
>* Pandita, Vikram  [090518 14:31]:
>> Tony
>>
>> >>
>> >> +
>> >> + zoom2_init_smsc911x();
>> >> + zoom2_init_quaduart();
>> >> + return platform_add_devices(zoom2_devices, ARRAY_SIZE(zoom2_devices));
>> >> +}
>> >> +arch_initcall(omap_zoom2_debugboard_init);
>> >
>> >Please just move all the related functions to board-zoom2.c. I don't see any
>> >reason to have a separate file for the debugboard features. The runtime 
>> >detection
>> >should do the trick.
>>
>> Two reasons for keeping a separate debug board.
>> a) debug board is detachable in h/w and hence we thought its better to keep 
>> the s/w also that way
>> The quart chip on debug bard is a quard-uart and can support 4 different 
>> console outputs.
>> All those we thought of adding in future.
>
>Well those you can easily optimize out by not compiling in those devices.
>
>>
>> b) we took reference from board-rx51-peripherals.c wherein some parts of the 
>> board file can be
>moved out to a new file
>>
>> If you still think we need to merge, then let us know.
>> We are open to suggestions/changes.
>
>Well the reason for separate board-*-peripheral-whatever.c files is that
>they're intended to be shared with other board-*.c files. Currently n8x0
>and rx51 share devices. In general, we should try to do generic platform
>init files, like gpmc-onenand.c and gpmc-smc91x.c.
>
>Then I see need for gpmc-sdp-flash.c that's shared between 2430 and 3430 sdp
>at least.
>
>So yeah, for zoom2, I'd rather see just board-zoom2.c for now. But if you
>create some other board that uses the same debug board functions, then
>there could be a separate zoom-debugboard.c.


Yes. There is next generation of zoom boards that will re-use the Debug board.
That way the debug board file will get re-used.

>
>Regards,
>
>Tony
>
>
>> >
>> >Also, the arch_initcall() above is wrong, it runs for all the boards and
>> >platforms compiled in even if they are not zoom2 boards.
>> >
>> >Other than, looks OK to me, so we might be able to get this into mainline
>> >this merge window.
>> >
>> >Regards,
>> >
>> >Tony
>>
>>
>>
>> >
>> >
>> >> diff --git a/arch/arm/mach-omap2/board-zoom2.c 
>> >> b/arch/arm/mach-omap2/board-zoom2.c
>> >> new file mode 100644
>> >> index 000..5a656b3
>> >> --- /dev/null
>> >> +++ b/arch/arm/mach-omap2/board-zoom2.c
>> >> @@ -0,0 +1,107 @@
>> >> +/*
>> >> + * Copyright (C) 2009 Texas Instruments Inc.
>> >> + * Mikkel Christensen 
>> >> + *
>> >> + * Modified from mach-omap2/board-ldp.c
>> >> + *
>> >> + * 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.
>> >> + */
>> >> +
>> >> +#include 
>> >> +#include 
>> >> +#include 
>> >> +#include 
>> >> +
>> >> +#include 
>> >> +#include 
>> >> +
>> >> +#include 
>> >> +#include 
>> >> +#include 
>> >> +
>> >> +#include "mmc-twl4030.h"
>> >> +
>> >> +static void __init omap_zoom2_init_irq(void)
>> >> +{
>> >> + omap2_init_common_hw(NULL);
>> >> + omap_init_irq();
>> >> + omap_gpio_init();
>> >> +}
>> >> +
>> >> +static struct omap_uart_config zoom2_uart_config __initdata = {
>> >> + .enabled_uarts  = ((1 << 0) | (1 << 1) | (1 << 2)),
>> >> +};
>> >> +
>> >> +static struct omap_board_config_kernel zoom2_config[] __initdata = {
>> >> + { OMAP_TAG_UART,&zoom2_uart_config },
>> >> +};
>> >> +
>> >> +static struct twl4030_gpio_platform_data zoom2_gpio_data = {
>> >> + .gpio_base  = OMAP_MAX_GPIO_LINES,
>> >> + .irq_base   = TWL4030_GPIO_IRQ_BASE,
>> >> + .irq_end= TWL4030_GPIO_IRQ_END,
>> >&

Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-18 Thread Tony Lindgren
* Pandita, Vikram  [090518 14:31]:
> Tony 
> 
> >-Original Message-
> >From: Tony Lindgren [mailto:t...@atomide.com]
> >Hi,
> >
> >Few comments below.
> >
> >* Mikkel Christensen  [090515 14:17]:
> >> This patch creates the minimal OMAP3 Zoom2 board support.
> >>
> >> Signed-off-by: Mikkel Christensen 
> >> Signed-off-by: Vikram Pandita 
> >> ---
> >>  arch/arm/mach-omap2/board-zoom2-debugboard.c |  161 
> >> ++
> >>  arch/arm/mach-omap2/board-zoom2.c|  107 +
> >>  2 files changed, 268 insertions(+), 0 deletions(-)
> >>  create mode 100644 arch/arm/mach-omap2/board-zoom2-debugboard.c
> >>  create mode 100644 arch/arm/mach-omap2/board-zoom2.c
> 
> 
> >>
> >> +
> >> +  zoom2_init_smsc911x();
> >> +  zoom2_init_quaduart();
> >> +  return platform_add_devices(zoom2_devices, ARRAY_SIZE(zoom2_devices));
> >> +}
> >> +arch_initcall(omap_zoom2_debugboard_init);
> >
> >Please just move all the related functions to board-zoom2.c. I don't see any
> >reason to have a separate file for the debugboard features. The runtime 
> >detection
> >should do the trick.
> 
> Two reasons for keeping a separate debug board.
> a) debug board is detachable in h/w and hence we thought its better to keep 
> the s/w also that way
> The quart chip on debug bard is a quard-uart and can support 4 different 
> console outputs.
> All those we thought of adding in future.

Well those you can easily optimize out by not compiling in those devices.

> 
> b) we took reference from board-rx51-peripherals.c wherein some parts of the 
> board file can be moved out to a new file
> 
> If you still think we need to merge, then let us know. 
> We are open to suggestions/changes.
 
Well the reason for separate board-*-peripheral-whatever.c files is that
they're intended to be shared with other board-*.c files. Currently n8x0
and rx51 share devices. In general, we should try to do generic platform
init files, like gpmc-onenand.c and gpmc-smc91x.c.

Then I see need for gpmc-sdp-flash.c that's shared between 2430 and 3430 sdp
at least.

So yeah, for zoom2, I'd rather see just board-zoom2.c for now. But if you
create some other board that uses the same debug board functions, then
there could be a separate zoom-debugboard.c.

Regards,

Tony


> >
> >Also, the arch_initcall() above is wrong, it runs for all the boards and
> >platforms compiled in even if they are not zoom2 boards.
> >
> >Other than, looks OK to me, so we might be able to get this into mainline
> >this merge window.
> >
> >Regards,
> >
> >Tony
> 
> 
> 
> >
> >
> >> diff --git a/arch/arm/mach-omap2/board-zoom2.c 
> >> b/arch/arm/mach-omap2/board-zoom2.c
> >> new file mode 100644
> >> index 000..5a656b3
> >> --- /dev/null
> >> +++ b/arch/arm/mach-omap2/board-zoom2.c
> >> @@ -0,0 +1,107 @@
> >> +/*
> >> + * Copyright (C) 2009 Texas Instruments Inc.
> >> + * Mikkel Christensen 
> >> + *
> >> + * Modified from mach-omap2/board-ldp.c
> >> + *
> >> + * 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.
> >> + */
> >> +
> >> +#include 
> >> +#include 
> >> +#include 
> >> +#include 
> >> +
> >> +#include 
> >> +#include 
> >> +
> >> +#include 
> >> +#include 
> >> +#include 
> >> +
> >> +#include "mmc-twl4030.h"
> >> +
> >> +static void __init omap_zoom2_init_irq(void)
> >> +{
> >> +  omap2_init_common_hw(NULL);
> >> +  omap_init_irq();
> >> +  omap_gpio_init();
> >> +}
> >> +
> >> +static struct omap_uart_config zoom2_uart_config __initdata = {
> >> +  .enabled_uarts  = ((1 << 0) | (1 << 1) | (1 << 2)),
> >> +};
> >> +
> >> +static struct omap_board_config_kernel zoom2_config[] __initdata = {
> >> +  { OMAP_TAG_UART,&zoom2_uart_config },
> >> +};
> >> +
> >> +static struct twl4030_gpio_platform_data zoom2_gpio_data = {
> >> +  .gpio_base  = OMAP_MAX_GPIO_LINES,
> >> +  .irq_base   = TWL4030_GPIO_IRQ_BASE,
> >> +  .irq_end= TWL4030_GPIO_IRQ_END,
> >> +};
> >> +
> >> +static struct twl4030_platform_data zoom2_twldata = {
> >> +  .irq_base   = TWL4030_IRQ_BASE,
> >> +  .irq_end= TWL4030_IRQ_END,
> >> +
> >> +  /* platform_data for children goes here */
> >> +  .gpio   = &zoom2_gpio_data,
> >> +};
> >> +
> >> +static struct i2c_board_info __initdata zoom2_i2c_boardinfo[] = {
> >> +  {
> >> +  I2C_BOARD_INFO("twl4030", 0x48),
> >> +  .flags = I2C_CLIENT_WAKE,
> >> +  .irq = INT_34XX_SYS_NIRQ,
> >> +  .platform_data = &zoom2_twldata,
> >> +  },
> >> +};
> >> +
> >> +static int __init omap_i2c_init(void)
> >> +{
> >> +  omap_register_i2c_bus(1, 2600, zoom2_i2c_boardinfo,
> >> +  ARRAY_SIZE(zoom2_i2c_boardinfo));
> >> +  omap_register_i2c_bus(2, 400, NULL, 0);
> >> +  omap_register_i2c_bus(3, 400, NULL, 0);
> >> +  return 0;
> >> +}
> >> +
> >> +static struct twl4030_hsmmc_info mmc[] __initdata = {
> >> +  {
> >> 

RE: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-18 Thread Pandita, Vikram
Tony 

>-Original Message-
>From: Tony Lindgren [mailto:t...@atomide.com]
>Hi,
>
>Few comments below.
>
>* Mikkel Christensen  [090515 14:17]:
>> This patch creates the minimal OMAP3 Zoom2 board support.
>>
>> Signed-off-by: Mikkel Christensen 
>> Signed-off-by: Vikram Pandita 
>> ---
>>  arch/arm/mach-omap2/board-zoom2-debugboard.c |  161 
>> ++
>>  arch/arm/mach-omap2/board-zoom2.c|  107 +
>>  2 files changed, 268 insertions(+), 0 deletions(-)
>>  create mode 100644 arch/arm/mach-omap2/board-zoom2-debugboard.c
>>  create mode 100644 arch/arm/mach-omap2/board-zoom2.c


>>
>> +
>> +zoom2_init_smsc911x();
>> +zoom2_init_quaduart();
>> +return platform_add_devices(zoom2_devices, ARRAY_SIZE(zoom2_devices));
>> +}
>> +arch_initcall(omap_zoom2_debugboard_init);
>
>Please just move all the related functions to board-zoom2.c. I don't see any
>reason to have a separate file for the debugboard features. The runtime 
>detection
>should do the trick.

Two reasons for keeping a separate debug board.
a) debug board is detachable in h/w and hence we thought its better to keep the 
s/w also that way
The quart chip on debug bard is a quard-uart and can support 4 different 
console outputs.
All those we thought of adding in future.

b) we took reference from board-rx51-peripherals.c wherein some parts of the 
board file can be moved out to a new file

If you still think we need to merge, then let us know. 
We are open to suggestions/changes.

>
>Also, the arch_initcall() above is wrong, it runs for all the boards and
>platforms compiled in even if they are not zoom2 boards.
>
>Other than, looks OK to me, so we might be able to get this into mainline
>this merge window.
>
>Regards,
>
>Tony



>
>
>> diff --git a/arch/arm/mach-omap2/board-zoom2.c 
>> b/arch/arm/mach-omap2/board-zoom2.c
>> new file mode 100644
>> index 000..5a656b3
>> --- /dev/null
>> +++ b/arch/arm/mach-omap2/board-zoom2.c
>> @@ -0,0 +1,107 @@
>> +/*
>> + * Copyright (C) 2009 Texas Instruments Inc.
>> + * Mikkel Christensen 
>> + *
>> + * Modified from mach-omap2/board-ldp.c
>> + *
>> + * 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.
>> + */
>> +
>> +#include 
>> +#include 
>> +#include 
>> +#include 
>> +
>> +#include 
>> +#include 
>> +
>> +#include 
>> +#include 
>> +#include 
>> +
>> +#include "mmc-twl4030.h"
>> +
>> +static void __init omap_zoom2_init_irq(void)
>> +{
>> +omap2_init_common_hw(NULL);
>> +omap_init_irq();
>> +omap_gpio_init();
>> +}
>> +
>> +static struct omap_uart_config zoom2_uart_config __initdata = {
>> +.enabled_uarts  = ((1 << 0) | (1 << 1) | (1 << 2)),
>> +};
>> +
>> +static struct omap_board_config_kernel zoom2_config[] __initdata = {
>> +{ OMAP_TAG_UART,&zoom2_uart_config },
>> +};
>> +
>> +static struct twl4030_gpio_platform_data zoom2_gpio_data = {
>> +.gpio_base  = OMAP_MAX_GPIO_LINES,
>> +.irq_base   = TWL4030_GPIO_IRQ_BASE,
>> +.irq_end= TWL4030_GPIO_IRQ_END,
>> +};
>> +
>> +static struct twl4030_platform_data zoom2_twldata = {
>> +.irq_base   = TWL4030_IRQ_BASE,
>> +.irq_end= TWL4030_IRQ_END,
>> +
>> +/* platform_data for children goes here */
>> +.gpio   = &zoom2_gpio_data,
>> +};
>> +
>> +static struct i2c_board_info __initdata zoom2_i2c_boardinfo[] = {
>> +{
>> +I2C_BOARD_INFO("twl4030", 0x48),
>> +.flags = I2C_CLIENT_WAKE,
>> +.irq = INT_34XX_SYS_NIRQ,
>> +.platform_data = &zoom2_twldata,
>> +},
>> +};
>> +
>> +static int __init omap_i2c_init(void)
>> +{
>> +omap_register_i2c_bus(1, 2600, zoom2_i2c_boardinfo,
>> +ARRAY_SIZE(zoom2_i2c_boardinfo));
>> +omap_register_i2c_bus(2, 400, NULL, 0);
>> +omap_register_i2c_bus(3, 400, NULL, 0);
>> +return 0;
>> +}
>> +
>> +static struct twl4030_hsmmc_info mmc[] __initdata = {
>> +{
>> +.mmc= 1,
>> +.wires  = 4,
>> +.gpio_cd= -EINVAL,
>> +.gpio_wp= -EINVAL,
>> +},
>> +{}  /* Terminator */
>> +};
>> +
>> +static void __init omap_zoom2_init(void)
>> +{
>> +omap_i2c_init();
>> +omap_board_config = zoom2_config;
>> +omap_board_config_size = ARRAY_SIZE(zoom2_config);
>> +omap_serial_init();
>> +twl4030_mmc_init(mmc);
>> +usb_musb_init();
>> +}
>> +
>> +static void __init omap_zoom2_map_io(void)
>> +{
>> +omap2_set_globals_343x();
>> +omap2_map_common_io();
>> +}
>> +
>> +MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
>> +.phys_io= 0x4800,
>> +.io_pg_offst= ((0xd800) >> 18) & 0xfffc,
>> +.boot_params= 0x8100,
>> +.map_io = omap_zoom2_map_io,
>> +.init_irq   = omap_zoom2_init_irq,
>> +.init_machine   

Re: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board

2009-05-18 Thread Tony Lindgren
Hi,

Few comments below.

* Mikkel Christensen  [090515 14:17]:
> This patch creates the minimal OMAP3 Zoom2 board support.
> 
> Signed-off-by: Mikkel Christensen 
> Signed-off-by: Vikram Pandita 
> ---
>  arch/arm/mach-omap2/board-zoom2-debugboard.c |  161 
> ++
>  arch/arm/mach-omap2/board-zoom2.c|  107 +
>  2 files changed, 268 insertions(+), 0 deletions(-)
>  create mode 100644 arch/arm/mach-omap2/board-zoom2-debugboard.c
>  create mode 100644 arch/arm/mach-omap2/board-zoom2.c
> 
> diff --git a/arch/arm/mach-omap2/board-zoom2-debugboard.c 
> b/arch/arm/mach-omap2/board-zoom2-debugboard.c
> new file mode 100644
> index 000..e5686e8
> --- /dev/null
> +++ b/arch/arm/mach-omap2/board-zoom2-debugboard.c
> @@ -0,0 +1,161 @@
> +/*
> + * Copyright (C) 2009 Texas Instruments Inc.
> + * Mikkel Christensen 
> + *
> + * 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.
> + */
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +#include 
> +#include 
> +
> +#define ZOOM2_SMSC911X_CS7
> +#define ZOOM2_SMSC911X_GPIO  158
> +#define ZOOM2_QUADUART_CS3
> +#define ZOOM2_QUADUART_GPIO  102
> +#define QUART_CLK1843200
> +#define DEBUG_BASE   0x0800
> +#define ZOOM2_ETHR_START DEBUG_BASE
> +
> +static struct resource zoom2_smsc911x_resources[] = {
> + [0] = {
> + .start  = ZOOM2_ETHR_START,
> + .end= ZOOM2_ETHR_START + SZ_4K,
> + .flags  = IORESOURCE_MEM,
> + },
> + [1] = {
> + .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
> + },
> +};
> +
> +static struct smsc911x_platform_config zoom2_smsc911x_config = {
> + .irq_polarity   = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
> + .irq_type   = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
> + .flags  = SMSC911X_USE_32BIT,
> + .phy_interface  = PHY_INTERFACE_MODE_MII,
> +};
> +
> +static struct platform_device zoom2_smsc911x_device = {
> + .name   = "smsc911x",
> + .id = -1,
> + .num_resources  = ARRAY_SIZE(zoom2_smsc911x_resources),
> + .resource   = zoom2_smsc911x_resources,
> + .dev= {
> + .platform_data = &zoom2_smsc911x_config,
> + },
> +};
> +
> +static inline void __init zoom2_init_smsc911x(void)
> +{
> + int eth_cs;
> + unsigned long cs_mem_base;
> + int eth_gpio = 0;
> +
> + eth_cs = ZOOM2_SMSC911X_CS;
> +
> + if (gpmc_cs_request(eth_cs, SZ_16M, &cs_mem_base) < 0) {
> + printk(KERN_ERR "Failed to request GPMC mem for smsc911x\n");
> + return;
> + }
> +
> + zoom2_smsc911x_resources[0].start = cs_mem_base + 0x0;
> + zoom2_smsc911x_resources[0].end   = cs_mem_base + 0xff;
> +
> + eth_gpio = ZOOM2_SMSC911X_GPIO;
> +
> + zoom2_smsc911x_resources[1].start = OMAP_GPIO_IRQ(eth_gpio);
> +
> + if (gpio_request(eth_gpio, "smsc911x irq") < 0) {
> + printk(KERN_ERR "Failed to request GPIO%d for smsc911x IRQ\n",
> + eth_gpio);
> + return;
> + }
> + gpio_direction_input(eth_gpio);
> +}
> +
> +static struct plat_serial8250_port serial_platform_data[] = {
> + {
> + .mapbase= 0x1000,
> + .irq= OMAP_GPIO_IRQ(102),
> + .flags  = UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ,
> + .iotype = UPIO_MEM,
> + .regshift   = 1,
> + .uartclk= QUART_CLK,
> + }, {
> + .flags  = 0
> + }
> +};
> +
> +static struct platform_device zoom2_debugboard_serial_device = {
> + .name   = "serial8250",
> + .id = PLAT8250_DEV_PLATFORM1,
> + .dev= {
> + .platform_data  = serial_platform_data,
> + },
> +};
> +
> +static inline void __init zoom2_init_quaduart(void)
> +{
> + int quart_cs;
> + unsigned long cs_mem_base;
> + int quart_gpio = 0;
> +
> + quart_cs = ZOOM2_QUADUART_CS;
> +
> + if (gpmc_cs_request(quart_cs, SZ_1M, &cs_mem_base) < 0) {
> + printk(KERN_ERR "Failed to request GPMC mem"
> + "for Quad UART(TL16CP754C)\n");
> + return;
> + }
> +
> + quart_gpio = ZOOM2_QUADUART_GPIO;
> +
> + if (gpio_request(quart_gpio, "TL16CP754C GPIO") < 0) {
> + printk(KERN_ERR "Failed to request GPIO%d for TL16CP754C\n",
> + quart_gpio);
> + return;
> + }
> + gpio_direction_input(quart_gpio);
> +}
> +
> +static inline int omap_zoom2_debugboard_detect(void)
> +{
> + int debug_board_detect = 0;
> +
> + debug_board_detect = ZOOM2_SMSC911X_GPIO;
> +
> + if (gpio_request(debug_board_detect, "Zoom2 debug bo