* [PATCH 3/5] colibri-pxa300: add uart support
@ 2010-07-08 17:04 pieterg
2010-07-08 20:01 ` Marek Vasut
2010-07-09 7:16 ` Daniel Mack
0 siblings, 2 replies; 6+ messages in thread
From: pieterg @ 2010-07-08 17:04 UTC (permalink / raw)
To: linux-arm-kernel
An embedded and charset-unspecified text was scrubbed...
Name: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100708/d7488610/attachment.ksh>
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/5] colibri-pxa300: add uart support
2010-07-08 17:04 [PATCH 3/5] colibri-pxa300: add uart support pieterg
@ 2010-07-08 20:01 ` Marek Vasut
2010-07-08 20:42 ` pieterg
2010-07-09 7:16 ` Daniel Mack
1 sibling, 1 reply; 6+ messages in thread
From: Marek Vasut @ 2010-07-08 20:01 UTC (permalink / raw)
To: linux-arm-kernel
Dne ?t 8. ?ervence 2010 19:04:08 pieterg napsal(a):
> Signed-off-by: pieter <p.grimmerink@inepro.com>
> ---
> arch/arm/mach-pxa/colibri-pxa300.c | 28 ++++++++++++++++++++++++++++
> 1 files changed, 28 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/colibri-pxa300.c
> b/arch/arm/mach-pxa/colibri-pxa300.c
> index e7762ae..381857d 100644
> --- a/arch/arm/mach-pxa/colibri-pxa300.c
> +++ b/arch/arm/mach-pxa/colibri-pxa300.c
> @@ -170,6 +170,33 @@ static inline void __init colibri_pxa310_init_ac97
> (void)
> static inline void colibri_pxa310_init_ac97(void) {}
> #endif
>
> +static mfp_cfg_t colibri_pxa300_uart_pin_config[] __initdata = {
> + /* FFUART */
> + GPIO99_UART1_RXD,
> + GPIO100_UART1_TXD,
> + GPIO101_UART1_CTS,
> + GPIO102_UART1_DCD,
> + GPIO103_UART1_DTR,
> + GPIO104_UART1_RI,
> + GPIO105_UART1_DSR,
> + GPIO106_UART1_RTS,
> +
> + /* BTUART */
> + GPIO111_UART2_CTS,
> + GPIO112_UART2_RXD,
> + GPIO113_UART2_TXD,
> + GPIO114_UART2_RTS,
> +
> + /* STUART */
> + GPIO8_UART3_TXD,
> + GPIO110_UART3_RXD,
> +};
> +
> +static void __init colibri_pxa300_init_uart(void)
> +{
> + pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa300_uart_pin_config));
> +}
> +
> void __init colibri_pxa300_init(void)
> {
> pxa_set_ffuart_info(NULL);
> @@ -184,6 +211,7 @@ void __init colibri_pxa300_init(void)
> colibri_pxa310_init_ac97();
> colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa300_mmc_pin_config),
> mfp_to_gpio(MFP_PIN_GPIO13));
> + colibri_pxa300_init_uart();
> }
>
> MACHINE_START(COLIBRI300, "Toradex Colibri PXA300")
Can't you put this into the board MFP config array ? Or the other way --
register UARTs into that new function you introduced ?
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/5] colibri-pxa300: add uart support
2010-07-08 20:01 ` Marek Vasut
@ 2010-07-08 20:42 ` pieterg
2010-07-08 22:58 ` Marek Vasut
0 siblings, 1 reply; 6+ messages in thread
From: pieterg @ 2010-07-08 20:42 UTC (permalink / raw)
To: linux-arm-kernel
On Thursday 08 July 2010 22:01:22 Marek Vasut wrote:
> Dne ?t 8. ?ervence 2010 19:04:08 pieterg napsal(a):
> > Signed-off-by: pieter <p.grimmerink@inepro.com>
> > ---
> > arch/arm/mach-pxa/colibri-pxa300.c | 28 ++++++++++++++++++++++++++++
> > 1 files changed, 28 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/mach-pxa/colibri-pxa300.c
> > b/arch/arm/mach-pxa/colibri-pxa300.c
> > index e7762ae..381857d 100644
> > --- a/arch/arm/mach-pxa/colibri-pxa300.c
> > +++ b/arch/arm/mach-pxa/colibri-pxa300.c
> > @@ -170,6 +170,33 @@ static inline void __init colibri_pxa310_init_ac97
> > (void)
> > static inline void colibri_pxa310_init_ac97(void) {}
> > #endif
> >
> > +static mfp_cfg_t colibri_pxa300_uart_pin_config[] __initdata = {
> > + /* FFUART */
> > + GPIO99_UART1_RXD,
> > + GPIO100_UART1_TXD,
> > + GPIO101_UART1_CTS,
> > + GPIO102_UART1_DCD,
> > + GPIO103_UART1_DTR,
> > + GPIO104_UART1_RI,
> > + GPIO105_UART1_DSR,
> > + GPIO106_UART1_RTS,
> > +
> > + /* BTUART */
> > + GPIO111_UART2_CTS,
> > + GPIO112_UART2_RXD,
> > + GPIO113_UART2_TXD,
> > + GPIO114_UART2_RTS,
> > +
> > + /* STUART */
> > + GPIO8_UART3_TXD,
> > + GPIO110_UART3_RXD,
> > +};
> > +
> > +static void __init colibri_pxa300_init_uart(void)
> > +{
> > + pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa300_uart_pin_config));
> > +}
> > +
> > void __init colibri_pxa300_init(void)
> > {
> > pxa_set_ffuart_info(NULL);
> > @@ -184,6 +211,7 @@ void __init colibri_pxa300_init(void)
> > colibri_pxa310_init_ac97();
> >
> > colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa300_mmc_pin_config),
> > mfp_to_gpio(MFP_PIN_GPIO13));
> > + colibri_pxa300_init_uart();
> > }
> >
> > MACHINE_START(COLIBRI300, "Toradex Colibri PXA300")
>
> Can't you put this into the board MFP config array ?
As far as I see, the colibri's don't have a global MFP array anymore.
Everything is split into function groups.
(which I think is nice btw, compared to -say- zylonite, where the MFP's do
not obey CONFIG)
> Or the other way --
> register UARTs into that new function you introduced ?
You mean somehow make it easier for users to select which uarts they want,
and which they don't?
Indeed this construction makes it impossible to use those gpio's for
anything else, but this is exactly how the uart gpio's are configured in
colibri-pxa320.c as well. So if there's a nicer way, we'd have to the same
there as well.
(a nice way in general might perhaps be to enable/disable all 3 uarts from
the config. Though people might object to an increase in the number of
necessary config variables)
Or do you just mean moving the pxa_set_xxuart_info calls into
colibri_pxa300_init_uart, so we keep all uart stuff together?
Rgds, Pieter
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/5] colibri-pxa300: add uart support
2010-07-08 20:42 ` pieterg
@ 2010-07-08 22:58 ` Marek Vasut
0 siblings, 0 replies; 6+ messages in thread
From: Marek Vasut @ 2010-07-08 22:58 UTC (permalink / raw)
To: linux-arm-kernel
Dne ?t 8. ?ervence 2010 22:42:25 pieterg napsal(a):
> On Thursday 08 July 2010 22:01:22 Marek Vasut wrote:
> > Dne ?t 8. ?ervence 2010 19:04:08 pieterg napsal(a):
> > > Signed-off-by: pieter <p.grimmerink@inepro.com>
> > > ---
> > >
> > > arch/arm/mach-pxa/colibri-pxa300.c | 28 ++++++++++++++++++++++++++++
> > > 1 files changed, 28 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/arch/arm/mach-pxa/colibri-pxa300.c
> > > b/arch/arm/mach-pxa/colibri-pxa300.c
> > > index e7762ae..381857d 100644
> > > --- a/arch/arm/mach-pxa/colibri-pxa300.c
> > > +++ b/arch/arm/mach-pxa/colibri-pxa300.c
> > > @@ -170,6 +170,33 @@ static inline void __init colibri_pxa310_init_ac97
> > > (void)
> > >
> > > static inline void colibri_pxa310_init_ac97(void) {}
> > > #endif
> > >
> > > +static mfp_cfg_t colibri_pxa300_uart_pin_config[] __initdata = {
> > > + /* FFUART */
> > > + GPIO99_UART1_RXD,
> > > + GPIO100_UART1_TXD,
> > > + GPIO101_UART1_CTS,
> > > + GPIO102_UART1_DCD,
> > > + GPIO103_UART1_DTR,
> > > + GPIO104_UART1_RI,
> > > + GPIO105_UART1_DSR,
> > > + GPIO106_UART1_RTS,
> > > +
> > > + /* BTUART */
> > > + GPIO111_UART2_CTS,
> > > + GPIO112_UART2_RXD,
> > > + GPIO113_UART2_TXD,
> > > + GPIO114_UART2_RTS,
> > > +
> > > + /* STUART */
> > > + GPIO8_UART3_TXD,
> > > + GPIO110_UART3_RXD,
> > > +};
> > > +
> > > +static void __init colibri_pxa300_init_uart(void)
> > > +{
> > > + pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa300_uart_pin_config));
> > > +}
> > > +
> > >
> > > void __init colibri_pxa300_init(void)
> > > {
> > >
> > > pxa_set_ffuart_info(NULL);
> > >
> > > @@ -184,6 +211,7 @@ void __init colibri_pxa300_init(void)
> > >
> > > colibri_pxa310_init_ac97();
> > >
> > > colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa300_mmc_pin_config),
> > >
> > > mfp_to_gpio(MFP_PIN_GPIO13));
> > > + colibri_pxa300_init_uart();
> > >
> > > }
> > >
> > > MACHINE_START(COLIBRI300, "Toradex Colibri PXA300")
> >
> > Can't you put this into the board MFP config array ?
>
> As far as I see, the colibri's don't have a global MFP array anymore.
> Everything is split into function groups.
> (which I think is nice btw, compared to -say- zylonite, where the MFP's do
> not obey CONFIG)
>
> > Or the other way --
> > register UARTs into that new function you introduced ?
>
> You mean somehow make it easier for users to select which uarts they want,
> and which they don't?
> Indeed this construction makes it impossible to use those gpio's for
> anything else, but this is exactly how the uart gpio's are configured in
> colibri-pxa320.c as well. So if there's a nicer way, we'd have to the same
> there as well.
>
> (a nice way in general might perhaps be to enable/disable all 3 uarts from
> the config. Though people might object to an increase in the number of
> necessary config variables)
>
> Or do you just mean moving the pxa_set_xxuart_info calls into
> colibri_pxa300_init_uart, so we keep all uart stuff together?
This is what I mean, sorry, lack of sleep.
>
> Rgds, Pieter
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/5] colibri-pxa300: add uart support
2010-07-08 17:04 [PATCH 3/5] colibri-pxa300: add uart support pieterg
2010-07-08 20:01 ` Marek Vasut
@ 2010-07-09 7:16 ` Daniel Mack
2010-07-09 8:57 ` pieterg
1 sibling, 1 reply; 6+ messages in thread
From: Daniel Mack @ 2010-07-09 7:16 UTC (permalink / raw)
To: linux-arm-kernel
Hi pieterg,
thanks for your patches :)
On Thu, Jul 08, 2010 at 07:04:08PM +0200, pieterg wrote:
> Signed-off-by: pieter <p.grimmerink@inepro.com>
> ---
> arch/arm/mach-pxa/colibri-pxa300.c | 28 ++++++++++++++++++++++++++++
> 1 files changed, 28 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/colibri-pxa300.c
> b/arch/arm/mach-pxa/colibri-pxa300.c
> index e7762ae..381857d 100644
> --- a/arch/arm/mach-pxa/colibri-pxa300.c
> +++ b/arch/arm/mach-pxa/colibri-pxa300.c
> @@ -170,6 +170,33 @@ static inline void __init colibri_pxa310_init_ac97
> (void)
> static inline void colibri_pxa310_init_ac97(void) {}
> #endif
>
> +static mfp_cfg_t colibri_pxa300_uart_pin_config[] __initdata = {
> + /* FFUART */
> + GPIO99_UART1_RXD,
> + GPIO100_UART1_TXD,
> + GPIO101_UART1_CTS,
> + GPIO102_UART1_DCD,
> + GPIO103_UART1_DTR,
> + GPIO104_UART1_RI,
> + GPIO105_UART1_DSR,
> + GPIO106_UART1_RTS,
> +
> + /* BTUART */
> + GPIO111_UART2_CTS,
> + GPIO112_UART2_RXD,
> + GPIO113_UART2_TXD,
> + GPIO114_UART2_RTS,
> +
> + /* STUART */
> + GPIO8_UART3_TXD,
> + GPIO110_UART3_RXD,
> +};
Hmm, no. These lines are GPIOs and might be used differently by other
base boards, depending on their pin allocation. So I'd really like to
keep the board support code clean from such assumptions.
Have a look at Eric's devel branch at
git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
and find the patches for the recently done refactoring of the pxa270
colibri module. The idea is to keep everything that is module specific
in one file, and everything which assumes the module is connected to a
certain baseboard somewhere else.
In this tree, you can also see support for the "income" boards, which
are based on the pxa270 module but use the pins differently, have
different hardware connected etc. It's a good example for why the split
made sense.
So I'd suggest you do something similar for the pxa3xx modules and
create a colibri-pxa3xx-evalboard.c or anything and put all baseboard
specific code there. That would also imply moving code that already
exists.
The same counts for the I2C patch. Users of the module might not have
I2C in use, and want to use the pins for other stuff.
Thanks,
Daniel
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/5] colibri-pxa300: add uart support
2010-07-09 7:16 ` Daniel Mack
@ 2010-07-09 8:57 ` pieterg
0 siblings, 0 replies; 6+ messages in thread
From: pieterg @ 2010-07-09 8:57 UTC (permalink / raw)
To: linux-arm-kernel
On Friday 09 July 2010 09:16:04 Daniel Mack wrote:
> So I'd suggest you do something similar for the pxa3xx modules and
> create a colibri-pxa3xx-evalboard.c or anything and put all baseboard
> specific code there. That would also imply moving code that already
> exists.
OK, I'll make the same split for the 3xx, I'll try to send a new patch
series next week.
> The same counts for the I2C patch. Users of the module might not have
> I2C in use, and want to use the pins for other stuff.
The I2C init obeys kernelconfig, but indeed, it belongs to the (eval)board,
in the new setup.
Rgds, Pieter
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-07-09 8:57 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-08 17:04 [PATCH 3/5] colibri-pxa300: add uart support pieterg
2010-07-08 20:01 ` Marek Vasut
2010-07-08 20:42 ` pieterg
2010-07-08 22:58 ` Marek Vasut
2010-07-09 7:16 ` Daniel Mack
2010-07-09 8:57 ` pieterg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).