linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [patch 0/9] efikamx support improvements
@ 2010-10-19 20:42 Arnaud Patard (Rtp)
  2010-10-19 20:42 ` [patch 1/9] efikamx: read board id Arnaud Patard (Rtp)
                   ` (8 more replies)
  0 siblings, 9 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-19 20:42 UTC (permalink / raw)
  To: linux-arm-kernel


Hi,

This patchset aims at improving current efikamx support. It adds support for :
- board id detection
- sdhc
- leds
- power button
- spi nor
- reset

I also had to fix/improve some imx51 iomux header so there are patches for
iomux-mx51.h.


Regards,
Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-19 20:42 [patch 0/9] efikamx support improvements Arnaud Patard (Rtp)
@ 2010-10-19 20:42 ` Arnaud Patard (Rtp)
  2010-10-19 21:15   ` Sascha Hauer
  2010-10-19 20:42 ` [patch 2/9] efikamx: add mmc support Arnaud Patard (Rtp)
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-19 20:42 UTC (permalink / raw)
  To: linux-arm-kernel

An embedded and charset-unspecified text was scrubbed...
Name: efika_boardid.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20101019/c438d891/attachment.ksh>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 2/9] efikamx: add mmc support
  2010-10-19 20:42 [patch 0/9] efikamx support improvements Arnaud Patard (Rtp)
  2010-10-19 20:42 ` [patch 1/9] efikamx: read board id Arnaud Patard (Rtp)
@ 2010-10-19 20:42 ` Arnaud Patard (Rtp)
  2010-10-19 20:42 ` [patch 3/9] imx51: enhance/fix iomux configuration Arnaud Patard (Rtp)
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-19 20:42 UTC (permalink / raw)
  To: linux-arm-kernel

An embedded and charset-unspecified text was scrubbed...
Name: efika_mmc.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20101019/b08ec8b5/attachment.ksh>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-19 20:42 [patch 0/9] efikamx support improvements Arnaud Patard (Rtp)
  2010-10-19 20:42 ` [patch 1/9] efikamx: read board id Arnaud Patard (Rtp)
  2010-10-19 20:42 ` [patch 2/9] efikamx: add mmc support Arnaud Patard (Rtp)
@ 2010-10-19 20:42 ` Arnaud Patard (Rtp)
  2010-10-19 21:04   ` Sascha Hauer
                     ` (3 more replies)
  2010-10-19 20:42 ` [patch 4/9] imx51: add gpio mode for csi1 {h,v}sync Arnaud Patard (Rtp)
                   ` (5 subsequent siblings)
  8 siblings, 4 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-19 20:42 UTC (permalink / raw)
  To: linux-arm-kernel

An embedded and charset-unspecified text was scrubbed...
Name: imx51_fix_iomux_gpio_1_x.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20101019/6a080e5b/attachment.ksh>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 4/9] imx51: add gpio mode for csi1 {h,v}sync
  2010-10-19 20:42 [patch 0/9] efikamx support improvements Arnaud Patard (Rtp)
                   ` (2 preceding siblings ...)
  2010-10-19 20:42 ` [patch 3/9] imx51: enhance/fix iomux configuration Arnaud Patard (Rtp)
@ 2010-10-19 20:42 ` Arnaud Patard (Rtp)
  2010-10-19 20:42 ` [patch 5/9] efikamx: add leds support Arnaud Patard (Rtp)
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-19 20:42 UTC (permalink / raw)
  To: linux-arm-kernel

An embedded and charset-unspecified text was scrubbed...
Name: imx51_add_csi1_hvsync_gpio.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20101019/909bca83/attachment.ksh>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 5/9] efikamx: add leds support
  2010-10-19 20:42 [patch 0/9] efikamx support improvements Arnaud Patard (Rtp)
                   ` (3 preceding siblings ...)
  2010-10-19 20:42 ` [patch 4/9] imx51: add gpio mode for csi1 {h,v}sync Arnaud Patard (Rtp)
@ 2010-10-19 20:42 ` Arnaud Patard (Rtp)
  2010-10-20 11:15   ` Amit Kucheria
  2010-10-19 20:42 ` [patch 6/9] efikamx: add support for power key Arnaud Patard (Rtp)
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-19 20:42 UTC (permalink / raw)
  To: linux-arm-kernel

An embedded and charset-unspecified text was scrubbed...
Name: efikamx_add_leds.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20101019/845a2b60/attachment.ksh>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 6/9] efikamx: add support for power key
  2010-10-19 20:42 [patch 0/9] efikamx support improvements Arnaud Patard (Rtp)
                   ` (4 preceding siblings ...)
  2010-10-19 20:42 ` [patch 5/9] efikamx: add leds support Arnaud Patard (Rtp)
@ 2010-10-19 20:42 ` Arnaud Patard (Rtp)
  2010-10-19 20:43 ` [patch 7/9] imx51: fix gpio_4_24 and gpio_4_25 pad configuration Arnaud Patard (Rtp)
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-19 20:42 UTC (permalink / raw)
  To: linux-arm-kernel

An embedded and charset-unspecified text was scrubbed...
Name: efikamx_add_powerkey.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20101019/b320041e/attachment.ksh>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 7/9] imx51: fix gpio_4_24 and gpio_4_25 pad configuration
  2010-10-19 20:42 [patch 0/9] efikamx support improvements Arnaud Patard (Rtp)
                   ` (5 preceding siblings ...)
  2010-10-19 20:42 ` [patch 6/9] efikamx: add support for power key Arnaud Patard (Rtp)
@ 2010-10-19 20:43 ` Arnaud Patard (Rtp)
  2010-10-19 20:43 ` [patch 8/9] efikamx: add spi nor support Arnaud Patard (Rtp)
  2010-10-19 20:43 ` [patch 9/9] efikamx: add reset Arnaud Patard (Rtp)
  8 siblings, 0 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-19 20:43 UTC (permalink / raw)
  To: linux-arm-kernel

An embedded and charset-unspecified text was scrubbed...
Name: imx51_fix_iomux_gpio_4_24_25.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20101019/b71cd04e/attachment.ksh>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 8/9] efikamx: add spi nor support
  2010-10-19 20:42 [patch 0/9] efikamx support improvements Arnaud Patard (Rtp)
                   ` (6 preceding siblings ...)
  2010-10-19 20:43 ` [patch 7/9] imx51: fix gpio_4_24 and gpio_4_25 pad configuration Arnaud Patard (Rtp)
@ 2010-10-19 20:43 ` Arnaud Patard (Rtp)
  2010-10-20 11:26   ` Amit Kucheria
  2010-10-19 20:43 ` [patch 9/9] efikamx: add reset Arnaud Patard (Rtp)
  8 siblings, 1 reply; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-19 20:43 UTC (permalink / raw)
  To: linux-arm-kernel

An embedded and charset-unspecified text was scrubbed...
Name: efikamx_add_nor.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20101019/96d0a42d/attachment.ksh>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 9/9] efikamx: add reset
  2010-10-19 20:42 [patch 0/9] efikamx support improvements Arnaud Patard (Rtp)
                   ` (7 preceding siblings ...)
  2010-10-19 20:43 ` [patch 8/9] efikamx: add spi nor support Arnaud Patard (Rtp)
@ 2010-10-19 20:43 ` Arnaud Patard (Rtp)
  2010-10-19 23:51   ` Fabio Estevam
  8 siblings, 1 reply; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-19 20:43 UTC (permalink / raw)
  To: linux-arm-kernel

An embedded and charset-unspecified text was scrubbed...
Name: efikamx_reset.patch
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20101019/e771e48a/attachment.ksh>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-19 20:42 ` [patch 3/9] imx51: enhance/fix iomux configuration Arnaud Patard (Rtp)
@ 2010-10-19 21:04   ` Sascha Hauer
  2010-10-20  8:14     ` Arnaud Patard (Rtp)
  2010-10-20  9:14   ` Eric Bénard
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 43+ messages in thread
From: Sascha Hauer @ 2010-10-19 21:04 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Oct 19, 2010 at 10:42:56PM +0200, Arnaud Patard wrote:
> - ALT0 is used to set GPIO mode of GPIO_1_{2,3,4,5,6,7,8,9} but it's ALT1
> for GPIO_1_{0,1}.
> - add definition to configure pads as ESDHC{1,2} WP and CD
> 
> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
> Index: linux-2.6/arch/arm/plat-mxc/include/mach/iomux-mx51.h
> ===================================================================
> --- linux-2.6.orig/arch/arm/plat-mxc/include/mach/iomux-mx51.h	2010-10-16 22:22:06.000000000 +0200
> +++ linux-2.6/arch/arm/plat-mxc/include/mach/iomux-mx51.h	2010-10-16 22:23:22.000000000 +0200
> @@ -366,20 +366,24 @@
>  							MX51_SDHCI_PAD_CTRL)
>  #define MX51_PAD_SD2_DATA3__SD2_DATA3		IOMUX_PAD(0x7D0, 0x3C8, IOMUX_CONFIG_SION, 0x0, 0, \
>  							MX51_SDHCI_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_0__ESDHC1_CD		IOMUX_PAD(0x7B4, 0x3AC, 0, 0x0,   0, MX51_I2C_PAD_CTRL)
>  #define MX51_PAD_GPIO_1_0__GPIO_1_0		IOMUX_PAD(0x7B4, 0x3AC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_1__ESDHC1_WP		IOMUX_PAD(0x7B8, 0x3B0, 0, 0x0,   0, MX51_I2C_PAD_CTRL)
>  #define MX51_PAD_GPIO_1_1__GPIO_1_1		IOMUX_PAD(0x7B8, 0x3B0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_2__GPIO_1_2		IOMUX_PAD(0x7D4, 0x3CC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_2__GPIO_1_2		IOMUX_PAD(0x7D4, 0x3CC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>  #define MX51_PAD_GPIO_1_2__I2C2_SCL		IOMUX_PAD(0x7D4, 0x3CC, (2 | IOMUX_CONFIG_SION), \
>  							0x9b8,   3, MX51_I2C_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_3__GPIO_1_3		IOMUX_PAD(0x7D8, 0x3D0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_3__GPIO_1_3		IOMUX_PAD(0x7D8, 0x3D0, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>  #define MX51_PAD_GPIO_1_3__I2C2_SDA		IOMUX_PAD(0x7D8, 0x3D0, (2 | IOMUX_CONFIG_SION), \
>  							0x9bc,   3, MX51_I2C_PAD_CTRL)
>  #define MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ	IOMUX_PAD(0x7FC, 0x3D4, 0, 0x0,   0, NO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_4__GPIO_1_4		IOMUX_PAD(0x804, 0x3D8, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_5__GPIO_1_5		IOMUX_PAD(0x808, 0x3DC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_6__GPIO_1_6		IOMUX_PAD(0x80C, 0x3E0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_7__GPIO_1_7		IOMUX_PAD(0x810, 0x3E4, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_8__GPIO_1_8		IOMUX_PAD(0x814, 0x3E8, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_9__GPIO_1_9		IOMUX_PAD(0x818, 0x3EC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_4__GPIO_1_4		IOMUX_PAD(0x804, 0x3D8, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_5__GPIO_1_5		IOMUX_PAD(0x808, 0x3DC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_6__GPIO_1_6		IOMUX_PAD(0x80C, 0x3E0, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_7__GPIO_1_7		IOMUX_PAD(0x810, 0x3E4, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_7__ESDHC2_WP		IOMUX_PAD(0x810, 0x3E4, 6, 0x0,   0, MX51_I2C_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_8__GPIO_1_8		IOMUX_PAD(0x814, 0x3E8, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_8__ESDHC2_CD		IOMUX_PAD(0x814, 0x3E8, 6, 0x0,   0, MX51_I2C_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_9__GPIO_1_9		IOMUX_PAD(0x818, 0x3EC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)

Some of these are used in 2/9, right? So this patch should be before
2/9.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-19 20:42 ` [patch 1/9] efikamx: read board id Arnaud Patard (Rtp)
@ 2010-10-19 21:15   ` Sascha Hauer
  2010-10-19 21:30     ` Matt Sealey
  0 siblings, 1 reply; 43+ messages in thread
From: Sascha Hauer @ 2010-10-19 21:15 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Oct 19, 2010 at 10:42:54PM +0200, Arnaud Patard wrote:
> read board id value from the GPIO3_16/17/11
> 
>  
> +/*   PCBID2  PCBID1 PCBID0  STATE
> +	1       1      1    ER1:rev1.1
> +	1       1      0    ER2:rev1.2
> +	1       0      1    ER3:rev1.3
> +	1       0      0    ER4:rev1.4
> +*/
> +static void __init mx51_efikamx_board_id(void)
> +{
> +	int id;
> +
> +	/* things are taking time to settle */
> +	msleep(500);

Is it really necessary to delay the boot process such a long time?

> +
> +	gpio_request(EFIKAMX_PCBID0, "pcbid0");
> +	gpio_direction_input(EFIKAMX_PCBID0);
> +	gpio_request(EFIKAMX_PCBID1, "pcbid1");
> +	gpio_direction_input(EFIKAMX_PCBID1);
> +	gpio_request(EFIKAMX_PCBID2, "pcbid2");
> +	gpio_direction_input(EFIKAMX_PCBID2);
> +
> +	id = gpio_get_value(EFIKAMX_PCBID0);
> +	id |= gpio_get_value(EFIKAMX_PCBID1) << 1;
> +	id |= gpio_get_value(EFIKAMX_PCBID2) << 2;
> +
> +	switch (id) {
> +	case 7:
> +		system_rev = 0x11;
> +		break;
> +	case 6:
> +		system_rev = 0x12;
> +		break;
> +	case 5:
> +		system_rev = 0x13;
> +		break;
> +	case 4:
> +		system_rev = 0x14;
> +		break;
> +	default:
> +		system_rev = 0x10;
> +		break;
> +	}
> +
> +	if	((system_rev == 0x10)

Please replace the tab after 'if' with a space

> +		|| (system_rev == 0x12)
> +		|| (system_rev == 0x14)) {
> +		printk(KERN_WARNING
> +			"EfikaMX: Unsupported board revision 1.%u!\n",
> +			system_rev & 0xf);
> +	}

I know nothing about the versioning scheme, but what about 1.1? Is it
supported?

> +}
> +
>  static void __init mxc_board_init(void)
>  {
>  	mxc_iomux_v3_setup_multiple_pads(mx51efikamx_pads,
>  					ARRAY_SIZE(mx51efikamx_pads));
> +	mx51_efikamx_board_id();
>  	mxc_register_device(&mxc_usbdr_host_device, &dr_utmi_config);
>  	mxc_init_imx_uart();
>  }
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-19 21:15   ` Sascha Hauer
@ 2010-10-19 21:30     ` Matt Sealey
  2010-10-20  7:54       ` Amit Kucheria
                         ` (2 more replies)
  0 siblings, 3 replies; 43+ messages in thread
From: Matt Sealey @ 2010-10-19 21:30 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Oct 19, 2010 at 4:15 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Tue, Oct 19, 2010 at 10:42:54PM +0200, Arnaud Patard wrote:
>> read board id value from the GPIO3_16/17/11
>>
>>
>> +/* ? PCBID2 ?PCBID1 PCBID0 ?STATE
>> + ? ? 1 ? ? ? 1 ? ? ?1 ? ?ER1:rev1.1
>> + ? ? 1 ? ? ? 1 ? ? ?0 ? ?ER2:rev1.2
>> + ? ? 1 ? ? ? 0 ? ? ?1 ? ?ER3:rev1.3
>> + ? ? 1 ? ? ? 0 ? ? ?0 ? ?ER4:rev1.4
>> +*/
>> +static void __init mx51_efikamx_board_id(void)
>> +{
>> + ? ? int id;
>> +
>> + ? ? /* things are taking time to settle */
>> + ? ? msleep(500);
>
> Is it really necessary to delay the boot process such a long time?

Yes. On older boards the PCBID pins are pulled high by IOMUX settings
(a pulldown on the board on newer revisions will keep it down). IOMUX
and GPIO stuff takes a little while to settle in, so if you do it
immediately, it will return some freakish values based on random GPIO
setup (it may be high, low, or none of the above at any point before
the pad setting kicks in).

>> + ? ? gpio_request(EFIKAMX_PCBID0, "pcbid0");
>> + ? ? gpio_direction_input(EFIKAMX_PCBID0);
>> + ? ? gpio_request(EFIKAMX_PCBID1, "pcbid1");
>> + ? ? gpio_direction_input(EFIKAMX_PCBID1);
>> + ? ? gpio_request(EFIKAMX_PCBID2, "pcbid2");
>> + ? ? gpio_direction_input(EFIKAMX_PCBID2);
>> +
>> + ? ? id = gpio_get_value(EFIKAMX_PCBID0);
>> + ? ? id |= gpio_get_value(EFIKAMX_PCBID1) << 1;
>> + ? ? id |= gpio_get_value(EFIKAMX_PCBID2) << 2;
>> +
>> + ? ? switch (id) {
>> + ? ? case 7:
>> + ? ? ? ? ? ? system_rev = 0x11;
>> + ? ? ? ? ? ? break;
>> + ? ? case 6:
>> + ? ? ? ? ? ? system_rev = 0x12;
>> + ? ? ? ? ? ? break;
>> + ? ? case 5:
>> + ? ? ? ? ? ? system_rev = 0x13;
>> + ? ? ? ? ? ? break;
>> + ? ? case 4:
>> + ? ? ? ? ? ? system_rev = 0x14;
>> + ? ? ? ? ? ? break;
>> + ? ? default:
>> + ? ? ? ? ? ? system_rev = 0x10;
>> + ? ? ? ? ? ? break;
>> + ? ? }
>> +
>> + ? ? if ? ? ?((system_rev == 0x10)
>
> Please replace the tab after 'if' with a space
>
>> + ? ? ? ? ? ? || (system_rev == 0x12)
>> + ? ? ? ? ? ? || (system_rev == 0x14)) {
>> + ? ? ? ? ? ? printk(KERN_WARNING
>> + ? ? ? ? ? ? ? ? ? ? "EfikaMX: Unsupported board revision 1.%u!\n",
>> + ? ? ? ? ? ? ? ? ? ? system_rev & 0xf);
>> + ? ? }
>
> I know nothing about the versioning scheme, but what about 1.1? Is it
> supported?

The check is just a nicety; Genesi have only shipped 1.1 and 1.3
boards to customers.

1.0 was the original "developer edition". Laurent Guerby and a few
other people have these boards to make simple compile farms out of.
Some stuff plain doesn't work, though (ethernet on USB DR port), so we
track it as "unsupported" - if someone wants to fix it up with patches
they may. Until then we warn in dmesg that this is a weird board
revision so we can keep track and warn users not to "complain".

1.1 is the "TO2" original board on sale. They are useful, without
NEON, as compile boxes or so.

1.2 was an internal build featuring most 90% of the features of 1.3,
but with an i.MX515 TO2. They do exist: I have 4 or 5 sitting in my
office. They're pointless to use though as TO2 boards don't have
stable NEON and we didn't do a great deal of testing (1.3 was around
the corner and had fixed a bunch of stuff).

1.3 is the "TO3" board. We shipped it around April/May I think and
customers were offered replacements.

1.4 does not exist in production as of yet (and may not ever be) but
the PCBID is planned already.

-- 
Matt Sealey <matt@genesi-usa.com>
Product Development Analyst, Genesi USA, Inc.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 9/9] efikamx: add reset
  2010-10-19 20:43 ` [patch 9/9] efikamx: add reset Arnaud Patard (Rtp)
@ 2010-10-19 23:51   ` Fabio Estevam
  2010-10-20  8:13     ` Arnaud Patard (Rtp)
  0 siblings, 1 reply; 43+ messages in thread
From: Fabio Estevam @ 2010-10-19 23:51 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Arnaud,

--- On Tue, 10/19/10, Arnaud Patard <arnaud.patard@rtp-net.org> wrote:
...
> +void mx51_efikamx_reset(int mode, const char *cmd)
> +{
> +??? if (system_rev == 0x11)
> +??? ???

Couldn't it be void mx51_efikamx_reset(void) instead?

'mode' and 'cmd' are not being used.

Regards,

Fabio Estevam


      

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-19 21:30     ` Matt Sealey
@ 2010-10-20  7:54       ` Amit Kucheria
  2010-10-20  8:12         ` Arnaud Patard (Rtp)
  2010-10-20  8:24       ` Sascha Hauer
  2010-10-20  9:16       ` Uwe Kleine-König
  2 siblings, 1 reply; 43+ messages in thread
From: Amit Kucheria @ 2010-10-20  7:54 UTC (permalink / raw)
  To: linux-arm-kernel

On 10 Oct 19, Matt Sealey wrote:
> On Tue, Oct 19, 2010 at 4:15 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > On Tue, Oct 19, 2010 at 10:42:54PM +0200, Arnaud Patard wrote:
> >> read board id value from the GPIO3_16/17/11
> >>
> >>
> >> +/* ? PCBID2 ?PCBID1 PCBID0 ?STATE
> >> + ? ? 1 ? ? ? 1 ? ? ?1 ? ?ER1:rev1.1
> >> + ? ? 1 ? ? ? 1 ? ? ?0 ? ?ER2:rev1.2
> >> + ? ? 1 ? ? ? 0 ? ? ?1 ? ?ER3:rev1.3
> >> + ? ? 1 ? ? ? 0 ? ? ?0 ? ?ER4:rev1.4
> >> +*/
> >> +static void __init mx51_efikamx_board_id(void)
> >> +{
> >> + ? ? int id;
> >> +
> >> + ? ? /* things are taking time to settle */
> >> + ? ? msleep(500);
> >
> > Is it really necessary to delay the boot process such a long time?
> 
> Yes. On older boards the PCBID pins are pulled high by IOMUX settings
> (a pulldown on the board on newer revisions will keep it down). IOMUX
> and GPIO stuff takes a little while to settle in, so if you do it
> immediately, it will return some freakish values based on random GPIO
> setup (it may be high, low, or none of the above at any point before
> the pad setting kicks in).

Then perhaps do this only for the older boards?

So by default there is no delay, but when a (new) config option is enabled,
delay boot.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-20  7:54       ` Amit Kucheria
@ 2010-10-20  8:12         ` Arnaud Patard (Rtp)
  2010-10-20  9:03           ` Amit Kucheria
  0 siblings, 1 reply; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-20  8:12 UTC (permalink / raw)
  To: linux-arm-kernel

Amit Kucheria <amit.kucheria@linaro.org> writes:

> On 10 Oct 19, Matt Sealey wrote:
>> On Tue, Oct 19, 2010 at 4:15 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
>> > On Tue, Oct 19, 2010 at 10:42:54PM +0200, Arnaud Patard wrote:
>> >> read board id value from the GPIO3_16/17/11
>> >>
>> >>
>> >> +/* ? PCBID2 ?PCBID1 PCBID0 ?STATE
>> >> + ? ? 1 ? ? ? 1 ? ? ?1 ? ?ER1:rev1.1
>> >> + ? ? 1 ? ? ? 1 ? ? ?0 ? ?ER2:rev1.2
>> >> + ? ? 1 ? ? ? 0 ? ? ?1 ? ?ER3:rev1.3
>> >> + ? ? 1 ? ? ? 0 ? ? ?0 ? ?ER4:rev1.4
>> >> +*/
>> >> +static void __init mx51_efikamx_board_id(void)
>> >> +{
>> >> + ? ? int id;
>> >> +
>> >> + ? ? /* things are taking time to settle */
>> >> + ? ? msleep(500);
>> >
>> > Is it really necessary to delay the boot process such a long time?
>> 
>> Yes. On older boards the PCBID pins are pulled high by IOMUX settings
>> (a pulldown on the board on newer revisions will keep it down). IOMUX
>> and GPIO stuff takes a little while to settle in, so if you do it
>> immediately, it will return some freakish values based on random GPIO
>> setup (it may be high, low, or none of the above at any point before
>> the pad setting kicks in).
>
> Then perhaps do this only for the older boards?

How can you detect older boards without looking at board id pins ? :)

>
> So by default there is no delay, but when a (new) config option is enabled,
> delay boot.

I don't think it's a good idea. This would mean that the same kernel
can't run on old and new boards. Also, there's no way to easily know
which board you have (I don't consider opening the box is an easy way)
so it's likely that someone will get this wrong sooner or later.

Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 9/9] efikamx: add reset
  2010-10-19 23:51   ` Fabio Estevam
@ 2010-10-20  8:13     ` Arnaud Patard (Rtp)
  0 siblings, 0 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-20  8:13 UTC (permalink / raw)
  To: linux-arm-kernel

Fabio Estevam <fabioestevam@yahoo.com> writes:

> Hi Arnaud,

Hi,
>
> --- On Tue, 10/19/10, Arnaud Patard <arnaud.patard@rtp-net.org> wrote:
> ...
>> +void mx51_efikamx_reset(int mode, const char *cmd)
>> +{
>> +??? if (system_rev == 0x11)
>> +??? ???
>
> Couldn't it be void mx51_efikamx_reset(void) instead?
>
> 'mode' and 'cmd' are not being used.

I took the same prototype as arch_reset() but I can remove it (and will
do).

Thanks,
Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-19 21:04   ` Sascha Hauer
@ 2010-10-20  8:14     ` Arnaud Patard (Rtp)
  0 siblings, 0 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-20  8:14 UTC (permalink / raw)
  To: linux-arm-kernel

Sascha Hauer <s.hauer@pengutronix.de> writes:

Hi,

 >
> Some of these are used in 2/9, right? So this patch should be before
> 2/9.

oh, yeah. sorry. I've reorder the series for some tests and manage to
get this wrong. Will fix.

Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-19 21:30     ` Matt Sealey
  2010-10-20  7:54       ` Amit Kucheria
@ 2010-10-20  8:24       ` Sascha Hauer
  2010-10-20  8:35         ` Arnaud Patard (Rtp)
  2010-10-20  8:59         ` Matt Sealey
  2010-10-20  9:16       ` Uwe Kleine-König
  2 siblings, 2 replies; 43+ messages in thread
From: Sascha Hauer @ 2010-10-20  8:24 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Oct 19, 2010 at 04:30:25PM -0500, Matt Sealey wrote:
> On Tue, Oct 19, 2010 at 4:15 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > On Tue, Oct 19, 2010 at 10:42:54PM +0200, Arnaud Patard wrote:
> >> read board id value from the GPIO3_16/17/11
> >>
> >>
> >> +/* ? PCBID2 ?PCBID1 PCBID0 ?STATE
> >> + ? ? 1 ? ? ? 1 ? ? ?1 ? ?ER1:rev1.1
> >> + ? ? 1 ? ? ? 1 ? ? ?0 ? ?ER2:rev1.2
> >> + ? ? 1 ? ? ? 0 ? ? ?1 ? ?ER3:rev1.3
> >> + ? ? 1 ? ? ? 0 ? ? ?0 ? ?ER4:rev1.4
> >> +*/
> >> +static void __init mx51_efikamx_board_id(void)
> >> +{
> >> + ? ? int id;
> >> +
> >> + ? ? /* things are taking time to settle */
> >> + ? ? msleep(500);
> >
> > Is it really necessary to delay the boot process such a long time?
> 
> Yes. On older boards the PCBID pins are pulled high by IOMUX settings
> (a pulldown on the board on newer revisions will keep it down). IOMUX
> and GPIO stuff takes a little while to settle in, so if you do it
> immediately, it will return some freakish values based on random GPIO
> setup (it may be high, low, or none of the above at any point before
> the pad setting kicks in).

Maybe it's possible to delay only the registering of the devices which
depend on the board revision, perhaps with a workqueue. But ok, I don't
care much and this won't be a show stopper for this patch.


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-20  8:24       ` Sascha Hauer
@ 2010-10-20  8:35         ` Arnaud Patard (Rtp)
  2010-10-20  8:59         ` Matt Sealey
  1 sibling, 0 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-20  8:35 UTC (permalink / raw)
  To: linux-arm-kernel

Sascha Hauer <s.hauer@pengutronix.de> writes:

> On Tue, Oct 19, 2010 at 04:30:25PM -0500, Matt Sealey wrote:
>> On Tue, Oct 19, 2010 at 4:15 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
>> > On Tue, Oct 19, 2010 at 10:42:54PM +0200, Arnaud Patard wrote:
>> >> read board id value from the GPIO3_16/17/11
>> >>
>> >>
>> >> +/* ? PCBID2 ?PCBID1 PCBID0 ?STATE
>> >> + ? ? 1 ? ? ? 1 ? ? ?1 ? ?ER1:rev1.1
>> >> + ? ? 1 ? ? ? 1 ? ? ?0 ? ?ER2:rev1.2
>> >> + ? ? 1 ? ? ? 0 ? ? ?1 ? ?ER3:rev1.3
>> >> + ? ? 1 ? ? ? 0 ? ? ?0 ? ?ER4:rev1.4
>> >> +*/
>> >> +static void __init mx51_efikamx_board_id(void)
>> >> +{
>> >> + ? ? int id;
>> >> +
>> >> + ? ? /* things are taking time to settle */
>> >> + ? ? msleep(500);
>> >
>> > Is it really necessary to delay the boot process such a long time?
>> 
>> Yes. On older boards the PCBID pins are pulled high by IOMUX settings
>> (a pulldown on the board on newer revisions will keep it down). IOMUX
>> and GPIO stuff takes a little while to settle in, so if you do it
>> immediately, it will return some freakish values based on random GPIO
>> setup (it may be high, low, or none of the above at any point before
>> the pad setting kicks in).
>
> Maybe it's possible to delay only the registering of the devices which
> depend on the board revision, perhaps with a workqueue. But ok, I don't
> care much and this won't be a show stopper for this patch.

ok. Will wait a little bit more for comments and send a new patchset.

Thanks,
Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-20  8:24       ` Sascha Hauer
  2010-10-20  8:35         ` Arnaud Patard (Rtp)
@ 2010-10-20  8:59         ` Matt Sealey
  1 sibling, 0 replies; 43+ messages in thread
From: Matt Sealey @ 2010-10-20  8:59 UTC (permalink / raw)
  To: linux-arm-kernel

Very few parts of the system require the board id pins to work out the
version. It would be better if the IOMUX was set up and then anything
that requires a flipflop on the board revision is done last. We do
that in the EfikaMX kernels - SDHC and a couple other things rely on
board id but the vast majority of other things (SPI etc.) absolutely
do not.

The time it takes to perform the init of 1 or 2 other units via IOMUX
is time enough to let the PCB id pins settle. This is one of the
reasons we split our board support in our kernels into seperate
files..

-- 
Matt Sealey <matt@genesi-usa.com>
Product Development Analyst, Genesi USA, Inc.



On Wed, Oct 20, 2010 at 3:24 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Tue, Oct 19, 2010 at 04:30:25PM -0500, Matt Sealey wrote:
>> On Tue, Oct 19, 2010 at 4:15 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
>> > On Tue, Oct 19, 2010 at 10:42:54PM +0200, Arnaud Patard wrote:
>> >> read board id value from the GPIO3_16/17/11
>> >>
>> >>
>> >> +/* ? PCBID2 ?PCBID1 PCBID0 ?STATE
>> >> + ? ? 1 ? ? ? 1 ? ? ?1 ? ?ER1:rev1.1
>> >> + ? ? 1 ? ? ? 1 ? ? ?0 ? ?ER2:rev1.2
>> >> + ? ? 1 ? ? ? 0 ? ? ?1 ? ?ER3:rev1.3
>> >> + ? ? 1 ? ? ? 0 ? ? ?0 ? ?ER4:rev1.4
>> >> +*/
>> >> +static void __init mx51_efikamx_board_id(void)
>> >> +{
>> >> + ? ? int id;
>> >> +
>> >> + ? ? /* things are taking time to settle */
>> >> + ? ? msleep(500);
>> >
>> > Is it really necessary to delay the boot process such a long time?
>>
>> Yes. On older boards the PCBID pins are pulled high by IOMUX settings
>> (a pulldown on the board on newer revisions will keep it down). IOMUX
>> and GPIO stuff takes a little while to settle in, so if you do it
>> immediately, it will return some freakish values based on random GPIO
>> setup (it may be high, low, or none of the above at any point before
>> the pad setting kicks in).
>
> Maybe it's possible to delay only the registering of the devices which
> depend on the board revision, perhaps with a workqueue. But ok, I don't
> care much and this won't be a show stopper for this patch.
>
>
> --
> Pengutronix e.K. ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
> Industrial Linux Solutions ? ? ? ? ? ? ? ? | http://www.pengutronix.de/ ?|
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 ? ?|
> Amtsgericht Hildesheim, HRA 2686 ? ? ? ? ? | Fax: ? +49-5121-206917-5555 |
>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-20  8:12         ` Arnaud Patard (Rtp)
@ 2010-10-20  9:03           ` Amit Kucheria
  0 siblings, 0 replies; 43+ messages in thread
From: Amit Kucheria @ 2010-10-20  9:03 UTC (permalink / raw)
  To: linux-arm-kernel

On 10 Oct 20, Arnaud Patard wrote:
> Amit Kucheria <amit.kucheria@linaro.org> writes:
> 
> > On 10 Oct 19, Matt Sealey wrote:
> >> On Tue, Oct 19, 2010 at 4:15 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> >> > On Tue, Oct 19, 2010 at 10:42:54PM +0200, Arnaud Patard wrote:
> >> >> read board id value from the GPIO3_16/17/11
> >> >>
> >> >>
> >> >> +/* ? PCBID2 ?PCBID1 PCBID0 ?STATE
> >> >> + ? ? 1 ? ? ? 1 ? ? ?1 ? ?ER1:rev1.1
> >> >> + ? ? 1 ? ? ? 1 ? ? ?0 ? ?ER2:rev1.2
> >> >> + ? ? 1 ? ? ? 0 ? ? ?1 ? ?ER3:rev1.3
> >> >> + ? ? 1 ? ? ? 0 ? ? ?0 ? ?ER4:rev1.4
> >> >> +*/
> >> >> +static void __init mx51_efikamx_board_id(void)
> >> >> +{
> >> >> + ? ? int id;
> >> >> +
> >> >> + ? ? /* things are taking time to settle */
> >> >> + ? ? msleep(500);
> >> >
> >> > Is it really necessary to delay the boot process such a long time?
> >> 
> >> Yes. On older boards the PCBID pins are pulled high by IOMUX settings
> >> (a pulldown on the board on newer revisions will keep it down). IOMUX
> >> and GPIO stuff takes a little while to settle in, so if you do it
> >> immediately, it will return some freakish values based on random GPIO
> >> setup (it may be high, low, or none of the above at any point before
> >> the pad setting kicks in).
> >
> > Then perhaps do this only for the older boards?
> 
> How can you detect older boards without looking at board id pins ? :)

You don't. I was suggesting a config option that doesn't penalise those with
non-buggy boards....

> >
> > So by default there is no delay, but when a (new) config option is enabled,
> > delay boot.
> 
> I don't think it's a good idea. This would mean that the same kernel
> can't run on old and new boards. Also, there's no way to easily know
> which board you have (I don't consider opening the box is an easy way)
> so it's likely that someone will get this wrong sooner or later.

...but you're right. If one has to support a variety of boards on single
kernel, this won't work.

/Amit

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-19 20:42 ` [patch 3/9] imx51: enhance/fix iomux configuration Arnaud Patard (Rtp)
  2010-10-19 21:04   ` Sascha Hauer
@ 2010-10-20  9:14   ` Eric Bénard
  2010-10-20  9:26     ` Arnaud Patard (Rtp)
  2010-10-20  9:18   ` Eric Bénard
  2010-10-20 10:00   ` Uwe Kleine-König
  3 siblings, 1 reply; 43+ messages in thread
From: Eric Bénard @ 2010-10-20  9:14 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Arnaud,

in this patch, you break configuration for all the GPIO_1_x here (the correct 
lat mux for GPIO mode on pins GPIO_1_x is 1 and not 0).

Eric

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-19 21:30     ` Matt Sealey
  2010-10-20  7:54       ` Amit Kucheria
  2010-10-20  8:24       ` Sascha Hauer
@ 2010-10-20  9:16       ` Uwe Kleine-König
  2010-10-20 17:26         ` Matt Sealey
  2 siblings, 1 reply; 43+ messages in thread
From: Uwe Kleine-König @ 2010-10-20  9:16 UTC (permalink / raw)
  To: linux-arm-kernel

Hiho,

On Tue, Oct 19, 2010 at 04:30:25PM -0500, Matt Sealey wrote:
> On Tue, Oct 19, 2010 at 4:15 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > On Tue, Oct 19, 2010 at 10:42:54PM +0200, Arnaud Patard wrote:
> >> read board id value from the GPIO3_16/17/11
> >>
> >>
> >> +/* ? PCBID2 ?PCBID1 PCBID0 ?STATE
> >> + ? ? 1 ? ? ? 1 ? ? ?1 ? ?ER1:rev1.1
> >> + ? ? 1 ? ? ? 1 ? ? ?0 ? ?ER2:rev1.2
> >> + ? ? 1 ? ? ? 0 ? ? ?1 ? ?ER3:rev1.3
> >> + ? ? 1 ? ? ? 0 ? ? ?0 ? ?ER4:rev1.4
> >> +*/
> >> +static void __init mx51_efikamx_board_id(void)
> >> +{
> >> + ? ? int id;
> >> +
> >> + ? ? /* things are taking time to settle */
> >> + ? ? msleep(500);
> >
> > Is it really necessary to delay the boot process such a long time?
> 
> Yes. On older boards the PCBID pins are pulled high by IOMUX settings
> (a pulldown on the board on newer revisions will keep it down). IOMUX
> and GPIO stuff takes a little while to settle in, so if you do it
> immediately, it will return some freakish values based on random GPIO
> setup (it may be high, low, or none of the above at any point before
> the pad setting kicks in).
If the bootloader might configure the pins correctly, maybe something
like:

	if (pins_are_not_yet_configured_correctly()) {
		do_configure_them();
		msleep(500);
	}

?

Best regards
Uwe


-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-19 20:42 ` [patch 3/9] imx51: enhance/fix iomux configuration Arnaud Patard (Rtp)
  2010-10-19 21:04   ` Sascha Hauer
  2010-10-20  9:14   ` Eric Bénard
@ 2010-10-20  9:18   ` Eric Bénard
  2010-10-20  9:29     ` Arnaud Patard (Rtp)
  2010-10-20  9:41     ` Amit Kucheria
  2010-10-20 10:00   ` Uwe Kleine-König
  3 siblings, 2 replies; 43+ messages in thread
From: Eric Bénard @ 2010-10-20  9:18 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Arnaud,

Le 19/10/2010 22:42, Arnaud Patard (Rtp) a ?crit :
 > - ALT0 is used to set GPIO mode of GPIO_1_{2,3,4,5,6,7,8,9} but it's ALT1
for GPIO_1_{0,1}.

oops sorry forget my previous mail, in fact I think I broke 
GPIO_1_{2,3,4,5,6,7,8,9} in a previous patch when fixing GPIO_1_{0,1} :-(
Thanks for noticing and fixing this.

Eric

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-20  9:14   ` Eric Bénard
@ 2010-10-20  9:26     ` Arnaud Patard (Rtp)
  0 siblings, 0 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-20  9:26 UTC (permalink / raw)
  To: linux-arm-kernel

Eric B?nard <eric@eukrea.com> writes:

> Hi Arnaud,

Hi,
>
> in this patch, you break configuration for all the GPIO_1_x here (the
> correct lat mux for GPIO mode on pins GPIO_1_x is 1 and not 0).

No. For instance, page 3447 of the MCIMX51RM.pdf thing :

000: Select mux mode: ALT0 mux port: GPIO[8] of instance: gpio1.

or page 3441 :

000: Select mux mode: ALT0 mux port: GPIO[3] of instance: gpio1

How is possible that 000b is equal to 1 ?

Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-20  9:18   ` Eric Bénard
@ 2010-10-20  9:29     ` Arnaud Patard (Rtp)
  2010-10-20  9:41     ` Amit Kucheria
  1 sibling, 0 replies; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-20  9:29 UTC (permalink / raw)
  To: linux-arm-kernel

Eric B?nard <eric@eukrea.com> writes:

> Hi Arnaud,

Hi,

>
> Le 19/10/2010 22:42, Arnaud Patard (Rtp) a ?crit :
>> - ALT0 is used to set GPIO mode of GPIO_1_{2,3,4,5,6,7,8,9} but it's ALT1
> for GPIO_1_{0,1}.
>
> oops sorry forget my previous mail, in fact I think I broke
> GPIO_1_{2,3,4,5,6,7,8,9} in a previous patch when fixing GPIO_1_{0,1}
> :-(

oops. sorry. I've replied too quickly. I've seen this mail after replying.
Please forget my reply then :)

Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-20  9:18   ` Eric Bénard
  2010-10-20  9:29     ` Arnaud Patard (Rtp)
@ 2010-10-20  9:41     ` Amit Kucheria
  1 sibling, 0 replies; 43+ messages in thread
From: Amit Kucheria @ 2010-10-20  9:41 UTC (permalink / raw)
  To: linux-arm-kernel

On 10 Oct 20, Eric B?nard wrote:
> Hi Arnaud,
> 
> Le 19/10/2010 22:42, Arnaud Patard (Rtp) a ?crit :
> > - ALT0 is used to set GPIO mode of GPIO_1_{2,3,4,5,6,7,8,9} but it's ALT1
> for GPIO_1_{0,1}.
> 
> oops sorry forget my previous mail, in fact I think I broke
> GPIO_1_{2,3,4,5,6,7,8,9} in a previous patch when fixing
> GPIO_1_{0,1} :-(
> Thanks for noticing and fixing this.

I did wonder where they got flipped from Alt 0 to Alt 1 in the first place.
Just noticed your patch in Sascha's tree.

/Amit

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-19 20:42 ` [patch 3/9] imx51: enhance/fix iomux configuration Arnaud Patard (Rtp)
                     ` (2 preceding siblings ...)
  2010-10-20  9:18   ` Eric Bénard
@ 2010-10-20 10:00   ` Uwe Kleine-König
  2010-10-20 10:12     ` Arnaud Patard (Rtp)
  3 siblings, 1 reply; 43+ messages in thread
From: Uwe Kleine-König @ 2010-10-20 10:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Oct 19, 2010 at 10:42:56PM +0200, Arnaud Patard wrote:
> - ALT0 is used to set GPIO mode of GPIO_1_{2,3,4,5,6,7,8,9} but it's ALT1
> for GPIO_1_{0,1}.
> - add definition to configure pads as ESDHC{1,2} WP and CD
> 
> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
> Index: linux-2.6/arch/arm/plat-mxc/include/mach/iomux-mx51.h
> ===================================================================
> --- linux-2.6.orig/arch/arm/plat-mxc/include/mach/iomux-mx51.h	2010-10-16 22:22:06.000000000 +0200
> +++ linux-2.6/arch/arm/plat-mxc/include/mach/iomux-mx51.h	2010-10-16 22:23:22.000000000 +0200
> @@ -366,20 +366,24 @@
>  							MX51_SDHCI_PAD_CTRL)
>  #define MX51_PAD_SD2_DATA3__SD2_DATA3		IOMUX_PAD(0x7D0, 0x3C8, IOMUX_CONFIG_SION, 0x0, 0, \
>  							MX51_SDHCI_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_0__ESDHC1_CD		IOMUX_PAD(0x7B4, 0x3AC, 0, 0x0,   0, MX51_I2C_PAD_CTRL)
Is MX51_I2C_PAD_CTRL correct?  ditto for MX51_PAD_GPIO_1_1__ESDHC1_WP.

>  #define MX51_PAD_GPIO_1_0__GPIO_1_0		IOMUX_PAD(0x7B4, 0x3AC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_1__ESDHC1_WP		IOMUX_PAD(0x7B8, 0x3B0, 0, 0x0,   0, MX51_I2C_PAD_CTRL)
>  #define MX51_PAD_GPIO_1_1__GPIO_1_1		IOMUX_PAD(0x7B8, 0x3B0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_2__GPIO_1_2		IOMUX_PAD(0x7D4, 0x3CC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_2__GPIO_1_2		IOMUX_PAD(0x7D4, 0x3CC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>  #define MX51_PAD_GPIO_1_2__I2C2_SCL		IOMUX_PAD(0x7D4, 0x3CC, (2 | IOMUX_CONFIG_SION), \
>  							0x9b8,   3, MX51_I2C_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_3__GPIO_1_3		IOMUX_PAD(0x7D8, 0x3D0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_3__GPIO_1_3		IOMUX_PAD(0x7D8, 0x3D0, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>  #define MX51_PAD_GPIO_1_3__I2C2_SDA		IOMUX_PAD(0x7D8, 0x3D0, (2 | IOMUX_CONFIG_SION), \
>  							0x9bc,   3, MX51_I2C_PAD_CTRL)
>  #define MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ	IOMUX_PAD(0x7FC, 0x3D4, 0, 0x0,   0, NO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_4__GPIO_1_4		IOMUX_PAD(0x804, 0x3D8, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_5__GPIO_1_5		IOMUX_PAD(0x808, 0x3DC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_6__GPIO_1_6		IOMUX_PAD(0x80C, 0x3E0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_7__GPIO_1_7		IOMUX_PAD(0x810, 0x3E4, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_8__GPIO_1_8		IOMUX_PAD(0x814, 0x3E8, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> -#define MX51_PAD_GPIO_1_9__GPIO_1_9		IOMUX_PAD(0x818, 0x3EC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_4__GPIO_1_4		IOMUX_PAD(0x804, 0x3D8, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_5__GPIO_1_5		IOMUX_PAD(0x808, 0x3DC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_6__GPIO_1_6		IOMUX_PAD(0x80C, 0x3E0, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_7__GPIO_1_7		IOMUX_PAD(0x810, 0x3E4, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_7__ESDHC2_WP		IOMUX_PAD(0x810, 0x3E4, 6, 0x0,   0, MX51_I2C_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_8__GPIO_1_8		IOMUX_PAD(0x814, 0x3E8, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_8__ESDHC2_CD		IOMUX_PAD(0x814, 0x3E8, 6, 0x0,   0, MX51_I2C_PAD_CTRL)
> +#define MX51_PAD_GPIO_1_9__GPIO_1_9		IOMUX_PAD(0x818, 0x3EC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
Maybe make this in two patches?  One fix and one to add new definitions?

Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-20 10:00   ` Uwe Kleine-König
@ 2010-10-20 10:12     ` Arnaud Patard (Rtp)
  2010-10-20 12:10       ` Uwe Kleine-König
  0 siblings, 1 reply; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-20 10:12 UTC (permalink / raw)
  To: linux-arm-kernel

Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> writes:

Hi,

> On Tue, Oct 19, 2010 at 10:42:56PM +0200, Arnaud Patard wrote:
>> - ALT0 is used to set GPIO mode of GPIO_1_{2,3,4,5,6,7,8,9} but it's ALT1
>> for GPIO_1_{0,1}.
>> - add definition to configure pads as ESDHC{1,2} WP and CD
>> 
>> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
>> Index: linux-2.6/arch/arm/plat-mxc/include/mach/iomux-mx51.h
>> ===================================================================
>> --- linux-2.6.orig/arch/arm/plat-mxc/include/mach/iomux-mx51.h	2010-10-16 22:22:06.000000000 +0200
>> +++ linux-2.6/arch/arm/plat-mxc/include/mach/iomux-mx51.h	2010-10-16 22:23:22.000000000 +0200
>> @@ -366,20 +366,24 @@
>>  							MX51_SDHCI_PAD_CTRL)
>>  #define MX51_PAD_SD2_DATA3__SD2_DATA3		IOMUX_PAD(0x7D0, 0x3C8, IOMUX_CONFIG_SION, 0x0, 0, \
>>  							MX51_SDHCI_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_0__ESDHC1_CD		IOMUX_PAD(0x7B4, 0x3AC, 0, 0x0,   0, MX51_I2C_PAD_CTRL)
> Is MX51_I2C_PAD_CTRL correct?  ditto for MX51_PAD_GPIO_1_1__ESDHC1_WP.

I was about to add something like MX51_ESDHC_PAD_CTRL but it turns out
that according to the original code I have, it would be the same thing
as I2C_PAD_CTRL.

>
>>  #define MX51_PAD_GPIO_1_0__GPIO_1_0		IOMUX_PAD(0x7B4, 0x3AC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_1__ESDHC1_WP		IOMUX_PAD(0x7B8, 0x3B0, 0, 0x0,   0, MX51_I2C_PAD_CTRL)
>>  #define MX51_PAD_GPIO_1_1__GPIO_1_1		IOMUX_PAD(0x7B8, 0x3B0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> -#define MX51_PAD_GPIO_1_2__GPIO_1_2		IOMUX_PAD(0x7D4, 0x3CC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_2__GPIO_1_2		IOMUX_PAD(0x7D4, 0x3CC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>>  #define MX51_PAD_GPIO_1_2__I2C2_SCL		IOMUX_PAD(0x7D4, 0x3CC, (2 | IOMUX_CONFIG_SION), \
>>  							0x9b8,   3, MX51_I2C_PAD_CTRL)
>> -#define MX51_PAD_GPIO_1_3__GPIO_1_3		IOMUX_PAD(0x7D8, 0x3D0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_3__GPIO_1_3		IOMUX_PAD(0x7D8, 0x3D0, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>>  #define MX51_PAD_GPIO_1_3__I2C2_SDA		IOMUX_PAD(0x7D8, 0x3D0, (2 | IOMUX_CONFIG_SION), \
>>  							0x9bc,   3, MX51_I2C_PAD_CTRL)
>>  #define MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ	IOMUX_PAD(0x7FC, 0x3D4, 0, 0x0,   0, NO_PAD_CTRL)
>> -#define MX51_PAD_GPIO_1_4__GPIO_1_4		IOMUX_PAD(0x804, 0x3D8, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> -#define MX51_PAD_GPIO_1_5__GPIO_1_5		IOMUX_PAD(0x808, 0x3DC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> -#define MX51_PAD_GPIO_1_6__GPIO_1_6		IOMUX_PAD(0x80C, 0x3E0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> -#define MX51_PAD_GPIO_1_7__GPIO_1_7		IOMUX_PAD(0x810, 0x3E4, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> -#define MX51_PAD_GPIO_1_8__GPIO_1_8		IOMUX_PAD(0x814, 0x3E8, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> -#define MX51_PAD_GPIO_1_9__GPIO_1_9		IOMUX_PAD(0x818, 0x3EC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_4__GPIO_1_4		IOMUX_PAD(0x804, 0x3D8, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_5__GPIO_1_5		IOMUX_PAD(0x808, 0x3DC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_6__GPIO_1_6		IOMUX_PAD(0x80C, 0x3E0, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_7__GPIO_1_7		IOMUX_PAD(0x810, 0x3E4, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_7__ESDHC2_WP		IOMUX_PAD(0x810, 0x3E4, 6, 0x0,   0, MX51_I2C_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_8__GPIO_1_8		IOMUX_PAD(0x814, 0x3E8, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_8__ESDHC2_CD		IOMUX_PAD(0x814, 0x3E8, 6, 0x0,   0, MX51_I2C_PAD_CTRL)
>> +#define MX51_PAD_GPIO_1_9__GPIO_1_9		IOMUX_PAD(0x818, 0x3EC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> Maybe make this in two patches?  One fix and one to add new definitions?

ok. makes sense. will split the patch.

Thanks,
Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 5/9] efikamx: add leds support
  2010-10-19 20:42 ` [patch 5/9] efikamx: add leds support Arnaud Patard (Rtp)
@ 2010-10-20 11:15   ` Amit Kucheria
  0 siblings, 0 replies; 43+ messages in thread
From: Amit Kucheria @ 2010-10-20 11:15 UTC (permalink / raw)
  To: linux-arm-kernel

On 10 Oct 19, Arnaud Patard wrote:
> The efika mx a 3 leds (1 blue, 1 red, 1 green) connected on GPIOS 3 13/14/15.
> Also, some special care is done for default trigger of blue led for mmc as
> the mmc host used is different between hw revisions
> 
> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> 
> Index: linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c
> ===================================================================
> --- linux-2.6.orig/arch/arm/mach-mx5/board-mx51_efikamx.c	2010-10-15 23:11:42.000000000 +0200
> +++ linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c	2010-10-15 23:11:51.000000000 +0200
> @@ -18,6 +18,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/i2c.h>
>  #include <linux/gpio.h>
> +#include <linux/leds.h>
>  #include <linux/delay.h>
>  #include <linux/io.h>
>  #include <linux/fsl_devices.h>
> @@ -43,6 +44,10 @@
>  #define EFIKAMX_PCBID1		(2*32+17)
>  #define EFIKAMX_PCBID2		(2*32+11)
>  
> +#define EFIKAMX_BLUE_LED	(2*32+13)
> +#define EFIKAMX_GREEN_LED	(2*32+14)
> +#define EFIKAMX_RED_LED		(2*32+15)
> +
>  /* the pci ids pin have pull up. they're driven low according to board id */
>  #define MX51_PAD_PCBID0	IOMUX_PAD(0x518, 0x130, 3, 0x0,   0, PAD_CTL_PUS_100K_UP)
>  #define MX51_PAD_PCBID1	IOMUX_PAD(0x51C, 0x134, 3, 0x0,   0, PAD_CTL_PUS_100K_UP)
> @@ -81,6 +86,11 @@
>  	MX51_PAD_GPIO_1_1__ESDHC1_WP,
>  	MX51_PAD_GPIO_1_7__ESDHC2_WP,
>  	MX51_PAD_GPIO_1_8__ESDHC2_CD,
> +
> +	/* leds */
> +	MX51_PAD_CSI1_D9__GPIO_3_13,
> +	MX51_PAD_CSI1_VSYNC__GPIO_3_14,
> +	MX51_PAD_CSI1_HSYNC__GPIO_3_15,
>  };
>  
>  /* Serial ports */
> @@ -179,6 +189,37 @@
>  	}
>  }
>  
> +static struct gpio_led mx51_efikamx_leds[] = {
> +	{
> +		.name = "efikamx:green",
> +		.default_trigger = "default-on",
> +		.gpio = EFIKAMX_GREEN_LED,
> +	},
> +	{
> +		.name = "efikamx:red",
> +		.default_trigger = "ide-disk",
> +		.gpio = EFIKAMX_RED_LED,
> +	},
> +	{
> +		.name = "efikamx:blue",
> +		.default_trigger = "mmc1",
> +		.gpio = EFIKAMX_BLUE_LED,

Make the default mmc0 ....

> +	},
> +};
> +
> +static struct gpio_led_platform_data mx51_efikamx_leds_data = {
> +	.leds = mx51_efikamx_leds,
> +	.num_leds = ARRAY_SIZE(mx51_efikamx_leds),
> +};
> +
> +static struct platform_device mx51_efikamx_leds_device = {
> +	.name = "leds-gpio",
> +	.id = -1,
> +	.dev = {
> +		.platform_data = &mx51_efikamx_leds_data,
> +	},
> +};
> +
>  static void __init mxc_board_init(void)
>  {
>  	mxc_iomux_v3_setup_multiple_pads(mx51efikamx_pads,
> @@ -191,6 +232,10 @@
>  	/* on < 1.2 boards the 2 SD controller are used */
>  	if (system_rev < 0x12)
>  		imx51_add_esdhc(1, NULL);
.. and change to mmc1 if system_rev < 0x12. That gets rid of this else
clause below.
>
> +	else
> +		mx51_efikamx_leds[2].default_trigger = "mmc0";
> +	platform_device_register(&mx51_efikamx_leds_device);
>  }
>  
>  static void __init mx51_efikamx_timer_init(void)
> 
> 

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 8/9] efikamx: add spi nor support
  2010-10-19 20:43 ` [patch 8/9] efikamx: add spi nor support Arnaud Patard (Rtp)
@ 2010-10-20 11:26   ` Amit Kucheria
  2010-10-20 12:01     ` Arnaud Patard (Rtp)
  2010-10-20 17:36     ` Matt Sealey
  0 siblings, 2 replies; 43+ messages in thread
From: Amit Kucheria @ 2010-10-20 11:26 UTC (permalink / raw)
  To: linux-arm-kernel

On 10 Oct 19, Arnaud Patard wrote:
> On efikamx, uboot is stored on a nor spi flash. Add support for it
> 
> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
> Index: linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c
> ===================================================================
> --- linux-2.6.orig/arch/arm/mach-mx5/board-mx51_efikamx.c	2010-10-16 14:21:24.000000000 +0200
> +++ linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c	2010-10-16 15:34:12.000000000 +0200
> @@ -24,6 +24,8 @@
>  #include <linux/delay.h>
>  #include <linux/io.h>
>  #include <linux/fsl_devices.h>
> +#include <linux/spi/flash.h>
> +#include <linux/spi/spi.h>
>  
>  #include <mach/common.h>
>  #include <mach/hardware.h>
> @@ -52,6 +54,9 @@
>  
>  #define EFIKAMX_POWER_KEY	(1*32+31)
>  
> +#define EFIKAMX_SPI_CS0		(3*32+24)
> +#define EFIKAMX_SPI_CS1		(3*32+25)

It is just a style thing, but could you make this (3*32 + 24). Makes it
easier on the eyes to read "4th gpio bank, 24th pin"

>  /* the pci ids pin have pull up. they're driven low according to board id */
>  #define MX51_PAD_PCBID0	IOMUX_PAD(0x518, 0x130, 3, 0x0,   0, PAD_CTL_PUS_100K_UP)
>  #define MX51_PAD_PCBID1	IOMUX_PAD(0x51C, 0x134, 3, 0x0,   0, PAD_CTL_PUS_100K_UP)
> @@ -99,6 +104,14 @@
>  
>  	/* power key */
>  	MX51_PAD_PWRKEY,
> +
> +	/* spi */
> +	MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI,
> +	MX51_PAD_CSPI1_MISO__ECSPI1_MISO,
> +	MX51_PAD_CSPI1_SS0__GPIO_4_24,
> +	MX51_PAD_CSPI1_SS1__GPIO_4_25,
> +	MX51_PAD_CSPI1_RDY__ECSPI1_RDY,
> +	MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK,
>  };
>  
>  /* Serial ports */
> @@ -252,6 +265,47 @@
>  	},
>  };
>  
> +static struct mtd_partition mx51_efikamx_spi_nor_partitions[] = {
> +	{
> +	 .name = "u-boot",

"bootloader" ?

> +	 .offset = 0,
> +	 .size = SZ_256K,
> +	},
> +	{
> +	  .name = "config",
> +	  .offset = MTDPART_OFS_APPEND,
> +	  .size = SZ_64K,
> +	},
> +};
> +
> +static struct flash_platform_data mx51_efikamx_spi_flash_data = {
> +	.name		= "spi_flash",
> +	.parts		= mx51_efikamx_spi_nor_partitions,
> +	.nr_parts	= ARRAY_SIZE(mx51_efikamx_spi_nor_partitions),
> +	.type		= "sst25vf032b",
> +};
> +
> +static struct spi_board_info mx51_efikamx_spi_board_info[] __initdata = {
> +	{
> +		.modalias = "m25p80",
> +		.max_speed_hz = 25000000,
> +		.bus_num = 0,
> +		.chip_select = 1,
> +		.platform_data = &mx51_efikamx_spi_flash_data,
> +		.irq = -1,
> +	},
> +};
> +
> +static int mx51_efikamx_spi_cs[] = {
> +	EFIKAMX_SPI_CS0,
> +	EFIKAMX_SPI_CS1,
> +};
> +
> +static const struct spi_imx_master mx51_efikamx_spi_pdata __initconst = {
> +	.chipselect     = mx51_efikamx_spi_cs,
> +	.num_chipselect = ARRAY_SIZE(mx51_efikamx_spi_cs),
> +};
> +
>  static void __init mxc_board_init(void)
>  {
>  	mxc_iomux_v3_setup_multiple_pads(mx51efikamx_pads,
> @@ -269,6 +323,10 @@
>  
>  	platform_device_register(&mx51_efikamx_leds_device);
>  	platform_device_register(&mx51_efikamx_powerkey_device);
> +
> +	spi_register_board_info(mx51_efikamx_spi_board_info,
> +		ARRAY_SIZE(mx51_efikamx_spi_board_info));
> +	imx51_add_ecspi(0, &mx51_efikamx_spi_pdata);
>  }
>  
>  static void __init mx51_efikamx_timer_init(void)
> Index: linux-2.6/arch/arm/mach-mx5/Kconfig
> ===================================================================
> --- linux-2.6.orig/arch/arm/mach-mx5/Kconfig	2010-10-16 14:21:24.000000000 +0200
> +++ linux-2.6/arch/arm/mach-mx5/Kconfig	2010-10-16 14:21:28.000000000 +0200
> @@ -81,6 +81,7 @@
>  	bool "Support MX51 Genesi Efika MX nettop"
>  	select IMX_HAVE_PLATFORM_IMX_UART
>  	select IMX_HAVE_PLATFORM_ESDHC
> +	select IMX_HAVE_PLATFORM_SPI_IMX
>  	help
>  	  Include support for Genesi Efika MX nettop. This includes specific
>  	  configurations for the board and its peripherals.
> 
> 

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 8/9] efikamx: add spi nor support
  2010-10-20 11:26   ` Amit Kucheria
@ 2010-10-20 12:01     ` Arnaud Patard (Rtp)
  2010-10-20 12:32       ` Amit Kucheria
  2010-10-20 17:36     ` Matt Sealey
  1 sibling, 1 reply; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-20 12:01 UTC (permalink / raw)
  To: linux-arm-kernel

Amit Kucheria <amit.kucheria@linaro.org> writes:
Hi,

> On 10 Oct 19, Arnaud Patard wrote:
>> On efikamx, uboot is stored on a nor spi flash. Add support for it
>> 
>> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
>> Index: linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c
>> ===================================================================
>> --- linux-2.6.orig/arch/arm/mach-mx5/board-mx51_efikamx.c	2010-10-16 14:21:24.000000000 +0200
>> +++ linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c	2010-10-16 15:34:12.000000000 +0200
>> @@ -24,6 +24,8 @@
>>  #include <linux/delay.h>
>>  #include <linux/io.h>
>>  #include <linux/fsl_devices.h>
>> +#include <linux/spi/flash.h>
>> +#include <linux/spi/spi.h>
>>  
>>  #include <mach/common.h>
>>  #include <mach/hardware.h>
>> @@ -52,6 +54,9 @@
>>  
>>  #define EFIKAMX_POWER_KEY	(1*32+31)
>>  
>> +#define EFIKAMX_SPI_CS0		(3*32+24)
>> +#define EFIKAMX_SPI_CS1		(3*32+25)
>
> It is just a style thing, but could you make this (3*32 + 24). Makes it
> easier on the eyes to read "4th gpio bank, 24th pin"

I've used X*32+Y without space in all patches. So, you prefer that I
change the other places too ?

>
>>  /* the pci ids pin have pull up. they're driven low according to board id */
>>  #define MX51_PAD_PCBID0	IOMUX_PAD(0x518, 0x130, 3, 0x0,   0, PAD_CTL_PUS_100K_UP)
>>  #define MX51_PAD_PCBID1	IOMUX_PAD(0x51C, 0x134, 3, 0x0,   0, PAD_CTL_PUS_100K_UP)
>> @@ -99,6 +104,14 @@
>>  
>>  	/* power key */
>>  	MX51_PAD_PWRKEY,
>> +
>> +	/* spi */
>> +	MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI,
>> +	MX51_PAD_CSPI1_MISO__ECSPI1_MISO,
>> +	MX51_PAD_CSPI1_SS0__GPIO_4_24,
>> +	MX51_PAD_CSPI1_SS1__GPIO_4_25,
>> +	MX51_PAD_CSPI1_RDY__ECSPI1_RDY,
>> +	MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK,
>>  };
>>  
>>  /* Serial ports */
>> @@ -252,6 +265,47 @@
>>  	},
>>  };
>>  
>> +static struct mtd_partition mx51_efikamx_spi_nor_partitions[] = {
>> +	{
>> +	 .name = "u-boot",
>
> "bootloader" ?

I don't really mind if it's "u-boot" or "bootloader". It's just a name
after all. Will change to bootloader and if someone disagree, he'll have
to send a new patch imho.

Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 3/9] imx51: enhance/fix iomux configuration
  2010-10-20 10:12     ` Arnaud Patard (Rtp)
@ 2010-10-20 12:10       ` Uwe Kleine-König
  0 siblings, 0 replies; 43+ messages in thread
From: Uwe Kleine-König @ 2010-10-20 12:10 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Oct 20, 2010 at 12:12:30PM +0200, Arnaud Patard wrote:
> Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de> writes:
> 
> Hi,
> 
> > On Tue, Oct 19, 2010 at 10:42:56PM +0200, Arnaud Patard wrote:
> >> - ALT0 is used to set GPIO mode of GPIO_1_{2,3,4,5,6,7,8,9} but it's ALT1
> >> for GPIO_1_{0,1}.
> >> - add definition to configure pads as ESDHC{1,2} WP and CD
> >> 
> >> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
> >> Index: linux-2.6/arch/arm/plat-mxc/include/mach/iomux-mx51.h
> >> ===================================================================
> >> --- linux-2.6.orig/arch/arm/plat-mxc/include/mach/iomux-mx51.h	2010-10-16 22:22:06.000000000 +0200
> >> +++ linux-2.6/arch/arm/plat-mxc/include/mach/iomux-mx51.h	2010-10-16 22:23:22.000000000 +0200
> >> @@ -366,20 +366,24 @@
> >>  							MX51_SDHCI_PAD_CTRL)
> >>  #define MX51_PAD_SD2_DATA3__SD2_DATA3		IOMUX_PAD(0x7D0, 0x3C8, IOMUX_CONFIG_SION, 0x0, 0, \
> >>  							MX51_SDHCI_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_0__ESDHC1_CD		IOMUX_PAD(0x7B4, 0x3AC, 0, 0x0,   0, MX51_I2C_PAD_CTRL)
> > Is MX51_I2C_PAD_CTRL correct?  ditto for MX51_PAD_GPIO_1_1__ESDHC1_WP.
> 
> I was about to add something like MX51_ESDHC_PAD_CTRL but it turns out
> that according to the original code I have, it would be the same thing
> as I2C_PAD_CTRL.
I'd prefer to have a seperate definition for that.  Using
MX51_I2C_PAD_CTRL looks wrong even if it's correct.
 
> >
> >>  #define MX51_PAD_GPIO_1_0__GPIO_1_0		IOMUX_PAD(0x7B4, 0x3AC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_1__ESDHC1_WP		IOMUX_PAD(0x7B8, 0x3B0, 0, 0x0,   0, MX51_I2C_PAD_CTRL)
> >>  #define MX51_PAD_GPIO_1_1__GPIO_1_1		IOMUX_PAD(0x7B8, 0x3B0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> -#define MX51_PAD_GPIO_1_2__GPIO_1_2		IOMUX_PAD(0x7D4, 0x3CC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_2__GPIO_1_2		IOMUX_PAD(0x7D4, 0x3CC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >>  #define MX51_PAD_GPIO_1_2__I2C2_SCL		IOMUX_PAD(0x7D4, 0x3CC, (2 | IOMUX_CONFIG_SION), \
> >>  							0x9b8,   3, MX51_I2C_PAD_CTRL)
> >> -#define MX51_PAD_GPIO_1_3__GPIO_1_3		IOMUX_PAD(0x7D8, 0x3D0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_3__GPIO_1_3		IOMUX_PAD(0x7D8, 0x3D0, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >>  #define MX51_PAD_GPIO_1_3__I2C2_SDA		IOMUX_PAD(0x7D8, 0x3D0, (2 | IOMUX_CONFIG_SION), \
> >>  							0x9bc,   3, MX51_I2C_PAD_CTRL)
> >>  #define MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ	IOMUX_PAD(0x7FC, 0x3D4, 0, 0x0,   0, NO_PAD_CTRL)
> >> -#define MX51_PAD_GPIO_1_4__GPIO_1_4		IOMUX_PAD(0x804, 0x3D8, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> -#define MX51_PAD_GPIO_1_5__GPIO_1_5		IOMUX_PAD(0x808, 0x3DC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> -#define MX51_PAD_GPIO_1_6__GPIO_1_6		IOMUX_PAD(0x80C, 0x3E0, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> -#define MX51_PAD_GPIO_1_7__GPIO_1_7		IOMUX_PAD(0x810, 0x3E4, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> -#define MX51_PAD_GPIO_1_8__GPIO_1_8		IOMUX_PAD(0x814, 0x3E8, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> -#define MX51_PAD_GPIO_1_9__GPIO_1_9		IOMUX_PAD(0x818, 0x3EC, 1, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_4__GPIO_1_4		IOMUX_PAD(0x804, 0x3D8, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_5__GPIO_1_5		IOMUX_PAD(0x808, 0x3DC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_6__GPIO_1_6		IOMUX_PAD(0x80C, 0x3E0, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_7__GPIO_1_7		IOMUX_PAD(0x810, 0x3E4, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_7__ESDHC2_WP		IOMUX_PAD(0x810, 0x3E4, 6, 0x0,   0, MX51_I2C_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_8__GPIO_1_8		IOMUX_PAD(0x814, 0x3E8, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_8__ESDHC2_CD		IOMUX_PAD(0x814, 0x3E8, 6, 0x0,   0, MX51_I2C_PAD_CTRL)
> >> +#define MX51_PAD_GPIO_1_9__GPIO_1_9		IOMUX_PAD(0x818, 0x3EC, 0, 0x0,   0, MX51_GPIO_PAD_CTRL)
> > Maybe make this in two patches?  One fix and one to add new definitions?
> 
> ok. makes sense. will split the patch.
> 
> Thanks,
> Arnaud
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
Pengutronix e.K.                           | Uwe Kleine-K?nig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 8/9] efikamx: add spi nor support
  2010-10-20 12:01     ` Arnaud Patard (Rtp)
@ 2010-10-20 12:32       ` Amit Kucheria
  0 siblings, 0 replies; 43+ messages in thread
From: Amit Kucheria @ 2010-10-20 12:32 UTC (permalink / raw)
  To: linux-arm-kernel

On 10 Oct 20, Arnaud Patard wrote:
> Amit Kucheria <amit.kucheria@linaro.org> writes:
> Hi,
> 
> > On 10 Oct 19, Arnaud Patard wrote:
> >> On efikamx, uboot is stored on a nor spi flash. Add support for it
> >> 
> >> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
> >> Index: linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c
> >> ===================================================================
> >> --- linux-2.6.orig/arch/arm/mach-mx5/board-mx51_efikamx.c	2010-10-16 14:21:24.000000000 +0200
> >> +++ linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c	2010-10-16 15:34:12.000000000 +0200
> >> @@ -24,6 +24,8 @@
> >>  #include <linux/delay.h>
> >>  #include <linux/io.h>
> >>  #include <linux/fsl_devices.h>
> >> +#include <linux/spi/flash.h>
> >> +#include <linux/spi/spi.h>
> >>  
> >>  #include <mach/common.h>
> >>  #include <mach/hardware.h>
> >> @@ -52,6 +54,9 @@
> >>  
> >>  #define EFIKAMX_POWER_KEY	(1*32+31)
> >>  
> >> +#define EFIKAMX_SPI_CS0		(3*32+24)
> >> +#define EFIKAMX_SPI_CS1		(3*32+25)
> >
> > It is just a style thing, but could you make this (3*32 + 24). Makes it
> > easier on the eyes to read "4th gpio bank, 24th pin"
> 
> I've used X*32+Y without space in all patches. So, you prefer that I
> change the other places too ?

If you don't mind, yes.

> >
> >>  /* the pci ids pin have pull up. they're driven low according to board id */
> >>  #define MX51_PAD_PCBID0	IOMUX_PAD(0x518, 0x130, 3, 0x0,   0, PAD_CTL_PUS_100K_UP)
> >>  #define MX51_PAD_PCBID1	IOMUX_PAD(0x51C, 0x134, 3, 0x0,   0, PAD_CTL_PUS_100K_UP)
> >> @@ -99,6 +104,14 @@
> >>  
> >>  	/* power key */
> >>  	MX51_PAD_PWRKEY,
> >> +
> >> +	/* spi */
> >> +	MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI,
> >> +	MX51_PAD_CSPI1_MISO__ECSPI1_MISO,
> >> +	MX51_PAD_CSPI1_SS0__GPIO_4_24,
> >> +	MX51_PAD_CSPI1_SS1__GPIO_4_25,
> >> +	MX51_PAD_CSPI1_RDY__ECSPI1_RDY,
> >> +	MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK,
> >>  };
> >>  
> >>  /* Serial ports */
> >> @@ -252,6 +265,47 @@
> >>  	},
> >>  };
> >>  
> >> +static struct mtd_partition mx51_efikamx_spi_nor_partitions[] = {
> >> +	{
> >> +	 .name = "u-boot",
> >
> > "bootloader" ?
> 
> I don't really mind if it's "u-boot" or "bootloader". It's just a name
> after all. Will change to bootloader and if someone disagree, he'll have
> to send a new patch imho.

bootloader is a generic term, IMO.

/Amit

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-20  9:16       ` Uwe Kleine-König
@ 2010-10-20 17:26         ` Matt Sealey
  2010-10-20 19:26           ` Loïc Minier
  0 siblings, 1 reply; 43+ messages in thread
From: Matt Sealey @ 2010-10-20 17:26 UTC (permalink / raw)
  To: linux-arm-kernel

Uwe, there is no way to tell if the pads have settled, it is entirely
a hardware problem, just like when GPIOs are at random input states if
they are not connected to anything: in this case, first of all the
IOMUX pull downs and then the GPIO change to input takes longer than
you can safely do it and then immediately read the pins or board
version 1.1 and below will not ID correctly.

-- 
Matt Sealey <matt@genesi-usa.com>
Product Development Analyst, Genesi USA, Inc.



2010/10/20 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> Hiho,
>
> On Tue, Oct 19, 2010 at 04:30:25PM -0500, Matt Sealey wrote:
>> On Tue, Oct 19, 2010 at 4:15 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
>> > On Tue, Oct 19, 2010 at 10:42:54PM +0200, Arnaud Patard wrote:
>> >> read board id value from the GPIO3_16/17/11
>> >>
>> >>
>> >> +/* ? PCBID2 ?PCBID1 PCBID0 ?STATE
>> >> + ? ? 1 ? ? ? 1 ? ? ?1 ? ?ER1:rev1.1
>> >> + ? ? 1 ? ? ? 1 ? ? ?0 ? ?ER2:rev1.2
>> >> + ? ? 1 ? ? ? 0 ? ? ?1 ? ?ER3:rev1.3
>> >> + ? ? 1 ? ? ? 0 ? ? ?0 ? ?ER4:rev1.4
>> >> +*/
>> >> +static void __init mx51_efikamx_board_id(void)
>> >> +{
>> >> + ? ? int id;
>> >> +
>> >> + ? ? /* things are taking time to settle */
>> >> + ? ? msleep(500);
>> >
>> > Is it really necessary to delay the boot process such a long time?
>>
>> Yes. On older boards the PCBID pins are pulled high by IOMUX settings
>> (a pulldown on the board on newer revisions will keep it down). IOMUX
>> and GPIO stuff takes a little while to settle in, so if you do it
>> immediately, it will return some freakish values based on random GPIO
>> setup (it may be high, low, or none of the above at any point before
>> the pad setting kicks in).
> If the bootloader might configure the pins correctly, maybe something
> like:
>
> ? ? ? ?if (pins_are_not_yet_configured_correctly()) {
> ? ? ? ? ? ? ? ?do_configure_them();
> ? ? ? ? ? ? ? ?msleep(500);
> ? ? ? ?}
>
> ?
>
> Best regards
> Uwe
>
>
> --
> Pengutronix e.K. ? ? ? ? ? ? ? ? ? ? ? ? ? | Uwe Kleine-K?nig ? ? ? ? ? ?|
> Industrial Linux Solutions ? ? ? ? ? ? ? ? | http://www.pengutronix.de/ ?|
>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 8/9] efikamx: add spi nor support
  2010-10-20 11:26   ` Amit Kucheria
  2010-10-20 12:01     ` Arnaud Patard (Rtp)
@ 2010-10-20 17:36     ` Matt Sealey
  2010-10-20 17:55       ` Arnaud Patard (Rtp)
  1 sibling, 1 reply; 43+ messages in thread
From: Matt Sealey @ 2010-10-20 17:36 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Oct 20, 2010 at 6:26 AM, Amit Kucheria <amit.kucheria@linaro.org> wrote:
> On 10 Oct 19, Arnaud Patard wrote:
>> On efikamx, uboot is stored on a nor spi flash. Add support for it
>>
>> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
>> Index: linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c
>> ===================================================================
>> --- linux-2.6.orig/arch/arm/mach-mx5/board-mx51_efikamx.c ? ? 2010-10-16 14:21:24.000000000 +0200
>> +++ linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c ?2010-10-16 15:34:12.000000000 +0200
>> @@ -24,6 +24,8 @@
>> ?#include <linux/delay.h>
>> ?#include <linux/io.h>
>> ?#include <linux/fsl_devices.h>
>> +#include <linux/spi/flash.h>
>> +#include <linux/spi/spi.h>
>>
>> ?#include <mach/common.h>
>> ?#include <mach/hardware.h>
>> @@ -52,6 +54,9 @@
>>
>> ?#define EFIKAMX_POWER_KEY ? ?(1*32+31)
>>
>> +#define EFIKAMX_SPI_CS0 ? ? ? ? ? ? ?(3*32+24)
>> +#define EFIKAMX_SPI_CS1 ? ? ? ? ? ? ?(3*32+25)
>
> It is just a style thing, but could you make this (3*32 + 24). Makes it
> easier on the eyes to read "4th gpio bank, 24th pin"

Better yet:

#define GPIO_BANK(n) ((n-1)*32)
..
#define EFIKAMX_SPI_CS0 (GPIO_BANK(4) + 24).

It'll get compiled to a constant and is more readable, right? :D

>> ?/* the pci ids pin have pull up. they're driven low according to board id */
>> ?#define MX51_PAD_PCBID0 ? ? ?IOMUX_PAD(0x518, 0x130, 3, 0x0, ? 0, PAD_CTL_PUS_100K_UP)
>> ?#define MX51_PAD_PCBID1 ? ? ?IOMUX_PAD(0x51C, 0x134, 3, 0x0, ? 0, PAD_CTL_PUS_100K_UP)
>> @@ -99,6 +104,14 @@
>>
>> ? ? ? /* power key */
>> ? ? ? MX51_PAD_PWRKEY,
>> +
>> + ? ? /* spi */
>> + ? ? MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI,
>> + ? ? MX51_PAD_CSPI1_MISO__ECSPI1_MISO,
>> + ? ? MX51_PAD_CSPI1_SS0__GPIO_4_24,
>> + ? ? MX51_PAD_CSPI1_SS1__GPIO_4_25,
>> + ? ? MX51_PAD_CSPI1_RDY__ECSPI1_RDY,
>> + ? ? MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK,
>> ?};
>>
>> ?/* Serial ports */
>> @@ -252,6 +265,47 @@
>> ? ? ? },
>> ?};
>>
>> +static struct mtd_partition mx51_efikamx_spi_nor_partitions[] = {
>> + ? ? {
>> + ? ? ?.name = "u-boot",
>
> "bootloader" ?

"firmware" :)

-- 
Matt

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 8/9] efikamx: add spi nor support
  2010-10-20 17:36     ` Matt Sealey
@ 2010-10-20 17:55       ` Arnaud Patard (Rtp)
  2010-10-20 20:51         ` Matt Sealey
  0 siblings, 1 reply; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-20 17:55 UTC (permalink / raw)
  To: linux-arm-kernel

Matt Sealey <matt@genesi-usa.com> writes:

> On Wed, Oct 20, 2010 at 6:26 AM, Amit Kucheria <amit.kucheria@linaro.org> wrote:
>> On 10 Oct 19, Arnaud Patard wrote:
>>> On efikamx, uboot is stored on a nor spi flash. Add support for it
>>>
>>> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
>>> Index: linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c
>>> ===================================================================
>>> --- linux-2.6.orig/arch/arm/mach-mx5/board-mx51_efikamx.c ? ? 2010-10-16 14:21:24.000000000 +0200
>>> +++ linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c ?2010-10-16 15:34:12.000000000 +0200
>>> @@ -24,6 +24,8 @@
>>> ?#include <linux/delay.h>
>>> ?#include <linux/io.h>
>>> ?#include <linux/fsl_devices.h>
>>> +#include <linux/spi/flash.h>
>>> +#include <linux/spi/spi.h>
>>>
>>> ?#include <mach/common.h>
>>> ?#include <mach/hardware.h>
>>> @@ -52,6 +54,9 @@
>>>
>>> ?#define EFIKAMX_POWER_KEY ? ?(1*32+31)
>>>
>>> +#define EFIKAMX_SPI_CS0 ? ? ? ? ? ? ?(3*32+24)
>>> +#define EFIKAMX_SPI_CS1 ? ? ? ? ? ? ?(3*32+25)
>>
>> It is just a style thing, but could you make this (3*32 + 24). Makes it
>> easier on the eyes to read "4th gpio bank, 24th pin"
>
> Better yet:
>
> #define GPIO_BANK(n) ((n-1)*32)
> ..
> #define EFIKAMX_SPI_CS0 (GPIO_BANK(4) + 24).
>
> It'll get compiled to a constant and is more readable, right? :D

you can even imagine something like
#define MX51_GPIO(x,y)         ((x-1) + y)

Anyway, imho it should be a different patch because if we're going this
way all imx51 machines files would deserve the same change.

>
>>> ?/* the pci ids pin have pull up. they're driven low according to board id */
>>> ?#define MX51_PAD_PCBID0 ? ? ?IOMUX_PAD(0x518, 0x130, 3, 0x0, ? 0, PAD_CTL_PUS_100K_UP)
>>> ?#define MX51_PAD_PCBID1 ? ? ?IOMUX_PAD(0x51C, 0x134, 3, 0x0, ? 0, PAD_CTL_PUS_100K_UP)
>>> @@ -99,6 +104,14 @@
>>>
>>> ? ? ? /* power key */
>>> ? ? ? MX51_PAD_PWRKEY,
>>> +
>>> + ? ? /* spi */
>>> + ? ? MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI,
>>> + ? ? MX51_PAD_CSPI1_MISO__ECSPI1_MISO,
>>> + ? ? MX51_PAD_CSPI1_SS0__GPIO_4_24,
>>> + ? ? MX51_PAD_CSPI1_SS1__GPIO_4_25,
>>> + ? ? MX51_PAD_CSPI1_RDY__ECSPI1_RDY,
>>> + ? ? MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK,
>>> ?};
>>>
>>> ?/* Serial ports */
>>> @@ -252,6 +265,47 @@
>>> ? ? ? },
>>> ?};
>>>
>>> +static struct mtd_partition mx51_efikamx_spi_nor_partitions[] = {
>>> + ? ? {
>>> + ? ? ?.name = "u-boot",
>>
>> "bootloader" ?
>
> "firmware" :)

please, reach an agreement with Amit. I don't want to be blocked by such
a thing :)

Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-20 17:26         ` Matt Sealey
@ 2010-10-20 19:26           ` Loïc Minier
  2010-10-20 19:53             ` Arnaud Patard (Rtp)
  2010-10-20 20:53             ` Matt Sealey
  0 siblings, 2 replies; 43+ messages in thread
From: Loïc Minier @ 2010-10-20 19:26 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Oct 20, 2010, Matt Sealey wrote:
> Uwe, there is no way to tell if the pads have settled, it is entirely
> a hardware problem, just like when GPIOs are at random input states if
> they are not connected to anything: in this case, first of all the
> IOMUX pull downs and then the GPIO change to input takes longer than
> you can safely do it and then immediately read the pins or board
> version 1.1 and below will not ID correctly.

 Is there a strong need to distinguish between all the PCB ids?  You
 could use the TO2 versus TO3 information to decide between 1.1 and 1.3
 PCBs and stop supporting the other (rare) boards?

-- 
Lo?c Minier

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-20 19:26           ` Loïc Minier
@ 2010-10-20 19:53             ` Arnaud Patard (Rtp)
  2010-10-21  1:32               ` Matt Sealey
  2010-10-20 20:53             ` Matt Sealey
  1 sibling, 1 reply; 43+ messages in thread
From: Arnaud Patard (Rtp) @ 2010-10-20 19:53 UTC (permalink / raw)
  To: linux-arm-kernel

Lo?c Minier <loic.minier@linaro.org> writes:

> On Wed, Oct 20, 2010, Matt Sealey wrote:
>> Uwe, there is no way to tell if the pads have settled, it is entirely
>> a hardware problem, just like when GPIOs are at random input states if
>> they are not connected to anything: in this case, first of all the
>> IOMUX pull downs and then the GPIO change to input takes longer than
>> you can safely do it and then immediately read the pins or board
>> version 1.1 and below will not ID correctly.
>
>  Is there a strong need to distinguish between all the PCB ids?  You
>  could use the TO2 versus TO3 information to decide between 1.1 and 1.3
>  PCBs and stop supporting the other (rare) boards?

The TO2 and TO3 are very similar but there are important differencies :
- different reset pin
- mmc slot on mmc0 (esdhci1) vs mmc1 (esdhci2)

So you do need to know if you're either on TO2 or TO3 and you can't
guess this info without looking at the board id pins.

Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 8/9] efikamx: add spi nor support
  2010-10-20 17:55       ` Arnaud Patard (Rtp)
@ 2010-10-20 20:51         ` Matt Sealey
  0 siblings, 0 replies; 43+ messages in thread
From: Matt Sealey @ 2010-10-20 20:51 UTC (permalink / raw)
  To: linux-arm-kernel

I like "u-boot" better as it's descriptive. If we flash a different firmware it might be redboot or aura or barebox or openbios and the partitioning should reflect that... Hopefully based on a device tree or residual data from the firmware itself. For now, "u-boot" is okay in my book

Matt Sealey
Product Development Analyst
Genesi USA, Inc.

On Oct 20, 2010, at 12:55 PM, Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org> wrote:

> Matt Sealey <matt@genesi-usa.com> writes:
> 
>> On Wed, Oct 20, 2010 at 6:26 AM, Amit Kucheria <amit.kucheria@linaro.org> wrote:
>>> On 10 Oct 19, Arnaud Patard wrote:
>>>> On efikamx, uboot is stored on a nor spi flash. Add support for it
>>>> 
>>>> Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
>>>> Index: linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c
>>>> ===================================================================
>>>> --- linux-2.6.orig/arch/arm/mach-mx5/board-mx51_efikamx.c     2010-10-16 14:21:24.000000000 +0200
>>>> +++ linux-2.6/arch/arm/mach-mx5/board-mx51_efikamx.c  2010-10-16 15:34:12.000000000 +0200
>>>> @@ -24,6 +24,8 @@
>>>>  #include <linux/delay.h>
>>>>  #include <linux/io.h>
>>>>  #include <linux/fsl_devices.h>
>>>> +#include <linux/spi/flash.h>
>>>> +#include <linux/spi/spi.h>
>>>> 
>>>>  #include <mach/common.h>
>>>>  #include <mach/hardware.h>
>>>> @@ -52,6 +54,9 @@
>>>> 
>>>>  #define EFIKAMX_POWER_KEY    (1*32+31)
>>>> 
>>>> +#define EFIKAMX_SPI_CS0              (3*32+24)
>>>> +#define EFIKAMX_SPI_CS1              (3*32+25)
>>> 
>>> It is just a style thing, but could you make this (3*32 + 24). Makes it
>>> easier on the eyes to read "4th gpio bank, 24th pin"
>> 
>> Better yet:
>> 
>> #define GPIO_BANK(n) ((n-1)*32)
>> ..
>> #define EFIKAMX_SPI_CS0 (GPIO_BANK(4) + 24).
>> 
>> It'll get compiled to a constant and is more readable, right? :D
> 
> you can even imagine something like
> #define MX51_GPIO(x,y)         ((x-1) + y)
> 
> Anyway, imho it should be a different patch because if we're going this
> way all imx51 machines files would deserve the same change.
> 
>> 
>>>>  /* the pci ids pin have pull up. they're driven low according to board id */
>>>>  #define MX51_PAD_PCBID0      IOMUX_PAD(0x518, 0x130, 3, 0x0,   0, PAD_CTL_PUS_100K_UP)
>>>>  #define MX51_PAD_PCBID1      IOMUX_PAD(0x51C, 0x134, 3, 0x0,   0, PAD_CTL_PUS_100K_UP)
>>>> @@ -99,6 +104,14 @@
>>>> 
>>>>       /* power key */
>>>>       MX51_PAD_PWRKEY,
>>>> +
>>>> +     /* spi */
>>>> +     MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI,
>>>> +     MX51_PAD_CSPI1_MISO__ECSPI1_MISO,
>>>> +     MX51_PAD_CSPI1_SS0__GPIO_4_24,
>>>> +     MX51_PAD_CSPI1_SS1__GPIO_4_25,
>>>> +     MX51_PAD_CSPI1_RDY__ECSPI1_RDY,
>>>> +     MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK,
>>>>  };
>>>> 
>>>>  /* Serial ports */
>>>> @@ -252,6 +265,47 @@
>>>>       },
>>>>  };
>>>> 
>>>> +static struct mtd_partition mx51_efikamx_spi_nor_partitions[] = {
>>>> +     {
>>>> +      .name = "u-boot",
>>> 
>>> "bootloader" ?
>> 
>> "firmware" :)
> 
> please, reach an agreement with Amit. I don't want to be blocked by such
> a thing :)
> 
> Arnaud

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-20 19:26           ` Loïc Minier
  2010-10-20 19:53             ` Arnaud Patard (Rtp)
@ 2010-10-20 20:53             ` Matt Sealey
  1 sibling, 0 replies; 43+ messages in thread
From: Matt Sealey @ 2010-10-20 20:53 UTC (permalink / raw)
  To: linux-arm-kernel

No like I said several boards will work with the code as the pcb design has changed. I am sure the few people with 1.0 boards would like to run 2.6.36 too.

It's just about decoupling the setting of the pins and reporting the board id. Set the board id pins up first. Then do some other stuff. Then go back before you need it, and set system_rev up.

Matt Sealey
Product Development Analyst
Genesi USA, Inc.

On Oct 20, 2010, at 2:26 PM, Lo?c Minier <loic.minier@linaro.org> wrote:

> On Wed, Oct 20, 2010, Matt Sealey wrote:
>> Uwe, there is no way to tell if the pads have settled, it is entirely
>> a hardware problem, just like when GPIOs are at random input states if
>> they are not connected to anything: in this case, first of all the
>> IOMUX pull downs and then the GPIO change to input takes longer than
>> you can safely do it and then immediately read the pins or board
>> version 1.1 and below will not ID correctly.
> 
> Is there a strong need to distinguish between all the PCB ids?  You
> could use the TO2 versus TO3 information to decide between 1.1 and 1.3
> PCBs and stop supporting the other (rare) boards?
> 
> -- 
> Lo?c Minier

^ permalink raw reply	[flat|nested] 43+ messages in thread

* [patch 1/9] efikamx: read board id
  2010-10-20 19:53             ` Arnaud Patard (Rtp)
@ 2010-10-21  1:32               ` Matt Sealey
  0 siblings, 0 replies; 43+ messages in thread
From: Matt Sealey @ 2010-10-21  1:32 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Oct 20, 2010 at 2:53 PM, Arnaud Patard
<arnaud.patard@rtp-net.org> wrote:
>
> The TO2 and TO3 are very similar but there are important differencies :
> - different reset pin
> - mmc slot on mmc0 (esdhci1) vs mmc1 (esdhci2)

Actually the 1.1 boards have two SD card slots (one is inside under
the lid, MicroSD) and the differentiation is merely so that the front
slot always gets the LED activity (it's more useful to users to know
that the SD card they inserted is doing stuff than the magic one
behind 9 screws that you need to dismantle the case to get to..)

> So you do need to know if you're either on TO2 or TO3 and you can't
> guess this info without looking at the board id pins.

Ideally the board id pins would be implemented on all revisions of the
board, but since they are not there on 1.0 and 1.1 (and the IOMUX
takes time to settle to pretend they are there with pullups/pulldowns)
this is the hard cause of the problem. However, reading board id pins
right after IOMUX is going to cause random results on any board.

Check the Genesi git tree (arch/arm/mach-mx5/mx51_efikamx_io.c) and
you'll see how we split this up to basically set up the pins, do other
things, THEN find out the board id. The similarities mean you can go
and do a bunch of other stuff while you are waiting for the IOMUX to
settle, and by that time it will be done. While that time is not
exactly deterministic, it is certainly not 500ms, we used to have a
delay of 100ms just to be very very sure, and then just split it out
and it works just as well.

-- 
Matt Sealey <matt@genesi-usa.com>
Product Development Analyst, Genesi USA, Inc.

^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2010-10-21  1:32 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-19 20:42 [patch 0/9] efikamx support improvements Arnaud Patard (Rtp)
2010-10-19 20:42 ` [patch 1/9] efikamx: read board id Arnaud Patard (Rtp)
2010-10-19 21:15   ` Sascha Hauer
2010-10-19 21:30     ` Matt Sealey
2010-10-20  7:54       ` Amit Kucheria
2010-10-20  8:12         ` Arnaud Patard (Rtp)
2010-10-20  9:03           ` Amit Kucheria
2010-10-20  8:24       ` Sascha Hauer
2010-10-20  8:35         ` Arnaud Patard (Rtp)
2010-10-20  8:59         ` Matt Sealey
2010-10-20  9:16       ` Uwe Kleine-König
2010-10-20 17:26         ` Matt Sealey
2010-10-20 19:26           ` Loïc Minier
2010-10-20 19:53             ` Arnaud Patard (Rtp)
2010-10-21  1:32               ` Matt Sealey
2010-10-20 20:53             ` Matt Sealey
2010-10-19 20:42 ` [patch 2/9] efikamx: add mmc support Arnaud Patard (Rtp)
2010-10-19 20:42 ` [patch 3/9] imx51: enhance/fix iomux configuration Arnaud Patard (Rtp)
2010-10-19 21:04   ` Sascha Hauer
2010-10-20  8:14     ` Arnaud Patard (Rtp)
2010-10-20  9:14   ` Eric Bénard
2010-10-20  9:26     ` Arnaud Patard (Rtp)
2010-10-20  9:18   ` Eric Bénard
2010-10-20  9:29     ` Arnaud Patard (Rtp)
2010-10-20  9:41     ` Amit Kucheria
2010-10-20 10:00   ` Uwe Kleine-König
2010-10-20 10:12     ` Arnaud Patard (Rtp)
2010-10-20 12:10       ` Uwe Kleine-König
2010-10-19 20:42 ` [patch 4/9] imx51: add gpio mode for csi1 {h,v}sync Arnaud Patard (Rtp)
2010-10-19 20:42 ` [patch 5/9] efikamx: add leds support Arnaud Patard (Rtp)
2010-10-20 11:15   ` Amit Kucheria
2010-10-19 20:42 ` [patch 6/9] efikamx: add support for power key Arnaud Patard (Rtp)
2010-10-19 20:43 ` [patch 7/9] imx51: fix gpio_4_24 and gpio_4_25 pad configuration Arnaud Patard (Rtp)
2010-10-19 20:43 ` [patch 8/9] efikamx: add spi nor support Arnaud Patard (Rtp)
2010-10-20 11:26   ` Amit Kucheria
2010-10-20 12:01     ` Arnaud Patard (Rtp)
2010-10-20 12:32       ` Amit Kucheria
2010-10-20 17:36     ` Matt Sealey
2010-10-20 17:55       ` Arnaud Patard (Rtp)
2010-10-20 20:51         ` Matt Sealey
2010-10-19 20:43 ` [patch 9/9] efikamx: add reset Arnaud Patard (Rtp)
2010-10-19 23:51   ` Fabio Estevam
2010-10-20  8:13     ` Arnaud Patard (Rtp)

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).