RE: [PATCH v3 1/3] OMAP3:zoom2: Add support for OMAP3 Zoom2 board
>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
* 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
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
>-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
* 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
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
* 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
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
* 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
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
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