* [PATCH 0/2] mmc: zboot helpers @ 2011-03-24 6:54 Simon Horman 2011-03-24 6:54 ` [PATCH 1/2] mmc, ARM: Rename SuperH Mobile ARM " Simon Horman 2011-03-24 6:54 ` [PATCH 2/2] mmc: Add MMC_PROGRESS_* Simon Horman 0 siblings, 2 replies; 8+ messages in thread From: Simon Horman @ 2011-03-24 6:54 UTC (permalink / raw) To: linux-arm-kernel Hi Paul, please consider merging the following two patches. They are both pre-requisites for "mmc, ARM: Add zboot from eSD support for SuperH Mobile ARM" which I plan to submit to Russell King. These patches were originally submitted in a for patch series however they do not depend on any of the other patches in the series so I am posting them independently. These patches apply against Linus's current tree and I am not aware of any particular prerequisites for them other than that the 2nd patch depends on the 1st one. ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] mmc, ARM: Rename SuperH Mobile ARM zboot helpers 2011-03-24 6:54 [PATCH 0/2] mmc: zboot helpers Simon Horman @ 2011-03-24 6:54 ` Simon Horman 2011-03-24 9:10 ` [PATCH] mmc, AT91: fix init fequency problem Prchal Jiří [not found] ` <4D8B2068.60402@aksignal.cz> 2011-03-24 6:54 ` [PATCH 2/2] mmc: Add MMC_PROGRESS_* Simon Horman 1 sibling, 2 replies; 8+ messages in thread From: Simon Horman @ 2011-03-24 6:54 UTC (permalink / raw) To: linux-arm-kernel These headers and helpers will also be used for SDHI boot so the mmcif name will start to make a lot less sense. Signed-off-by: Simon Horman <horms@verge.net.au> --- arch/arm/boot/compressed/mmcif-sh7372.c | 12 +++--- arch/arm/mach-shmobile/include/mach/mmc-ap4eb.h | 29 +++++++++++++++ arch/arm/mach-shmobile/include/mach/mmc-mackerel.h | 38 +++++++++++++++++++ arch/arm/mach-shmobile/include/mach/mmc.h | 18 +++++++++ arch/arm/mach-shmobile/include/mach/mmcif-ap4eb.h | 29 --------------- .../mach-shmobile/include/mach/mmcif-mackerel.h | 39 -------------------- arch/arm/mach-shmobile/include/mach/mmcif.h | 18 --------- 7 files changed, 91 insertions(+), 92 deletions(-) create mode 100644 arch/arm/mach-shmobile/include/mach/mmc-ap4eb.h create mode 100644 arch/arm/mach-shmobile/include/mach/mmc-mackerel.h create mode 100644 arch/arm/mach-shmobile/include/mach/mmc.h delete mode 100644 arch/arm/mach-shmobile/include/mach/mmcif-ap4eb.h delete mode 100644 arch/arm/mach-shmobile/include/mach/mmcif-mackerel.h delete mode 100644 arch/arm/mach-shmobile/include/mach/mmcif.h diff --git a/arch/arm/boot/compressed/mmcif-sh7372.c b/arch/arm/boot/compressed/mmcif-sh7372.c index e6180af..28bcf3c 100644 --- a/arch/arm/boot/compressed/mmcif-sh7372.c +++ b/arch/arm/boot/compressed/mmcif-sh7372.c @@ -10,7 +10,7 @@ */ #include <linux/mmc/sh_mmcif.h> -#include <mach/mmcif.h> +#include <mach/mmc.h> #define MMCIF_BASE (void __iomem *)0xe6bd0000 @@ -41,8 +41,8 @@ */ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) { - mmcif_init_progress(); - mmcif_update_progress(MMCIF_PROGRESS_ENTER); + mmc_init_progress(); + mmc_update_progress(MMCIF_PROGRESS_ENTER); /* Initialise MMC * registers: PORT84CR-PORT92CR @@ -68,12 +68,12 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) /* Enable clock to MMC hardware block */ __raw_writel(__raw_readl(SMSTPCR3) & ~(1 << 12), SMSTPCR3); - mmcif_update_progress(MMCIF_PROGRESS_INIT); + mmc_update_progress(MMCIF_PROGRESS_INIT); /* setup MMCIF hardware */ sh_mmcif_boot_init(MMCIF_BASE); - mmcif_update_progress(MMCIF_PROGRESS_LOAD); + mmc_update_progress(MMCIF_PROGRESS_LOAD); /* load kernel via MMCIF interface */ sh_mmcif_boot_do_read(MMCIF_BASE, 2, /* Kernel is@block 2 */ @@ -83,5 +83,5 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) /* Disable clock to MMC hardware block */ __raw_writel(__raw_readl(SMSTPCR3) & (1 << 12), SMSTPCR3); - mmcif_update_progress(MMCIF_PROGRESS_DONE); + mmc_update_progress(MMCIF_PROGRESS_DONE); } diff --git a/arch/arm/mach-shmobile/include/mach/mmc-ap4eb.h b/arch/arm/mach-shmobile/include/mach/mmc-ap4eb.h new file mode 100644 index 0000000..db59fdb --- /dev/null +++ b/arch/arm/mach-shmobile/include/mach/mmc-ap4eb.h @@ -0,0 +1,29 @@ +#ifndef MMC_AP4EB_H +#define MMC_AP4EB_H + +#define PORT185CR (void __iomem *)0xe60520b9 +#define PORT186CR (void __iomem *)0xe60520ba +#define PORT187CR (void __iomem *)0xe60520bb +#define PORT188CR (void __iomem *)0xe60520bc + +#define PORTR191_160DR (void __iomem *)0xe6056014 + +static inline void mmc_init_progress(void) +{ + /* Initialise LEDS1-4 + * registers: PORT185CR-PORT188CR (LED1-LED4 Control) + * value: 0x10 - enable output + */ + __raw_writeb(0x10, PORT185CR); + __raw_writeb(0x10, PORT186CR); + __raw_writeb(0x10, PORT187CR); + __raw_writeb(0x10, PORT188CR); +} + +static inline void mmc_update_progress(int n) +{ + __raw_writel((__raw_readl(PORTR191_160DR) & ~(0xf << 25)) | + (1 << (25 + n)), PORTR191_160DR); +} + +#endif /* MMC_AP4EB_H */ diff --git a/arch/arm/mach-shmobile/include/mach/mmc-mackerel.h b/arch/arm/mach-shmobile/include/mach/mmc-mackerel.h new file mode 100644 index 0000000..15d3a9e --- /dev/null +++ b/arch/arm/mach-shmobile/include/mach/mmc-mackerel.h @@ -0,0 +1,38 @@ +#ifndef MMC_MACKEREL_H +#define MMC_MACKEREL_H + +#define PORT0CR (void __iomem *)0xe6051000 +#define PORT1CR (void __iomem *)0xe6051001 +#define PORT2CR (void __iomem *)0xe6051002 +#define PORT159CR (void __iomem *)0xe605009f + +#define PORTR031_000DR (void __iomem *)0xe6055000 +#define PORTL159_128DR (void __iomem *)0xe6054010 + +static inline void mmc_init_progress(void) +{ + /* Initialise LEDS0-3 + * registers: PORT0CR-PORT2CR,PORT159CR (LED0-LED3 Control) + * value: 0x10 - enable output + */ + __raw_writeb(0x10, PORT0CR); + __raw_writeb(0x10, PORT1CR); + __raw_writeb(0x10, PORT2CR); + __raw_writeb(0x10, PORT159CR); +} + +static inline void mmc_update_progress(int n) +{ + unsigned a = 0, b = 0; + + if (n < 3) + a = 1 << n; + else + b = 1 << 31; + + __raw_writel((__raw_readl(PORTR031_000DR) & ~0x7) | a, + PORTR031_000DR); + __raw_writel((__raw_readl(PORTL159_128DR) & ~(1 << 31)) | b, + PORTL159_128DR); +} +#endif /* MMC_MACKEREL_H */ diff --git a/arch/arm/mach-shmobile/include/mach/mmc.h b/arch/arm/mach-shmobile/include/mach/mmc.h new file mode 100644 index 0000000..e11560a --- /dev/null +++ b/arch/arm/mach-shmobile/include/mach/mmc.h @@ -0,0 +1,18 @@ +#ifndef MMC_H +#define MMC_H + +/************************************************** + * + * board specific settings + * + **************************************************/ + +#ifdef CONFIG_MACH_AP4EVB +#include "mach/mmc-ap4eb.h" +#elif CONFIG_MACH_MACKEREL +#include "mach/mmc-mackerel.h" +#else +#error "unsupported board." +#endif + +#endif /* MMC_H */ diff --git a/arch/arm/mach-shmobile/include/mach/mmcif-ap4eb.h b/arch/arm/mach-shmobile/include/mach/mmcif-ap4eb.h deleted file mode 100644 index a8d02be..0000000 --- a/arch/arm/mach-shmobile/include/mach/mmcif-ap4eb.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef MMCIF_AP4EB_H -#define MMCIF_AP4EB_H - -#define PORT185CR (void __iomem *)0xe60520b9 -#define PORT186CR (void __iomem *)0xe60520ba -#define PORT187CR (void __iomem *)0xe60520bb -#define PORT188CR (void __iomem *)0xe60520bc - -#define PORTR191_160DR (void __iomem *)0xe6056014 - -static inline void mmcif_init_progress(void) -{ - /* Initialise LEDS1-4 - * registers: PORT185CR-PORT188CR (LED1-LED4 Control) - * value: 0x10 - enable output - */ - __raw_writeb(0x10, PORT185CR); - __raw_writeb(0x10, PORT186CR); - __raw_writeb(0x10, PORT187CR); - __raw_writeb(0x10, PORT188CR); -} - -static inline void mmcif_update_progress(int n) -{ - __raw_writel((__raw_readl(PORTR191_160DR) & ~(0xf << 25)) | - (1 << (25 + n)), PORTR191_160DR); -} - -#endif /* MMCIF_AP4EB_H */ diff --git a/arch/arm/mach-shmobile/include/mach/mmcif-mackerel.h b/arch/arm/mach-shmobile/include/mach/mmcif-mackerel.h deleted file mode 100644 index 4b4f694..0000000 --- a/arch/arm/mach-shmobile/include/mach/mmcif-mackerel.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef MMCIF_MACKEREL_H -#define MMCIF_MACKEREL_H - -#define PORT0CR (void __iomem *)0xe6051000 -#define PORT1CR (void __iomem *)0xe6051001 -#define PORT2CR (void __iomem *)0xe6051002 -#define PORT159CR (void __iomem *)0xe605009f - -#define PORTR031_000DR (void __iomem *)0xe6055000 -#define PORTL159_128DR (void __iomem *)0xe6054010 - -static inline void mmcif_init_progress(void) -{ - /* Initialise LEDS0-3 - * registers: PORT0CR-PORT2CR,PORT159CR (LED0-LED3 Control) - * value: 0x10 - enable output - */ - __raw_writeb(0x10, PORT0CR); - __raw_writeb(0x10, PORT1CR); - __raw_writeb(0x10, PORT2CR); - __raw_writeb(0x10, PORT159CR); -} - -static inline void mmcif_update_progress(int n) -{ - unsigned a = 0, b = 0; - - if (n < 3) - a = 1 << n; - else - b = 1 << 31; - - __raw_writel((__raw_readl(PORTR031_000DR) & ~0x7) | a, - PORTR031_000DR); - __raw_writel((__raw_readl(PORTL159_128DR) & ~(1 << 31)) | b, - PORTL159_128DR); -} - -#endif /* MMCIF_MACKEREL_H */ diff --git a/arch/arm/mach-shmobile/include/mach/mmcif.h b/arch/arm/mach-shmobile/include/mach/mmcif.h deleted file mode 100644 index f4dc327..0000000 --- a/arch/arm/mach-shmobile/include/mach/mmcif.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef MMCIF_H -#define MMCIF_H - -/************************************************** - * - * board specific settings - * - **************************************************/ - -#ifdef CONFIG_MACH_AP4EVB -#include "mach/mmcif-ap4eb.h" -#elif CONFIG_MACH_MACKEREL -#include "mach/mmcif-mackerel.h" -#else -#error "unsupported board." -#endif - -#endif /* MMCIF_H */ -- 1.7.2.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH] mmc, AT91: fix init fequency problem 2011-03-24 6:54 ` [PATCH 1/2] mmc, ARM: Rename SuperH Mobile ARM " Simon Horman @ 2011-03-24 9:10 ` Prchal Jiří [not found] ` <4D8B2068.60402@aksignal.cz> 1 sibling, 0 replies; 8+ messages in thread From: Prchal Jiří @ 2011-03-24 9:10 UTC (permalink / raw) To: linux-arm-kernel Hi, this patch fixes problem with some SD cards during initialization. Not all SD(HC) card can run at even 375kHz. Sets minimal frequency to 200kHz. And in function "at91_mci_set_ios" is limit to maximum division, it's only 8 bit value. Kernel version: 2.6.38 Signed-off-by: Jiri Prchal <jiri.prchal@aksignal.cz> --- diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/drivers/mmc/host/at91_mci.c /home/prchal/arm/fw-cdu/linux/linux-2.6.38/drivers/mmc/host/at91_mci.c --- linux-2.6.38-vanilla/drivers/mmc/host/at91_mci.c 2011-03-15 02:20:32.000000000 +0100 +++ /home/prchal/arm/fw-cdu/linux/linux-2.6.38/drivers/mmc/host/at91_mci.c 2011-03-24 09:20:22.869370179 +0100 @@ -724,6 +724,10 @@ static void at91_mci_set_ios(struct mmc_ else clkdiv = (at91_master_clock / ios->clock) / 2; + /* set maximum divider */ + if (clkdiv > 255) + clkdiv = 255; + pr_debug("clkdiv = %d. mcck = %ld\n", clkdiv, at91_master_clock / (2 * (clkdiv + 1))); } @@ -944,7 +948,7 @@ static int __init at91_mci_probe(struct } mmc->ops = &at91_mci_ops; - mmc->f_min = 375000; + mmc->f_min = 200000; /* not all cards can run at 375kHz */ mmc->f_max = 25000000; mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34; mmc->caps = 0; ^ permalink raw reply [flat|nested] 8+ messages in thread
[parent not found: <4D8B2068.60402@aksignal.cz>]
[parent not found: <4D8BA47B.8050904@bluewatersys.com>]
* [PATCH] ARCH arm: adding new board: CDU [not found] ` <4D8BA47B.8050904@bluewatersys.com> @ 2011-04-04 9:10 ` Prchal Jiří 2011-04-04 9:16 ` Russell King - ARM Linux 2011-04-04 20:25 ` Ryan Mallon 0 siblings, 2 replies; 8+ messages in thread From: Prchal Jiří @ 2011-04-04 9:10 UTC (permalink / raw) To: linux-arm-kernel Hi, this is separated PATCH adding new board CDU. Depend on: [PATCH 1/2] ALSA: ASoc: TLV320AIC3X: ad SPI and clock on GPIO2 or BCLK [PATCH] ALSA: ASoc: new functions snd_soc_7_8_* [PATCH 2/2] ALSA: ASoc: putting together AT91SAM9260 and TLV320AIC3X Kernel version: 2.6.38 Signed-off-by: Jiri Prchal <jiri.prchal@aksignal.cz> Dne 24.3.2011 21:07, Ryan Mallon napsal(a): > On 03/24/2011 11:43 PM, Prchal Ji?? wrote: >> Hi, >> this patch is for example how to put together AT91SAM9260 and TLV320AIC3106 controlled via SPI. >> It tooks me a lot of time to make it working, so I think it could be helpfull for other people. >> >> In original source "snd-soc-afeb9260.c" which I use as example is BIG ERROR: >> In function "afeb9260_soc_init" is missing call of "atmel_ssc_set_audio(0);". It cause bug "PROBLEM: Asoc driver in >> 2.6.37.3 for AT91SAM9260 / TLV320AIC3X is broken" which I post some time ago. > > Hi Jiri, > > This patch is actually doing two things: adding board support for a new > at91sam9260 device and adding the audio glue for the new board. It > should be split into two patches. Quick review below. > > ~Ryan > >> >> Depend on: [PATCH 1/2] ALSA: ASoc: TLV320AIC3X: ad SPI and clock on GPIO2 or BCLK >> Kernel version: 2.6.38 >> Signed-off-by: Jiri Prchal <jiri.prchal@aksignal.cz> >> --- >> >> diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/arch/arm/mach-at91/board-cdu.c >> /home/prchal/arm/fw-cdu/linux/linux-2.6.38/arch/arm/mach-at91/board-cdu.c >> --- linux-2.6.38-vanilla/arch/arm/mach-at91/board-cdu.c 1970-01-01 01:00:00.000000000 +0100 >> +++ /home/prchal/arm/fw-cdu/linux/linux-2.6.38/arch/arm/mach-at91/board-cdu.c 2011-03-24 09:15:23.852370981 +0100 >> @@ -0,0 +1,345 @@ >> +/* >> + * linux/arch/arm/mach-at91/board-cdu.c >> + * >> + * Copyright (C) 2005 SAN People >> + * Copyright (C) 2006 Atmel >> + * Copyright (C) 2011 AKsignal Brno >> + * jiri.prchal at aksignal.cz >> + * >> + * This program is free software; you can redistribute it and/or modify >> + * it under the terms of the GNU General Public License as published by >> + * the Free Software Foundation; either version 2 of the License, or >> + * (at your option) any later version. >> + * >> + * This program is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >> + * GNU General Public License for more details. >> + * >> + * You should have received a copy of the GNU General Public License >> + * along with this program; if not, write to the Free Software >> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA >> + */ >> + >> +#include <linux/types.h> >> +#include <linux/init.h> >> +#include <linux/mm.h> >> +#include <linux/module.h> >> +#include <linux/platform_device.h> >> +#include <linux/spi/spi.h> >> +#include <linux/clk.h> >> +#include <linux/spi/mcp23s08.h> >> +#include <linux/dma-mapping.h> >> + >> +#include <mach/hardware.h> >> +#include <asm/setup.h> >> +#include <asm/mach-types.h> >> +#include <asm/irq.h> >> + >> +#include <asm/mach/arch.h> >> +#include <asm/mach/map.h> >> +#include <asm/mach/irq.h> >> + >> +#include <mach/board.h> >> +#include <mach/gpio.h> >> +#include <mach/at91sam9_smc.h> >> + >> +#include "sam9_smc.h" >> +#include "generic.h" >> + >> +static void __init cdu_map_io(void) >> +{ >> + /* Initialize processor: 6 MHz crystal */ >> + at91sam9260_initialize(6000000); >> + >> + /* DBGU on ttyS0. (Rx & Tx only) */ >> + at91_register_uart(0, 0, 0); >> + >> + /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ >> + at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS >> + | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD >> + | ATMEL_UART_RI); >> + >> + /* USART1 on ttyS2. (Rx, Tx, RTS) */ >> + at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_RTS); >> + >> + /* USART2 on ttyS3. (Rx, Tx, RTS) */ >> + at91_register_uart(AT91SAM9260_ID_US2, 3, ATMEL_UART_RTS); >> + >> + /* USART3 on ttyS4. (Rx, Tx, RTS) */ >> + at91_register_uart(AT91SAM9260_ID_US3, 4, ATMEL_UART_RTS); >> + >> + /* USART4 on ttyS5. (Tx) */ >> + /* EBUS - transmit audio, no rx */ >> + /*at91_register_uart(AT91SAM9260_ID_US4, 5, 0);*/ >> + >> + /* set serial console to ttyS0 (ie, DBGU) */ >> + at91_set_serial_console(0); >> +} >> + >> +static void __init cdu_init_irq(void) >> +{ >> + at91sam9260_init_interrupts(NULL); >> +} >> + >> +/* >> + * USB Host port >> + */ >> +static struct at91_usbh_data __initdata cdu_usbh_data = { >> + .ports = 2, >> +}; >> + >> +/* >> + * USB Device port >> + */ >> +static struct at91_udc_data __initdata cdu_udc_data = { >> + .vbus_pin = AT91_PIN_PC15, >> + .pullup_pin = 0, /* pull-up driven by UDC */ >> +}; >> + >> +/* >> + * SPI devices. >> + */ >> +#define MCP23S08_GPIO_BASE 128 >> + >> +static const struct mcp23s08_platform_data mcp23s08_gpio_info = { >> + .chip[0].is_present = true, >> + .chip[0].pullups = 0, >> + .base = MCP23S08_GPIO_BASE, >> +}; >> + >> +static struct spi_board_info cdu_spi_devices[] = { >> + { /* ADC LTC2488 */ >> + .modalias = "spidev", >> + .chip_select = 0, >> + .max_speed_hz = 1 * 1000 * 1000, >> + .bus_num = 1, >> + }, >> + { /* GPIO expander MCP23S08 */ >> + .modalias = "mcp23s08", >> + .chip_select = 1, >> + .max_speed_hz = 1000000, >> + .bus_num = 1, >> + .platform_data = &mcp23s08_gpio_info, >> + .mode = SPI_MODE_3, >> + }, >> + { /* non volatile memory (F-RAM) FM25VN10 */ >> + .modalias = "spidev", >> + .chip_select = 2, >> + .max_speed_hz = 1 * 1000 * 1000, >> + .bus_num = 1, >> + }, >> + { /* audiocodec TLV320AIC3106 */ >> + .modalias = "tlv320aic3x-codec", >> + .chip_select = 3, >> + .max_speed_hz = 1000000, >> + .bus_num = 1, >> + .mode = SPI_MODE_1, >> + }, >> +}; >> + >> +/* >> + * MACB Ethernet device >> + */ >> +static struct at91_eth_data __initdata cdu_macb_data = { >> + .phy_irq_pin = 0, //nc, > > Don't use // comments. This line can just be deleted since it default to > zero. I'd like to keep this lines to explicitly see not connected pins. > >> + .is_rmii = 1, >> +}; >> + >> +/* >> + * NAND flash >> + */ >> +static struct mtd_partition __initdata cdu_nand_partition[] = { >> + { >> + .name = "bootstrap", >> + .offset = 0, >> + .size = 0x40000, > > Tabbing is messed here. > >> + }, >> + { >> + .name = "uboot", >> + .offset = 0x40000, > > You can use MTDPART_OFS_NXTBLK for the offset to align this partition > immediately after the previous one. > >> + .size = (0xc0000 - 0x40000), > > What's with the odd sizes? You should use the sizes from asm/sizes.h. Used sizes and offsets. > >> + }, >> + { >> + .name = "ubootenv", >> + .offset = 0xc0000, >> + .size = (0x100000 - 0xc0000), >> + }, >> + { >> + .name = "kernel", >> + .offset = 0x100000, >> + .size = (0x400000 - 0x100000), >> + }, >> + { >> + .name = "rootfs", >> + .offset = 0x400000, >> + .size = (0x8000000 - 0x400000), >> + }, >> +}; >> + >> +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) >> +{ >> + *num_partitions = ARRAY_SIZE(cdu_nand_partition); >> + return cdu_nand_partition; >> +} >> + >> +static struct atmel_nand_data __initdata cdu_nand_data = { >> + .ale = 21, >> + .cle = 22, >> +// .det_pin = ... not connected > > Delete this line. > >> + .rdy_pin = AT91_PIN_PC13, >> + .enable_pin = AT91_PIN_PC14, >> + .partition_info = nand_partitions, >> + .bus_width_16 = 0, >> +}; >> + >> +static struct sam9_smc_config __initdata cdu_nand_smc_config = { >> + .ncs_read_setup = 0, >> + .nrd_setup = 1, >> + .ncs_write_setup = 0, >> + .nwe_setup = 1, >> + >> + .ncs_read_pulse = 3, >> + .nrd_pulse = 3, >> + .ncs_write_pulse = 3, >> + .nwe_pulse = 3, >> + >> + .read_cycle = 5, >> + .write_cycle = 5, >> + >> + .mode = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE, >> + .tdf_cycles = 2, >> +}; >> + >> +static void __init cdu_add_device_nand(void) >> +{ >> + /* setup bus-width (8 or 16) */ >> + if (cdu_nand_data.bus_width_16) >> + cdu_nand_smc_config.mode |= AT91_SMC_DBW_16; >> + else >> + cdu_nand_smc_config.mode |= AT91_SMC_DBW_8; > > bus_width_16 is explicitly set to zero above, so this logic should not > be needed. > Removed. >> + /* configure chip-select 3 (NAND) */ >> + sam9_smc_configure(3, &cdu_nand_smc_config); >> + >> + at91_add_device_nand(&cdu_nand_data); >> +} >> + >> +/* >> +* MCI (SD/MMC) >> +*/ >> +static struct at91_mmc_data __initdata ek_mmc_data = { >> + .slot_b = 0, >> + .wire4 = 1, >> + // .det_pin = ... not connected >> + // .wp_pin = ... not connected >> + // .vcc_pin = ... not connected > > Delete these lines. > >> +}; >> + >> +/* >> + * LEDs >> + */ >> +static struct gpio_led cdu_leds[] = { >> + { >> + .name = "red", >> + .gpio = AT91_PIN_PC10, >> + .default_trigger = "timer", >> + }, >> + { >> + .name = "green", >> + .gpio = AT91_PIN_PA5, >> + .default_trigger = "heartbeat", >> + }, >> + { >> + .name = "yellow", >> + .gpio = AT91_PIN_PB20, >> + .active_low = 1, >> + .default_trigger = "mmc0", >> + }, >> + { >> + .name = "blue", >> + .gpio = AT91_PIN_PB21, >> + .active_low = 1, >> + .default_trigger = "nand-disk", >> + }, >> +}; >> + >> +/* >> + * GPIOs >> + */ >> +static struct gpio gpios[] = { >> + { AT91_PIN_PA0, GPIOF_OUT_INIT_LOW, "ebus_dir"}, >> + { AT91_PIN_PA1, GPIOF_OUT_INIT_LOW, "time_dir"}, >> + { AT91_PIN_PB12, GPIOF_OUT_INIT_LOW, "gsm_rst"}, >> + { AT91_PIN_PB13, GPIOF_OUT_INIT_LOW, "gsm_on"}, >> + { AT91_PIN_PC2, GPIOF_IN, "por"}, >> + { AT91_PIN_PC7, GPIOF_OUT_INIT_HIGH, "spk_shdn"}, >> + >> + { AT91_PIN_PC0, GPIOF_IN, "in13"}, >> + { AT91_PIN_PC1, GPIOF_IN, "in14"}, >> + { AT91_PIN_PA22, GPIOF_IN, "in17"}, >> + { AT91_PIN_PA23, GPIOF_IN, "in18"}, >> + { AT91_PIN_PA24, GPIOF_IN, "in19"}, >> + { AT91_PIN_PA25, GPIOF_IN, "in20"}, >> + >> + { AT91_PIN_PA26, GPIOF_OUT_INIT_LOW, "out15"}, >> + { AT91_PIN_PA27, GPIOF_OUT_INIT_LOW, "out16"}, >> + { AT91_PIN_PA28, GPIOF_OUT_INIT_LOW, "out17"}, >> + { AT91_PIN_PA29, GPIOF_OUT_INIT_LOW, "out18"}, >> + { AT91_PIN_PA30, GPIOF_OUT_INIT_LOW, "out19"}, >> + { AT91_PIN_PB29, GPIOF_OUT_INIT_LOW, "out20"}, >> + >> + { MCP23S08_GPIO_BASE + 0, GPIOF_IN, "busadrp"}, >> + { MCP23S08_GPIO_BASE + 2, GPIOF_IN, "busadr5"}, >> + { MCP23S08_GPIO_BASE + 3, GPIOF_IN, "busadr4"}, >> + { MCP23S08_GPIO_BASE + 4, GPIOF_IN, "busadr3"}, >> + { MCP23S08_GPIO_BASE + 5, GPIOF_IN, "busadr2"}, >> + { MCP23S08_GPIO_BASE + 6, GPIOF_IN, "busadr1"}, >> + { MCP23S08_GPIO_BASE + 7, GPIOF_IN, "busadr0"}, >> +}; >> + >> +static void __init cdu_add_gpio (void) >> +{ >> + int i; >> + >> + for (i = 0; i < ARRAY_SIZE (gpios); i++) { >> + gpio_request_one (gpios[i].gpio, gpios[i].flags, gpios[i].label); >> + } > > Nitpick, don't need braces on the for loop here. Also, remove the spaces > between cdu_add_gpiop, ARRAY_SIZE, and gpio_request_one and their > opening parenthesis. > There are two lines now. >> +} >> + >> +/* >> + * init >> + */ >> +static void __init cdu_board_init(void) >> +{ >> + /* Serial */ >> + at91_add_device_serial(); >> + /* USB Host */ >> + at91_add_device_usbh(&cdu_usbh_data); >> + /* USB Device */ >> + at91_add_device_udc(&cdu_udc_data); >> + /* SPI */ >> + at91_add_device_spi(cdu_spi_devices, ARRAY_SIZE(cdu_spi_devices)); >> + /* NAND */ >> + cdu_add_device_nand(); >> + /* Ethernet */ >> + at91_add_device_eth(&cdu_macb_data); >> + /* MMC */ >> + at91_add_device_mmc(0, &ek_mmc_data); >> + /* SSC */ >> + at91_add_device_ssc(AT91SAM9260_ID_SSC, (ATMEL_SSC_TF | ATMEL_SSC_TK | ATMEL_SSC_TD | ATMEL_SSC_RD)); >> + /* LEDs */ >> + at91_gpio_leds(cdu_leds, ARRAY_SIZE(cdu_leds)); >> + // GPIO >> + cdu_add_gpio (); > > I might be a bit alone on this, but I find this cut and paste comment > style for the at91 device initialisation awful. The function names are > very self explanatory and the comments only serve to make the init code > more difficult to read. Also, remove the // comment. > Removed. >> +} >> + >> +MACHINE_START(AT91SAM9260EK, "CDU") >> + /* Maintainer: Atmel */ > > Nice of you to assign maintainership of your board to Atmel :-). You > should possibly add a MAINTAINERS entry for this board. New maitainer. > >> + .boot_params = AT91_SDRAM_BASE + 0x100, >> + .timer = &at91sam926x_timer, >> + .map_io = cdu_map_io, >> + .init_irq = cdu_init_irq, >> + .init_machine = cdu_board_init, >> +MACHINE_END >> diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/arch/arm/mach-at91/Kconfig >> /home/prchal/arm/fw-cdu/linux/linux-2.6.38/arch/arm/mach-at91/Kconfig >> --- linux-2.6.38-vanilla/arch/arm/mach-at91/Kconfig 2011-03-15 02:20:32.000000000 +0100 >> +++ /home/prchal/arm/fw-cdu/linux/linux-2.6.38/arch/arm/mach-at91/Kconfig 2011-03-16 09:19:40.000000000 +0100 >> @@ -213,6 +213,12 @@ config MACH_AT91SAM9260EK >> Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit >> <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933> >> >> +config MACH_CDU >> + bool "CDU AKsignal board" >> + help >> + Select this if you are using AKsignal CDU board >> + <http://www.aksignal.cz> >> + >> config MACH_CAM60 >> bool "KwikByte KB9260 (CAM60) board" >> help >> diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/arch/arm/mach-at91/Makefile >> /home/prchal/arm/fw-cdu/linux/linux-2.6.38/arch/arm/mach-at91/Makefile >> --- linux-2.6.38-vanilla/arch/arm/mach-at91/Makefile 2011-03-15 02:20:32.000000000 +0100 >> +++ /home/prchal/arm/fw-cdu/linux/linux-2.6.38/arch/arm/mach-at91/Makefile 2011-03-16 09:19:40.000000000 +0100 >> @@ -40,6 +40,7 @@ obj-$(CONFIG_MACH_ECO920) += board-eco92 >> >> # AT91SAM9260 board-specific support >> obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o >> +obj-$(CONFIG_MACH_CDU) += board-cdu.o >> obj-$(CONFIG_MACH_CAM60) += board-cam60.o >> obj-$(CONFIG_MACH_SAM9_L9260) += board-sam9-l9260.o >> obj-$(CONFIG_MACH_USB_A9260) += board-usb-a9260.o > > The first patch, adding just the support for the cdu board should end here. > diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/arch/arm/mach-at91/board-cdu.c linux-2.6.38-patch/arch/arm/mach-at91/board-cdu.c --- linux-2.6.38-vanilla/arch/arm/mach-at91/board-cdu.c 1970-01-01 01:00:00.000000000 +0100 +++ linux-2.6.38-patch/arch/arm/mach-at91/board-cdu.c 2011-03-28 15:52:03.413048601 +0200 @@ -0,0 +1,332 @@ +/* + * linux/arch/arm/mach-at91/board-cdu.c + * + * Copyright (C) 2005 SAN People + * Copyright (C) 2006 Atmel + * Copyright (C) 2011 AKsignal Brno + * jiri.prchal at aksignal.cz + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <linux/types.h> +#include <linux/init.h> +#include <linux/mm.h> +#include <linux/module.h> +#include <linux/platform_device.h> +#include <linux/spi/spi.h> +#include <linux/clk.h> +#include <linux/spi/mcp23s08.h> +#include <linux/dma-mapping.h> + +#include <mach/hardware.h> +#include <asm/setup.h> +#include <asm/mach-types.h> +#include <asm/irq.h> + +#include <asm/mach/arch.h> +#include <asm/mach/map.h> +#include <asm/mach/irq.h> + +#include <mach/board.h> +#include <mach/gpio.h> +#include <mach/at91sam9_smc.h> + +#include "sam9_smc.h" +#include "generic.h" + +static void __init cdu_map_io(void) +{ + /* Initialize processor: 6 MHz crystal */ + at91sam9260_initialize(6000000); + + /* DBGU on ttyS0. (Rx & Tx only) */ + at91_register_uart(0, 0, 0); + + /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ + at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS + | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD + | ATMEL_UART_RI); + + /* USART1 on ttyS2. (Rx, Tx, RTS) */ + at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_RTS); + + /* USART2 on ttyS3. (Rx, Tx, RTS) */ + at91_register_uart(AT91SAM9260_ID_US2, 3, ATMEL_UART_RTS); + + /* USART3 on ttyS4. (Rx, Tx, RTS) */ + at91_register_uart(AT91SAM9260_ID_US3, 4, ATMEL_UART_RTS); + + /* USART4 on ttyS5. (Tx) */ + /* EBUS - transmit audio, no rx */ + /*at91_register_uart(AT91SAM9260_ID_US4, 5, 0);*/ + + /* set serial console to ttyS0 (ie, DBGU) */ + at91_set_serial_console(0); +} + +static void __init cdu_init_irq(void) +{ + at91sam9260_init_interrupts(NULL); +} + +/* + * USB Host port + */ +static struct at91_usbh_data __initdata cdu_usbh_data = { + .ports = 2, +}; + +/* + * USB Device port + */ +static struct at91_udc_data __initdata cdu_udc_data = { + .vbus_pin = AT91_PIN_PC15, + .pullup_pin = 0, /* pull-up driven by UDC */ +}; + +/* + * SPI devices. + */ +#define MCP23S08_GPIO_BASE 128 + +static const struct mcp23s08_platform_data mcp23s08_gpio_info = { + .chip[0].is_present = true, + .chip[0].pullups = 0, + .base = MCP23S08_GPIO_BASE, +}; + +static struct spi_board_info cdu_spi_devices[] = { + { /* ADC LTC2488 */ + .modalias = "spidev", + .chip_select = 0, + .max_speed_hz = 1 * 1000 * 1000, + .bus_num = 1, + }, + { /* GPIO expander MCP23S08 */ + .modalias = "mcp23s08", + .chip_select = 1, + .max_speed_hz = 1000000, + .bus_num = 1, + .platform_data = &mcp23s08_gpio_info, + .mode = SPI_MODE_3, + }, + { /* non volatile memory (F-RAM) FM25VN10 */ + .modalias = "spidev", + .chip_select = 2, + .max_speed_hz = 1 * 1000 * 1000, + .bus_num = 1, + }, + { /* audiocodec TLV320AIC3106 */ + .modalias = "tlv320aic3x-codec", + .chip_select = 3, + .max_speed_hz = 1000000, + .bus_num = 1, + .mode = SPI_MODE_1, + }, +}; + +/* + * MACB Ethernet device + */ +static struct at91_eth_data __initdata cdu_macb_data = { + /*.phy_irq_pin = ... not connected */ + .is_rmii = 1, +}; + +/* + * NAND flash + */ +static struct mtd_partition __initdata cdu_nand_partition[] = { + { + .name = "bootstrap", + .offset = 0, + .size = SZ_256K, + }, + { + .name = "uboot", + .offset = MTDPART_OFS_APPEND, + .size = SZ_512K, + }, + { + .name = "ubootenv", + .offset = MTDPART_OFS_APPEND, + .size = SZ_256K, + }, + { + .name = "kernel", + .offset = MTDPART_OFS_APPEND, + .size = SZ_4M, + }, + { + .name = "rootfs", + .offset = MTDPART_OFS_APPEND, + .size = MTDPART_SIZ_FULL, + }, +}; + +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) +{ + *num_partitions = ARRAY_SIZE(cdu_nand_partition); + return cdu_nand_partition; +} + +static struct atmel_nand_data __initdata cdu_nand_data = { + .ale = 21, + .cle = 22, + /*.det_pin = ... not connected */ + .rdy_pin = AT91_PIN_PC13, + .enable_pin = AT91_PIN_PC14, + .partition_info = nand_partitions, + .bus_width_16 = 0, +}; + +static struct sam9_smc_config __initdata cdu_nand_smc_config = { + .ncs_read_setup = 0, + .nrd_setup = 1, + .ncs_write_setup = 0, + .nwe_setup = 1, + + .ncs_read_pulse = 3, + .nrd_pulse = 3, + .ncs_write_pulse = 3, + .nwe_pulse = 3, + + .read_cycle = 5, + .write_cycle = 5, + + .mode = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE, + .tdf_cycles = 2, +}; + +static void __init cdu_add_device_nand(void) +{ + /* setup bus-width 8 */ + cdu_nand_smc_config.mode |= AT91_SMC_DBW_8; + + /* configure chip-select 3 (NAND) */ + sam9_smc_configure(3, &cdu_nand_smc_config); + + at91_add_device_nand(&cdu_nand_data); +} + +/* +* MCI (SD/MMC) +*/ +static struct at91_mmc_data __initdata ek_mmc_data = { + .slot_b = 0, + .wire4 = 1, + /*.det_pin = ... not connected */ + /*.wp_pin = ... not connected */ + /*.vcc_pin = ... not connected */ +}; + +/* + * LEDs + */ +static struct gpio_led cdu_leds[] = { + { + .name = "red", + .gpio = AT91_PIN_PC10, + .default_trigger = "timer", + }, + { + .name = "green", + .gpio = AT91_PIN_PA5, + .default_trigger = "heartbeat", + }, + { + .name = "yellow", + .gpio = AT91_PIN_PB20, + .active_low = 1, + .default_trigger = "mmc0", + }, + { + .name = "blue", + .gpio = AT91_PIN_PB21, + .active_low = 1, + .default_trigger = "nand-disk", + }, +}; + +/* + * GPIOs + */ +static struct gpio gpios[] = { + { AT91_PIN_PA0, GPIOF_OUT_INIT_LOW, "ebus_dir"}, + { AT91_PIN_PA1, GPIOF_OUT_INIT_LOW, "time_dir"}, + { AT91_PIN_PB12, GPIOF_OUT_INIT_LOW, "gsm_rst"}, + { AT91_PIN_PB13, GPIOF_OUT_INIT_LOW, "gsm_on"}, + { AT91_PIN_PC2, GPIOF_IN, "por"}, + { AT91_PIN_PC7, GPIOF_OUT_INIT_HIGH, "spk_shdn"}, + + { AT91_PIN_PC0, GPIOF_IN, "in13"}, + { AT91_PIN_PC1, GPIOF_IN, "in14"}, + { AT91_PIN_PA22, GPIOF_IN, "in17"}, + { AT91_PIN_PA23, GPIOF_IN, "in18"}, + { AT91_PIN_PA24, GPIOF_IN, "in19"}, + { AT91_PIN_PA25, GPIOF_IN, "in20"}, + + { AT91_PIN_PA26, GPIOF_OUT_INIT_LOW, "out15"}, + { AT91_PIN_PA27, GPIOF_OUT_INIT_LOW, "out16"}, + { AT91_PIN_PA28, GPIOF_OUT_INIT_LOW, "out17"}, + { AT91_PIN_PA29, GPIOF_OUT_INIT_LOW, "out18"}, + { AT91_PIN_PA30, GPIOF_OUT_INIT_LOW, "out19"}, + { AT91_PIN_PB29, GPIOF_OUT_INIT_LOW, "out20"}, + + { MCP23S08_GPIO_BASE + 0, GPIOF_IN, "busadrp"}, + { MCP23S08_GPIO_BASE + 2, GPIOF_IN, "busadr5"}, + { MCP23S08_GPIO_BASE + 3, GPIOF_IN, "busadr4"}, + { MCP23S08_GPIO_BASE + 4, GPIOF_IN, "busadr3"}, + { MCP23S08_GPIO_BASE + 5, GPIOF_IN, "busadr2"}, + { MCP23S08_GPIO_BASE + 6, GPIOF_IN, "busadr1"}, + { MCP23S08_GPIO_BASE + 7, GPIOF_IN, "busadr0"}, +}; + +static void __init cdu_add_gpio(void) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(gpios); i++) { + gpio_request_one(gpios[i].gpio, gpios[i].flags, gpios[i].label); + gpio_export_name(gpios[i].gpio, 0, gpios[i].label); + } +} + +/* + * init + */ +static void __init cdu_board_init(void) +{ + at91_add_device_serial(); + at91_add_device_usbh(&cdu_usbh_data); + at91_add_device_udc(&cdu_udc_data); + at91_add_device_spi(cdu_spi_devices, ARRAY_SIZE(cdu_spi_devices)); + cdu_add_device_nand(); + at91_add_device_eth(&cdu_macb_data); + at91_add_device_mmc(0, &ek_mmc_data); + at91_add_device_ssc(AT91SAM9260_ID_SSC, (ATMEL_SSC_TF | ATMEL_SSC_TK | ATMEL_SSC_TD | ATMEL_SSC_RD)); + at91_gpio_leds(cdu_leds, ARRAY_SIZE(cdu_leds)); + cdu_add_gpio (); +} + +MACHINE_START(AT91SAM9260EK, "CDU") + /* Maintainer: AKsignal Brno */ + .boot_params = AT91_SDRAM_BASE + 0x100, + .timer = &at91sam926x_timer, + .map_io = cdu_map_io, + .init_irq = cdu_init_irq, + .init_machine = cdu_board_init, +MACHINE_END diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/arch/arm/mach-at91/Kconfig linux-2.6.38-patch/arch/arm/mach-at91/Kconfig --- linux-2.6.38-vanilla/arch/arm/mach-at91/Kconfig 2011-03-15 02:20:32.000000000 +0100 +++ linux-2.6.38-patch/arch/arm/mach-at91/Kconfig 2011-03-16 09:19:40.000000000 +0100 @@ -213,6 +213,12 @@ config MACH_AT91SAM9260EK Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933> +config MACH_CDU + bool "CDU AKsignal board" + help + Select this if you are using AKsignal CDU board + <http://www.aksignal.cz> + config MACH_CAM60 bool "KwikByte KB9260 (CAM60) board" help diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/arch/arm/mach-at91/Makefile linux-2.6.38-patch/arch/arm/mach-at91/Makefile --- linux-2.6.38-vanilla/arch/arm/mach-at91/Makefile 2011-03-15 02:20:32.000000000 +0100 +++ linux-2.6.38-patch/arch/arm/mach-at91/Makefile 2011-03-16 09:19:40.000000000 +0100 @@ -40,6 +40,7 @@ obj-$(CONFIG_MACH_ECO920) += board-eco92 # AT91SAM9260 board-specific support obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o +obj-$(CONFIG_MACH_CDU) += board-cdu.o obj-$(CONFIG_MACH_CAM60) += board-cam60.o obj-$(CONFIG_MACH_SAM9_L9260) += board-sam9-l9260.o obj-$(CONFIG_MACH_USB_A9260) += board-usb-a9260.o diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/MAINTAINERS linux-2.6.38-patch/MAINTAINERS --- linux-2.6.38-vanilla/MAINTAINERS 2011-03-15 02:20:32.000000000 +0100 +++ linux-2.6.38-patch/MAINTAINERS 2011-03-25 08:37:56.693049978 +0100 @@ -1640,6 +1640,13 @@ F: include/linux/can/error.h F: include/linux/can/netlink.h F: include/linux/can/platform/ +CDU BOARD +M: Jiri Prchal <jiri.prchal@aksignal.cz> +L: linux-arch at vger.kernel.org +W: http://www.linux4sam.org +S: Supported +F: arch/arm/mach-at91/ + CELL BROADBAND ENGINE ARCHITECTURE M: Arnd Bergmann <arnd@arndb.de> L: linuxppc-dev at lists.ozlabs.org Soubory linux-2.6.38-vanilla/scripts/recordmcount a linux-2.6.38-patch/scripts/recordmcount jsou r??zn?? ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] ARCH arm: adding new board: CDU 2011-04-04 9:10 ` [PATCH] ARCH arm: adding new board: CDU Prchal Jiří @ 2011-04-04 9:16 ` Russell King - ARM Linux 2011-04-04 9:24 ` Russell King - ARM Linux 2011-04-04 20:25 ` Ryan Mallon 1 sibling, 1 reply; 8+ messages in thread From: Russell King - ARM Linux @ 2011-04-04 9:16 UTC (permalink / raw) To: linux-arm-kernel On Mon, Apr 04, 2011 at 11:10:42AM +0200, Prchal Ji?? wrote: > Hi, > this is separated PATCH adding new board CDU. What does this have to do with "[PATCH 1/2] mmc, ARM: Rename SuperH Mobile ARM zboot helpers" ? which is the message which you hit your mailer's "reply" button on? Please don't pollute email threads. ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] ARCH arm: adding new board: CDU 2011-04-04 9:16 ` Russell King - ARM Linux @ 2011-04-04 9:24 ` Russell King - ARM Linux 0 siblings, 0 replies; 8+ messages in thread From: Russell King - ARM Linux @ 2011-04-04 9:24 UTC (permalink / raw) To: linux-arm-kernel On Mon, Apr 04, 2011 at 10:16:35AM +0100, Russell King - ARM Linux wrote: > On Mon, Apr 04, 2011 at 11:10:42AM +0200, Prchal Ji?? wrote: > > Hi, > > this is separated PATCH adding new board CDU. > > What does this have to do with > > "[PATCH 1/2] mmc, ARM: Rename SuperH Mobile ARM zboot helpers" ? > > which is the message which you hit your mailer's "reply" button on? > Please don't pollute email threads. Sorry, it's not as trivial as I thought. For some reason your mailer is introducing additional message IDs in the 'References' header which are causing the message to be incorrectly threaded. Here are the original two messages: From: Simon Horman <horms@verge.net.au> Subject: [PATCH 0/2] mmc: zboot helpers Message-Id: <1300949648-15078-1-git-send-email-horms@verge.net.au> From: Simon Horman <horms@verge.net.au> Subject: [PATCH 1/2] mmc, ARM: Rename SuperH Mobile ARM zboot helpers Message-Id: <1300949648-15078-2-git-send-email-horms@verge.net.au> And your messages: From: Prchal Ji?? <jiri.prchal@aksignal.cz> Subject: [PATCH] mmc, AT91: fix init fequency problem References: <1300949648-15078-1-git-send-email-horms@verge.net.au> <1300949648-15078-2-git-send-email-horms@verge.net.au> In-Reply-To: <1300949648-15078-2-git-send-email-horms@verge.net.au> From: Prchal Ji?? <jiri.prchal@aksignal.cz> Subject: [PATCH] ARCH arm: adding new board: CDU References: <1300949648-15078-1-git-send-email-horms@verge.net.au> <1300949648-15078-2-git-send-email-horms@verge.net.au> <4D8B2068.60402@aksignal.cz> <4D8BA47B.8050904@bluewatersys.com> In-Reply-To: <4D8BA47B.8050904@bluewatersys.com> both of which reference Simon's unrelated emails. No idea how you're doing that, but both of your messages seem to be completely unrelated to Simon's two. ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] ARCH arm: adding new board: CDU 2011-04-04 9:10 ` [PATCH] ARCH arm: adding new board: CDU Prchal Jiří 2011-04-04 9:16 ` Russell King - ARM Linux @ 2011-04-04 20:25 ` Ryan Mallon 1 sibling, 0 replies; 8+ messages in thread From: Ryan Mallon @ 2011-04-04 20:25 UTC (permalink / raw) To: linux-arm-kernel On 04/04/2011 09:10 PM, Prchal Ji?? wrote: > Hi, > this is separated PATCH adding new board CDU. Please repost as a new email with a proper change log. This patch shouldn't depend on the CDU audio driver patch. This should still build and run, just without audio support. Few more comments below. ~Ryan <snip> > diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/arch/arm/mach-at91/board-cdu.c > linux-2.6.38-patch/arch/arm/mach-at91/board-cdu.c > --- linux-2.6.38-vanilla/arch/arm/mach-at91/board-cdu.c 1970-01-01 01:00:00.000000000 +0100 > +++ linux-2.6.38-patch/arch/arm/mach-at91/board-cdu.c 2011-03-28 15:52:03.413048601 +0200 > @@ -0,0 +1,332 @@ > +/* > + * linux/arch/arm/mach-at91/board-cdu.c > + * > + * Copyright (C) 2005 SAN People > + * Copyright (C) 2006 Atmel > + * Copyright (C) 2011 AKsignal Brno > + * jiri.prchal at aksignal.cz > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with this program; if not, write to the Free Software > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA > + */ > + > +#include <linux/types.h> > +#include <linux/init.h> > +#include <linux/mm.h> > +#include <linux/module.h> > +#include <linux/platform_device.h> > +#include <linux/spi/spi.h> > +#include <linux/clk.h> > +#include <linux/spi/mcp23s08.h> > +#include <linux/dma-mapping.h> > + > +#include <mach/hardware.h> > +#include <asm/setup.h> > +#include <asm/mach-types.h> > +#include <asm/irq.h> > + > +#include <asm/mach/arch.h> > +#include <asm/mach/map.h> > +#include <asm/mach/irq.h> > + > +#include <mach/board.h> > +#include <mach/gpio.h> > +#include <mach/at91sam9_smc.h> > + > +#include "sam9_smc.h" > +#include "generic.h" > + > +static void __init cdu_map_io(void) > +{ > + /* Initialize processor: 6 MHz crystal */ > + at91sam9260_initialize(6000000); > + > + /* DBGU on ttyS0. (Rx & Tx only) */ > + at91_register_uart(0, 0, 0); > + > + /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ > + at91_register_uart(AT91SAM9260_ID_US0, 1, ATMEL_UART_CTS | ATMEL_UART_RTS > + | ATMEL_UART_DTR | ATMEL_UART_DSR | ATMEL_UART_DCD > + | ATMEL_UART_RI); > + > + /* USART1 on ttyS2. (Rx, Tx, RTS) */ > + at91_register_uart(AT91SAM9260_ID_US1, 2, ATMEL_UART_RTS); > + > + /* USART2 on ttyS3. (Rx, Tx, RTS) */ > + at91_register_uart(AT91SAM9260_ID_US2, 3, ATMEL_UART_RTS); > + > + /* USART3 on ttyS4. (Rx, Tx, RTS) */ > + at91_register_uart(AT91SAM9260_ID_US3, 4, ATMEL_UART_RTS); > + > + /* USART4 on ttyS5. (Tx) */ > + /* EBUS - transmit audio, no rx */ > + /*at91_register_uart(AT91SAM9260_ID_US4, 5, 0);*/ > + > + /* set serial console to ttyS0 (ie, DBGU) */ > + at91_set_serial_console(0); > +} > + > +static void __init cdu_init_irq(void) > +{ > + at91sam9260_init_interrupts(NULL); > +} > + > +/* > + * USB Host port > + */ > +static struct at91_usbh_data __initdata cdu_usbh_data = { > + .ports = 2, > +}; > + > +/* > + * USB Device port > + */ > +static struct at91_udc_data __initdata cdu_udc_data = { > + .vbus_pin = AT91_PIN_PC15, > + .pullup_pin = 0, /* pull-up driven by UDC */ > +}; > + > +/* > + * SPI devices. > + */ > +#define MCP23S08_GPIO_BASE 128 > + > +static const struct mcp23s08_platform_data mcp23s08_gpio_info = { > + .chip[0].is_present = true, > + .chip[0].pullups = 0, > + .base = MCP23S08_GPIO_BASE, > +}; > + > +static struct spi_board_info cdu_spi_devices[] = { > + { /* ADC LTC2488 */ > + .modalias = "spidev", > + .chip_select = 0, > + .max_speed_hz = 1 * 1000 * 1000, You have max_speed_hz set as (1 * 1000 * 1000) in some cases and 1000000 in others. Please be consistent. Nitpicky: chip_select and bus_num should go next to each since they are related. > + .bus_num = 1, > + }, > + { /* GPIO expander MCP23S08 */ > + .modalias = "mcp23s08", > + .chip_select = 1, > + .max_speed_hz = 1000000, > + .bus_num = 1, > + .platform_data = &mcp23s08_gpio_info, > + .mode = SPI_MODE_3, > + }, > + { /* non volatile memory (F-RAM) FM25VN10 */ > + .modalias = "spidev", > + .chip_select = 2, > + .max_speed_hz = 1 * 1000 * 1000, > + .bus_num = 1, > + }, > + { /* audiocodec TLV320AIC3106 */ > + .modalias = "tlv320aic3x-codec", > + .chip_select = 3, > + .max_speed_hz = 1000000, > + .bus_num = 1, > + .mode = SPI_MODE_1, > + }, > +}; > + > +/* > + * MACB Ethernet device > + */ > +static struct at91_eth_data __initdata cdu_macb_data = { > + /*.phy_irq_pin = ... not connected */ Delete this line. > + .is_rmii = 1, > +}; > + > +/* > + * NAND flash > + */ > +static struct mtd_partition __initdata cdu_nand_partition[] = { > + { > + .name = "bootstrap", > + .offset = 0, > + .size = SZ_256K, > + }, > + { > + .name = "uboot", > + .offset = MTDPART_OFS_APPEND, > + .size = SZ_512K, > + }, > + { > + .name = "ubootenv", > + .offset = MTDPART_OFS_APPEND, > + .size = SZ_256K, > + }, > + { > + .name = "kernel", > + .offset = MTDPART_OFS_APPEND, > + .size = SZ_4M, > + }, > + { > + .name = "rootfs", > + .offset = MTDPART_OFS_APPEND, > + .size = MTDPART_SIZ_FULL, > + }, > +}; > + > +static struct mtd_partition * __init nand_partitions(int size, int *num_partitions) > +{ > + *num_partitions = ARRAY_SIZE(cdu_nand_partition); > + return cdu_nand_partition; > +} > + > +static struct atmel_nand_data __initdata cdu_nand_data = { > + .ale = 21, > + .cle = 22, > + /*.det_pin = ... not connected */ Just delete this line. > + .rdy_pin = AT91_PIN_PC13, > + .enable_pin = AT91_PIN_PC14, > + .partition_info = nand_partitions, > + .bus_width_16 = 0, > +}; > + > +static struct sam9_smc_config __initdata cdu_nand_smc_config = { > + .ncs_read_setup = 0, > + .nrd_setup = 1, > + .ncs_write_setup = 0, > + .nwe_setup = 1, > + > + .ncs_read_pulse = 3, > + .nrd_pulse = 3, > + .ncs_write_pulse = 3, > + .nwe_pulse = 3, > + > + .read_cycle = 5, > + .write_cycle = 5, > + > + .mode = AT91_SMC_READMODE | AT91_SMC_WRITEMODE | AT91_SMC_EXNWMODE_DISABLE, Split this line since it runs over 80 columns (especially once you add | AT91_SMC_DBW_8). > + .tdf_cycles = 2, > +}; > + > +static void __init cdu_add_device_nand(void) > +{ > + /* setup bus-width 8 */ > + cdu_nand_smc_config.mode |= AT91_SMC_DBW_8; Move this up into the initialisation above. > + > + /* configure chip-select 3 (NAND) */ > + sam9_smc_configure(3, &cdu_nand_smc_config); > + > + at91_add_device_nand(&cdu_nand_data); > +} > + > +/* > +* MCI (SD/MMC) > +*/ > +static struct at91_mmc_data __initdata ek_mmc_data = { > + .slot_b = 0, > + .wire4 = 1, > + /*.det_pin = ... not connected */ > + /*.wp_pin = ... not connected */ > + /*.vcc_pin = ... not connected */ Delete these lines. > +}; > + > +/* > + * LEDs > + */ > +static struct gpio_led cdu_leds[] = { > + { > + .name = "red", > + .gpio = AT91_PIN_PC10, > + .default_trigger = "timer", > + }, > + { > + .name = "green", > + .gpio = AT91_PIN_PA5, > + .default_trigger = "heartbeat", > + }, > + { > + .name = "yellow", > + .gpio = AT91_PIN_PB20, > + .active_low = 1, > + .default_trigger = "mmc0", > + }, > + { > + .name = "blue", > + .gpio = AT91_PIN_PB21, > + .active_low = 1, > + .default_trigger = "nand-disk", > + }, > +}; > + > +/* > + * GPIOs > + */ > +static struct gpio gpios[] = { > + { AT91_PIN_PA0, GPIOF_OUT_INIT_LOW, "ebus_dir"}, > + { AT91_PIN_PA1, GPIOF_OUT_INIT_LOW, "time_dir"}, > + { AT91_PIN_PB12, GPIOF_OUT_INIT_LOW, "gsm_rst"}, > + { AT91_PIN_PB13, GPIOF_OUT_INIT_LOW, "gsm_on"}, > + { AT91_PIN_PC2, GPIOF_IN, "por"}, > + { AT91_PIN_PC7, GPIOF_OUT_INIT_HIGH, "spk_shdn"}, > + > + { AT91_PIN_PC0, GPIOF_IN, "in13"}, > + { AT91_PIN_PC1, GPIOF_IN, "in14"}, > + { AT91_PIN_PA22, GPIOF_IN, "in17"}, > + { AT91_PIN_PA23, GPIOF_IN, "in18"}, > + { AT91_PIN_PA24, GPIOF_IN, "in19"}, > + { AT91_PIN_PA25, GPIOF_IN, "in20"}, > + > + { AT91_PIN_PA26, GPIOF_OUT_INIT_LOW, "out15"}, > + { AT91_PIN_PA27, GPIOF_OUT_INIT_LOW, "out16"}, > + { AT91_PIN_PA28, GPIOF_OUT_INIT_LOW, "out17"}, > + { AT91_PIN_PA29, GPIOF_OUT_INIT_LOW, "out18"}, > + { AT91_PIN_PA30, GPIOF_OUT_INIT_LOW, "out19"}, > + { AT91_PIN_PB29, GPIOF_OUT_INIT_LOW, "out20"}, > + > + { MCP23S08_GPIO_BASE + 0, GPIOF_IN, "busadrp"}, > + { MCP23S08_GPIO_BASE + 2, GPIOF_IN, "busadr5"}, > + { MCP23S08_GPIO_BASE + 3, GPIOF_IN, "busadr4"}, > + { MCP23S08_GPIO_BASE + 4, GPIOF_IN, "busadr3"}, > + { MCP23S08_GPIO_BASE + 5, GPIOF_IN, "busadr2"}, > + { MCP23S08_GPIO_BASE + 6, GPIOF_IN, "busadr1"}, > + { MCP23S08_GPIO_BASE + 7, GPIOF_IN, "busadr0"}, > +}; > + > +static void __init cdu_add_gpio(void) > +{ gpio_request_array(gpios, ARRAY_SIZE(gpios)); > + int i; > + > + for (i = 0; i < ARRAY_SIZE(gpios); i++) { > + gpio_request_one(gpios[i].gpio, gpios[i].flags, gpios[i].label); > + gpio_export_name(gpios[i].gpio, 0, gpios[i].label); What does this function do? I can't find it anywhere. > + } > +} > + > +/* > + * init > + */ > +static void __init cdu_board_init(void) > +{ > + at91_add_device_serial(); > + at91_add_device_usbh(&cdu_usbh_data); > + at91_add_device_udc(&cdu_udc_data); > + at91_add_device_spi(cdu_spi_devices, ARRAY_SIZE(cdu_spi_devices)); > + cdu_add_device_nand(); > + at91_add_device_eth(&cdu_macb_data); > + at91_add_device_mmc(0, &ek_mmc_data); > + at91_add_device_ssc(AT91SAM9260_ID_SSC, (ATMEL_SSC_TF | ATMEL_SSC_TK | ATMEL_SSC_TD | ATMEL_SSC_RD)); > + at91_gpio_leds(cdu_leds, ARRAY_SIZE(cdu_leds)); > + cdu_add_gpio (); No space between gpio and (). > +} > + > +MACHINE_START(AT91SAM9260EK, "CDU") > + /* Maintainer: AKsignal Brno */ Website/email contact? > + .boot_params = AT91_SDRAM_BASE + 0x100, > + .timer = &at91sam926x_timer, > + .map_io = cdu_map_io, > + .init_irq = cdu_init_irq, > + .init_machine = cdu_board_init, > +MACHINE_END > diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/arch/arm/mach-at91/Kconfig > linux-2.6.38-patch/arch/arm/mach-at91/Kconfig > --- linux-2.6.38-vanilla/arch/arm/mach-at91/Kconfig 2011-03-15 02:20:32.000000000 +0100 > +++ linux-2.6.38-patch/arch/arm/mach-at91/Kconfig 2011-03-16 09:19:40.000000000 +0100 > @@ -213,6 +213,12 @@ config MACH_AT91SAM9260EK > Select this if you are using Atmel's AT91SAM9260-EK or AT91SAM9XE Evaluation Kit > <http://www.atmel.com/dyn/products/tools_card.asp?tool_id=3933> > > +config MACH_CDU > + bool "CDU AKsignal board" > + help > + Select this if you are using AKsignal CDU board > + <http://www.aksignal.cz> > + > config MACH_CAM60 > bool "KwikByte KB9260 (CAM60) board" > help > diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/arch/arm/mach-at91/Makefile > linux-2.6.38-patch/arch/arm/mach-at91/Makefile > --- linux-2.6.38-vanilla/arch/arm/mach-at91/Makefile 2011-03-15 02:20:32.000000000 +0100 > +++ linux-2.6.38-patch/arch/arm/mach-at91/Makefile 2011-03-16 09:19:40.000000000 +0100 > @@ -40,6 +40,7 @@ obj-$(CONFIG_MACH_ECO920) += board-eco92 > > # AT91SAM9260 board-specific support > obj-$(CONFIG_MACH_AT91SAM9260EK) += board-sam9260ek.o > +obj-$(CONFIG_MACH_CDU) += board-cdu.o > obj-$(CONFIG_MACH_CAM60) += board-cam60.o > obj-$(CONFIG_MACH_SAM9_L9260) += board-sam9-l9260.o > obj-$(CONFIG_MACH_USB_A9260) += board-usb-a9260.o > diff -uprN -X linux-2.6.38-vanilla/Documentation/dontdiff linux-2.6.38-vanilla/MAINTAINERS linux-2.6.38-patch/MAINTAINERS > --- linux-2.6.38-vanilla/MAINTAINERS 2011-03-15 02:20:32.000000000 +0100 > +++ linux-2.6.38-patch/MAINTAINERS 2011-03-25 08:37:56.693049978 +0100 > @@ -1640,6 +1640,13 @@ F: include/linux/can/error.h > F: include/linux/can/netlink.h > F: include/linux/can/platform/ > > +CDU BOARD > +M: Jiri Prchal <jiri.prchal@aksignal.cz> > +L: linux-arch at vger.kernel.org > +W: http://www.linux4sam.org > +S: Supported > +F: arch/arm/mach-at91/ > + > CELL BROADBAND ENGINE ARCHITECTURE > M: Arnd Bergmann <arnd@arndb.de> > L: linuxppc-dev at lists.ozlabs.org > Soubory linux-2.6.38-vanilla/scripts/recordmcount a linux-2.6.38-patch/scripts/recordmcount jsou r??zn?? -- Bluewater Systems Ltd - ARM Technology Solution Centre Ryan Mallon 5 Amuri Park, 404 Barbadoes St ryan at bluewatersys.com PO Box 13 889, Christchurch 8013 http://www.bluewatersys.com New Zealand Phone: +64 3 3779127 Freecall: Australia 1800 148 751 Fax: +64 3 3779135 USA 1800 261 2934 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] mmc: Add MMC_PROGRESS_* 2011-03-24 6:54 [PATCH 0/2] mmc: zboot helpers Simon Horman 2011-03-24 6:54 ` [PATCH 1/2] mmc, ARM: Rename SuperH Mobile ARM " Simon Horman @ 2011-03-24 6:54 ` Simon Horman 1 sibling, 0 replies; 8+ messages in thread From: Simon Horman @ 2011-03-24 6:54 UTC (permalink / raw) To: linux-arm-kernel This is my second attempt to make this enum generally available. The first attempt added MMCIF_PROGRESS_* to include/linux/mmc/sh_mmcif.h. However this is not sufficiently generic as the enum will be used by SDHI boot code. Signed-off-by: Simon Horman <horms@verge.net.au> --- This patch depends on mmc, ARM: Rename SuperH Mobile ARM zboot helpers v2 * Include linux/mmc/boot.h in arch/sh/boot/romimage/mmcif-sh7724.c and arch/arm/boot/compressed/mmcif-sh7372.c to avoid introducing a build failure --- arch/arm/boot/compressed/mmcif-sh7372.c | 9 +++++---- arch/sh/boot/romimage/mmcif-sh7724.c | 9 +++++---- include/linux/mmc/boot.h | 7 +++++++ include/linux/mmc/sh_mmcif.h | 3 --- 4 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 include/linux/mmc/boot.h diff --git a/arch/arm/boot/compressed/mmcif-sh7372.c b/arch/arm/boot/compressed/mmcif-sh7372.c index 28bcf3c..7453c83 100644 --- a/arch/arm/boot/compressed/mmcif-sh7372.c +++ b/arch/arm/boot/compressed/mmcif-sh7372.c @@ -10,6 +10,7 @@ */ #include <linux/mmc/sh_mmcif.h> +#include <linux/mmc/boot.h> #include <mach/mmc.h> #define MMCIF_BASE (void __iomem *)0xe6bd0000 @@ -42,7 +43,7 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) { mmc_init_progress(); - mmc_update_progress(MMCIF_PROGRESS_ENTER); + mmc_update_progress(MMC_PROGRESS_ENTER); /* Initialise MMC * registers: PORT84CR-PORT92CR @@ -68,12 +69,12 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) /* Enable clock to MMC hardware block */ __raw_writel(__raw_readl(SMSTPCR3) & ~(1 << 12), SMSTPCR3); - mmc_update_progress(MMCIF_PROGRESS_INIT); + mmc_update_progress(MMC_PROGRESS_INIT); /* setup MMCIF hardware */ sh_mmcif_boot_init(MMCIF_BASE); - mmc_update_progress(MMCIF_PROGRESS_LOAD); + mmc_update_progress(MMC_PROGRESS_LOAD); /* load kernel via MMCIF interface */ sh_mmcif_boot_do_read(MMCIF_BASE, 2, /* Kernel is@block 2 */ @@ -83,5 +84,5 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long len) /* Disable clock to MMC hardware block */ __raw_writel(__raw_readl(SMSTPCR3) & (1 << 12), SMSTPCR3); - mmc_update_progress(MMCIF_PROGRESS_DONE); + mmc_update_progress(MMC_PROGRESS_DONE); } diff --git a/arch/sh/boot/romimage/mmcif-sh7724.c b/arch/sh/boot/romimage/mmcif-sh7724.c index c84e783..16b1225 100644 --- a/arch/sh/boot/romimage/mmcif-sh7724.c +++ b/arch/sh/boot/romimage/mmcif-sh7724.c @@ -9,6 +9,7 @@ */ #include <linux/mmc/sh_mmcif.h> +#include <linux/mmc/boot.h> #include <mach/romimage.h> #define MMCIF_BASE (void __iomem *)0xa4ca0000 @@ -29,7 +30,7 @@ */ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes) { - mmcif_update_progress(MMCIF_PROGRESS_ENTER); + mmcif_update_progress(MMC_PROGRESS_ENTER); /* enable clock to the MMCIF hardware block */ __raw_writel(__raw_readl(MSTPCR2) & ~0x20000000, MSTPCR2); @@ -52,12 +53,12 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes) /* high drive capability for MMC pins */ __raw_writew(__raw_readw(DRVCRA) | 0x3000, DRVCRA); - mmcif_update_progress(MMCIF_PROGRESS_INIT); + mmcif_update_progress(MMC_PROGRESS_INIT); /* setup MMCIF hardware */ sh_mmcif_boot_init(MMCIF_BASE); - mmcif_update_progress(MMCIF_PROGRESS_LOAD); + mmcif_update_progress(MMC_PROGRESS_LOAD); /* load kernel via MMCIF interface */ sh_mmcif_boot_do_read(MMCIF_BASE, 512, @@ -67,5 +68,5 @@ asmlinkage void mmcif_loader(unsigned char *buf, unsigned long no_bytes) /* disable clock to the MMCIF hardware block */ __raw_writel(__raw_readl(MSTPCR2) | 0x20000000, MSTPCR2); - mmcif_update_progress(MMCIF_PROGRESS_DONE); + mmcif_update_progress(MMC_PROGRESS_DONE); } diff --git a/include/linux/mmc/boot.h b/include/linux/mmc/boot.h new file mode 100644 index 0000000..39d787c --- /dev/null +++ b/include/linux/mmc/boot.h @@ -0,0 +1,7 @@ +#ifndef MMC_BOOT_H +#define MMC_BOOT_H + +enum { MMC_PROGRESS_ENTER, MMC_PROGRESS_INIT, + MMC_PROGRESS_LOAD, MMC_PROGRESS_DONE }; + +#endif diff --git a/include/linux/mmc/sh_mmcif.h b/include/linux/mmc/sh_mmcif.h index 38d3930..9eb9b4b 100644 --- a/include/linux/mmc/sh_mmcif.h +++ b/include/linux/mmc/sh_mmcif.h @@ -104,9 +104,6 @@ static inline void sh_mmcif_writel(void __iomem *addr, int reg, u32 val) #define SH_MMCIF_BBS 512 /* boot block size */ -enum { MMCIF_PROGRESS_ENTER, MMCIF_PROGRESS_INIT, - MMCIF_PROGRESS_LOAD, MMCIF_PROGRESS_DONE }; - static inline void sh_mmcif_boot_cmd_send(void __iomem *base, unsigned long cmd, unsigned long arg) { -- 1.7.2.3 ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-04-04 20:25 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-24 6:54 [PATCH 0/2] mmc: zboot helpers Simon Horman
2011-03-24 6:54 ` [PATCH 1/2] mmc, ARM: Rename SuperH Mobile ARM " Simon Horman
2011-03-24 9:10 ` [PATCH] mmc, AT91: fix init fequency problem Prchal Jiří
[not found] ` <4D8B2068.60402@aksignal.cz>
[not found] ` <4D8BA47B.8050904@bluewatersys.com>
2011-04-04 9:10 ` [PATCH] ARCH arm: adding new board: CDU Prchal Jiří
2011-04-04 9:16 ` Russell King - ARM Linux
2011-04-04 9:24 ` Russell King - ARM Linux
2011-04-04 20:25 ` Ryan Mallon
2011-03-24 6:54 ` [PATCH 2/2] mmc: Add MMC_PROGRESS_* Simon Horman
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).