* [PATCH 16/19] ARM: move iotable mappings within the vmalloc region
From: Russell King - ARM Linux @ 2011-09-19 11:20 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <alpine.LFD.2.00.1109190013120.20358@xanadu.home>
On Mon, Sep 19, 2011 at 12:18:09AM -0400, Nicolas Pitre wrote:
> OK, here we go with version 2:
Looks fine, thanks.
^ permalink raw reply
* [PATCH v2] dmaengine: add CSR SiRFprimaII DMAC driver
From: Vinod Koul @ 2011-09-19 11:14 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <5EB3BFCD089AD643B9BB63439F5FD5E9840F3B18@SHAASIEXM01.ASIA.ROOT.PRI>
On Mon, 2011-09-19 at 09:56 +0000, Barry Song wrote:
> > > > Not sure why you support this, there seem to be no DMA_SLAVE
> support in
> > > > this version ate least
> > >
> > > Not. I support dma_slave. But I have no prep_slave_sg function
> since I can
> > use the gen xfer to replace it.
> > Yes thats okay...
> >
> > Then I have questions on genxfer function...
> > where are you copying either src or dstn_start address, you seem to
> > completely ignore them?
>
> Since I only support memory->device or device ->memory, and channel
> number is fixed to every device. Then I actually don't care device
> address at all. Either src or dst is fixed to the device's address.
peripheral address can be fixed, not the memory, where do you copy the
memory address?
>
> >
> > Do you support only slave transfers or M2M as well for this driver?
> > If only slave you might want to check if dma_config_slave is set for
> > this channel or not.
>
> I support only slave transfer. Actually I have dma_config_slave. do
> you mean I need to check whether slave config cmd is really called
> before executing dma?
Yes
--
~Vinod
^ permalink raw reply
* [PATCH] CLKDEV: Reduce scaning time
From: Russell King - ARM Linux @ 2011-09-19 11:13 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316182452-14061-1-git-send-email-jhbird.choi@gmail.com>
On Fri, Sep 16, 2011 at 11:14:12PM +0900, Jonghwan Choi wrote:
> If ether dev_id or con_id is NULL. it is not necessary that match point
> should be 3. it just takes a long time.
clk_get() shouldn't be used in fast paths anyway - drivers should 'get'
the clock and hold a reference to the clock while they're using it and
all the time that they're needing it to be enabled.
I think I'd like to keep the code as-is to discourage its use in fast
paths. In any case:
> @@ -52,10 +58,10 @@ static struct clk_lookup *clk_find(const char *dev_id, const char *con_id)
>
> if (match > best) {
> cl = p;
> - if (match != 3)
> - best = match;
> - else
> + if (match == point)
> break;
> + else
> + best = match;
Why not just change the '3' to be 'point' here - why restructure the code?
^ permalink raw reply
* [PATCH 1/7 (RE-SEND)] gpio/s3c24xx: move gpio driver into drivers/gpio/
From: Kukjin Kim @ 2011-09-19 11:13 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1314707249-12241-2-git-send-email-kgene.kim@samsung.com>
Kukjin Kim wrote:
>
(snip)...
Hi Grant,
I didn't get any comments on this series, gpio-samsung patches for
consolidation of Samsung gpiolib. Please let me know whether this is ok to
you or not. And I think, if you're ok, this should be sent to upstream via
both gpio tree and arm(samsung) tree to avoid conflicts...
As a note, following is its status...
Kukjin Kim (9):
ARM: SAMSUNG: Move map header file into plat-samsung
gpio/s3c24xx: move gpio driver into drivers/gpio/
gpio/s3c64xx: move gpio driver into drivers/gpio/
gpio/s5p64x0: move gpio driver into drivers/gpio/
gpio/samsung: Remove useless old Samsung related GPIO drivers
gpio/samsung: Added gpio-samsung.c to support Samsung GPIOs
ARM: SAMSUNG: Update the name of regarding Samsung GPIO
ARM: SAMSUNG: Remove useless Samsung GPIO related CONFIGs
Merge branch 'next/topic-plat-samsung-1' into next/topic-gpio-samsung
arch/arm/Kconfig | 3 -
arch/arm/mach-exynos4/include/mach/pm-core.h | 2 +-
arch/arm/mach-s3c2410/Kconfig | 7 -
arch/arm/mach-s3c2410/Makefile | 1 -
arch/arm/mach-s3c2410/include/mach/gpio-fns.h | 99 +-
arch/arm/mach-s3c2410/include/mach/gpio-track.h | 6 +-
arch/arm/mach-s3c2410/include/mach/map.h | 52 +-
arch/arm/mach-s3c2410/include/mach/pm-core.h | 2 +-
arch/arm/mach-s3c2410/s3c2410.c | 4 +-
arch/arm/mach-s3c2412/Kconfig | 1 -
arch/arm/mach-s3c2412/Makefile | 1 -
arch/arm/mach-s3c2412/gpio.c | 2 +-
arch/arm/mach-s3c2416/Kconfig | 1 -
arch/arm/mach-s3c2416/s3c2416.c | 4 +-
arch/arm/mach-s3c2440/Kconfig | 4 -
arch/arm/mach-s3c2440/s3c2440.c | 4 +-
arch/arm/mach-s3c2440/s3c2442.c | 4 +-
arch/arm/mach-s3c2443/Kconfig | 1 -
arch/arm/mach-s3c2443/s3c2443.c | 4 +-
arch/arm/mach-s3c64xx/Makefile | 1 -
arch/arm/mach-s3c64xx/gpiolib.c | 290 ---
arch/arm/mach-s3c64xx/include/mach/map.h | 9 +-
arch/arm/mach-s3c64xx/include/mach/pm-core.h | 2 +-
arch/arm/mach-s5p64x0/Makefile | 2 +-
arch/arm/mach-s5p64x0/gpiolib.c | 511 ----
arch/arm/mach-s5pv210/include/mach/pm-core.h | 2 +-
arch/arm/plat-s3c24xx/Kconfig | 1 -
arch/arm/plat-s3c24xx/Makefile | 2 -
arch/arm/plat-s3c24xx/gpio.c | 96 -
arch/arm/plat-s3c24xx/gpiolib.c | 229 --
arch/arm/plat-s3c24xx/include/plat/map.h | 100 -
arch/arm/plat-s5p/Kconfig | 3 -
arch/arm/plat-s5p/irq-gpioint.c | 10 +-
arch/arm/plat-samsung/Kconfig | 27 -
arch/arm/plat-samsung/Makefile | 2 -
arch/arm/plat-samsung/gpio-config.c | 431 ----
arch/arm/plat-samsung/gpio.c | 167 --
.../plat-samsung/include/plat/gpio-cfg-helpers.h | 172 +-
arch/arm/plat-samsung/include/plat/gpio-cfg.h | 34 +-
arch/arm/plat-samsung/include/plat/gpio-core.h | 97 +-
arch/arm/plat-samsung/include/plat/gpio-fns.h | 98 +
arch/arm/plat-samsung/include/plat/map-s3c.h | 84 +
.../include/plat/map-s5p.h | 6 +-
arch/arm/plat-samsung/include/plat/pm.h | 10 +-
arch/arm/plat-samsung/pm-gpio.c | 72 +-
arch/arm/plat-samsung/pm.c | 6 +-
drivers/gpio/Kconfig | 16 -
drivers/gpio/Makefile | 7 +-
drivers/gpio/gpio-exynos4.c | 385 ---
drivers/gpio/gpio-plat-samsung.c | 205 --
drivers/gpio/gpio-s5pc100.c | 354 ---
drivers/gpio/gpio-s5pv210.c | 287 ---
drivers/gpio/gpio-samsung.c | 2686
++++++++++++++++++++
53 files changed, 3072 insertions(+), 3534 deletions(-)
delete mode 100644 arch/arm/mach-s3c64xx/gpiolib.c
delete mode 100644 arch/arm/mach-s5p64x0/gpiolib.c
delete mode 100644 arch/arm/plat-s3c24xx/gpio.c
delete mode 100644 arch/arm/plat-s3c24xx/gpiolib.c
delete mode 100644 arch/arm/plat-s3c24xx/include/plat/map.h
delete mode 100644 arch/arm/plat-samsung/gpio-config.c
delete mode 100644 arch/arm/plat-samsung/gpio.c
create mode 100644 arch/arm/plat-samsung/include/plat/gpio-fns.h
create mode 100644 arch/arm/plat-samsung/include/plat/map-s3c.h
rename arch/arm/{plat-s5p => plat-samsung}/include/plat/map-s5p.h (94%)
delete mode 100644 drivers/gpio/gpio-exynos4.c
delete mode 100644 drivers/gpio/gpio-plat-samsung.c
delete mode 100644 drivers/gpio/gpio-s5pc100.c
delete mode 100644 drivers/gpio/gpio-s5pv210.c
create mode 100644 drivers/gpio/gpio-samsung.c
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply
* [PATCH] pata-generic/of: Make probing via device tree non-powerpc-specific
From: Dave Martin @ 2011-09-19 10:56 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316427795.3014.13.camel@hornet.cambridge.arm.com>
On Mon, Sep 19, 2011 at 11:23 AM, Pawel Moll <pawel.moll@arm.com> wrote:
>> > This may not be the correct way to support the CF slot on Versatile
>> > Express - it depends whether the CF slot on VE supports just CF
>> > memory cards or whether it can take any CF card.
>> >
>> > If the latter, then what may be inserted could be a CF network card,
>> > and that means it's probably wrong to tell the kernel that what's
>> > there is a PATA interface.
>>
>> Interesting point. ?I don't know whether we've tried plugging anything
>> else in...
>>
>> Pawel, can you comment?
>
> VE officially supports CF memory cards only (Arnd already referenced the
> spec). So in this case CF == PATA.
OK, Il'l stick with this for now.
Cheers
---Dave
^ permalink raw reply
* [PATCH v2 4/4] ARM: mx53_ard: Add flexcan support
From: Sascha Hauer @ 2011-09-19 10:38 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1315598408-29563-4-git-send-email-rogerio.pimentel@freescale.com>
On Fri, Sep 09, 2011 at 05:00:08PM -0300, Rogerio Pimentel wrote:
> Adding flexcan support on i.MX53 ARD
>
> Signed-off-by: Rogerio Pimentel <rogerio.pimentel@freescale.com>
> ---
> Changes since v1:
> Changed pull-up pad config from iomux-mx53.h to board-mx53_ard.c
> Created a function to request CAN pins
> If pins cannot be requested, flexcan will not be registered
> arch/arm/mach-mx5/Kconfig | 1 +
> arch/arm/mach-mx5/board-mx53_ard.c | 37 ++++++++++++++++++++++++++++++++++++
> 2 files changed, 38 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig
> index fb4c503..7c911d1 100644
> --- a/arch/arm/mach-mx5/Kconfig
> +++ b/arch/arm/mach-mx5/Kconfig
> @@ -205,6 +205,7 @@ config MACH_MX53_LOCO
> config MACH_MX53_ARD
> bool "Support MX53 ARD platforms"
> select SOC_IMX53
> + select IMX_HAVE_PLATFORM_FLEXCAN
> select IMX_HAVE_PLATFORM_IMX2_WDT
> select IMX_HAVE_PLATFORM_IMX_I2C
> select IMX_HAVE_PLATFORM_IMX_UART
> diff --git a/arch/arm/mach-mx5/board-mx53_ard.c b/arch/arm/mach-mx5/board-mx53_ard.c
> index 76a67c4..3b5d77e 100644
> --- a/arch/arm/mach-mx5/board-mx53_ard.c
> +++ b/arch/arm/mach-mx5/board-mx53_ard.c
> @@ -44,6 +44,8 @@
> #define ARD_BACK IMX_GPIO_NR(5, 11)
> #define ARD_PROG IMX_GPIO_NR(5, 12)
> #define ARD_VOLUMEUP IMX_GPIO_NR(5, 13)
> +#define ARD_CAN_EN IMX_GPIO_NR(7, 6)
> +#define ARD_CAN_STBY IMX_GPIO_NR(4, 15)
>
> static iomux_v3_cfg_t mx53_ard_pads[] = {
> /* UART1 */
> @@ -102,6 +104,13 @@ static iomux_v3_cfg_t mx53_ard_pads[] = {
> MX53_PAD_DISP0_DAT18__GPIO5_12, /* prog */
> MX53_PAD_DISP0_DAT19__GPIO5_13, /* vol up */
> MX53_PAD_GPIO_10__GPIO4_0, /* vol down */
> + /* CAN */
> + MX53_PAD_KEY_COL2__CAN1_TXCAN | PAD_CTL_PUS_100K_UP,
> + MX53_PAD_KEY_ROW2__CAN1_RXCAN,
> + MX53_PAD_PATA_RESET_B__CAN2_TXCAN | PAD_CTL_PUS_100K_UP,
> + MX53_PAD_PATA_IORDY__CAN2_RXCAN,
> + MX53_PAD_PATA_DA_0__GPIO7_6,
> + MX53_PAD_KEY_ROW4__GPIO4_15,
> };
>
> #define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \
> @@ -181,6 +190,25 @@ static void __init mx53_ard_io_init(void)
> gpio_direction_output(ARD_I2CPORTEXP_B, 1);
> }
>
> +static int __init mx53_ard_flexcan_init(void)
> +{
> + int ret;
> +
> + ret = gpio_request_one(ARD_CAN_EN, GPIOF_OUT_INIT_HIGH, "can-en");
> + if (ret) {
> + pr_err("Cannot request ARD_CAN_EN pin: %d\n", ret);
> + return ret;
> + }
> +
> + ret = gpio_request_one(ARD_CAN_STBY, GPIOF_OUT_INIT_HIGH, "can-stby");
> + if (ret) {
> + pr_err("Cannot request ARD_CAN_STBY pin: %d\n", ret);
> + return ret;
> + }
> +
> + return 0;
> +}
How about using gpio_request_array instead? Also, we could move
ARD_ETHERNET_INT_B and ARD_I2CPORTEXP_B into this array aswell so that
we do not request all gpios in device specific functions, but have
one board specific gpio request function instead.
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
* [GIT PULL] Samsung boards for v3.2
From: Kukjin Kim @ 2011-09-19 10:37 UTC (permalink / raw)
To: linux-arm-kernel
Hi Arnd,
This is for Samsung boards for v3.2.
Please pull from:
git://github.com/kgene/linux-samsung.git next-samsung-board
As you see, the next-samsung-board includes new board, SMDK4212. Of course
to support new SoC, EXYNOS4212 is required for it but current
arch/arm/mach-exynos4 (ARCH_EXYNOS4) can support it so I merged it into
next-samsung-board not next-samsung-soc and to support handling of cupid and
rev. in Samsung stuff for it. As I remember, you said -soc branch of arm-soc
is for adding new architecture like arch/arm/mach-xxxx.
As a note, this includes samsung-fixes-2 which has been already pulled in
your tree too.
If any problems, please let me know.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
The following changes since commit b6fd41e29dea9c6753b1843a77e50433e6123bcb:
Linux 3.1-rc6 (2011-09-12 14:02:02 -0700)
are available in the git repository at:
git://github.com/kgene/linux-samsung.git next-samsung-board
Ajay Kumar (1):
ARM: SAMSUNG: Fix mask value for S5P64X0 CPU IDs
Banajit Goswami (1):
ARM: S3C64XX: Remove un-used code backlight code on SMDK6410
Changhwan Youn (1):
ARM: EXYNOS4: restart clocksource while system resumes
JeongHyeon Kim (1):
ARM: EXYNOS4: Add support for ORIGEN board
Jonghwan Choi (2):
ARM: EXYNOS4: Fix wrong pll type for vpll
ARM: EXYNOS4: Add support PM for EXYNOS4212
Kukjin Kim (14):
ARM: EXYNOS4: Turn the mach-smdkc210.c into mach-smdv310.c
ARM: SAMSUNG: Add support for detecting CPU at runtime
ARM: S5P64X0: Use soc_is_s5p64x0() to distinguish cpu at runtime
ARM: SAMSUNG: Add support for handling of cpu revision
ARM: EXYNOS4: Use samsung_rev() to distinguish silicon revision
ARM: EXYNOS4: Fix return type of local_timer_setup()
ARM: EXYNOS4: Fix routing timer interrupt to offline CPU
ARM: SAMSUNG: fix to prevent declaring duplicated
Merge branch 'next/topic-cpuid-rev' into next/topic-add-exynos4212
Merge branch 'next/topic-cleanup-smdkv310' into
next/topic-add-exynos4212
ARM: EXYNOS4: Add support new EXYNOS4212 SoC
ARM: EXYNOS4: Add support clock for EXYNOS4212
ARM: EXYNOS4: Add support SMDK4212 Board
Merge branch 'next-samsung-board-v3.1' into next-samsung-board
Marek Szyprowski (1):
ARM: SAMSUNG: fix watchdog reset issue with clk_get()
Mark Brown (1):
ARM: SAMSUNG: Fix mask for S3C64xx CPU IDs
Thomas Abraham (1):
ARM: EXYNOS4: fix incorrect pad configuration for keypad row lines
arch/arm/configs/exynos4_defconfig | 1 +
arch/arm/mach-exynos4/Kconfig | 57 +++-
arch/arm/mach-exynos4/Makefile | 11 +-
arch/arm/mach-exynos4/clock-exynos4210.c | 139 +++++++++
arch/arm/mach-exynos4/clock-exynos4212.c | 118 ++++++++
arch/arm/mach-exynos4/clock.c | 218 +++++++++-----
arch/arm/mach-exynos4/cpu.c | 40 +++-
arch/arm/mach-exynos4/include/mach/exynos4-clock.h | 43 +++
arch/arm/mach-exynos4/include/mach/map.h | 3 +-
arch/arm/mach-exynos4/include/mach/regs-clock.h | 54 +++--
arch/arm/mach-exynos4/mach-origen.c | 108 +++++++
arch/arm/mach-exynos4/mach-smdk4212.c | 292
++++++++++++++++++
arch/arm/mach-exynos4/mach-smdkc210.c | 309
--------------------
arch/arm/mach-exynos4/mach-smdkv310.c | 78 +++++
arch/arm/mach-exynos4/mct.c | 10 +-
arch/arm/mach-exynos4/platsmp.c | 10 +-
arch/arm/mach-exynos4/pm.c | 79 +-----
arch/arm/mach-exynos4/setup-keypad.c | 11 +-
arch/arm/mach-s3c64xx/cpu.c | 22 +-
arch/arm/mach-s3c64xx/mach-smdk6410.c | 39 ---
arch/arm/mach-s5p64x0/dev-spi.c | 8 +-
arch/arm/mach-s5p64x0/dma.c | 7 +-
arch/arm/mach-s5p64x0/gpiolib.c | 7 +-
arch/arm/mach-s5p64x0/irq-eint.c | 3 +-
arch/arm/plat-s3c24xx/cpu.c | 9 +-
arch/arm/plat-s5p/cpu.c | 37 ++-
arch/arm/plat-s5p/include/plat/exynos4.h | 5 +-
arch/arm/plat-s5p/include/plat/pll.h | 55 ++++-
arch/arm/plat-samsung/Makefile | 2 +-
arch/arm/plat-samsung/clock.c | 11 +
arch/arm/plat-samsung/cpu.c | 58 ++++
arch/arm/plat-samsung/include/plat/clock.h | 8 +
arch/arm/plat-samsung/include/plat/cpu.h | 105 +++++++-
.../arm/plat-samsung/include/plat/watchdog-reset.h | 10 +-
34 files changed, 1360 insertions(+), 607 deletions(-)
create mode 100644 arch/arm/mach-exynos4/clock-exynos4210.c
create mode 100644 arch/arm/mach-exynos4/clock-exynos4212.c
create mode 100644 arch/arm/mach-exynos4/include/mach/exynos4-clock.h
create mode 100644 arch/arm/mach-exynos4/mach-origen.c
create mode 100644 arch/arm/mach-exynos4/mach-smdk4212.c
delete mode 100644 arch/arm/mach-exynos4/mach-smdkc210.c
create mode 100644 arch/arm/plat-samsung/cpu.c
^ permalink raw reply
* [GIT PULL] Samsung cleanup for v3.2
From: Kukjin Kim @ 2011-09-19 10:36 UTC (permalink / raw)
To: linux-arm-kernel
Hi Arnd,
This is Samsung cleanup for v3.2.
Please pull from:
git://github.com/kgene/linux-samsung.git next-samsung-cleanup
If any problems, please let me know.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
The following changes since commit b6fd41e29dea9c6753b1843a77e50433e6123bcb:
Linux 3.1-rc6 (2011-09-12 14:02:02 -0700)
are available in the git repository at:
git://github.com/kgene/linux-samsung.git next-samsung-cleanup
Abhilash Kesavan (1):
ARM: S5PV210: Remove unnecessary symbol for PM
Banajit Goswami (1):
ARM: SAMSUNG: Consolidate common function to set SDHCI plat data
Heiko Stuebner (2):
ARM: S3C24XX: Remove hw_addr from s3c24xx dma channel declarations
ARM: S3C24XX: Remove s3c24xx_dma_addr definition
Jonghwan Choi (1):
ARM: S5P: Remove duplicate kdiv calculation
Kukjin Kim (6):
ARM: EXYNOS4: Turn the mach-smdkc210.c into mach-smdv310.c
Merge branch 'next/topic-cleanup-dma' into next-samsung-cleanup
ARM: S3C24XX: remove unused gpio codes
Merge branch 'next/topic-cleanup-smdkv310' into next-samsung-cleanup
ARM: SAMSUNG: Move map header file into plat-samsung
Merge branch 'next/topic-plat-samsung-1' into next-samsung-cleanup
Mark Brown (1):
ARM: S3C64XX: Remove unused CPU devices for Cragganmore
Naveen Krishna Chatradhi (1):
ARM: SAMSUNG: Remove unnecessary duplication of plat_data on TSADC
arch/arm/mach-exynos4/Kconfig | 17 +-
arch/arm/mach-exynos4/Makefile | 2 +-
arch/arm/mach-exynos4/mach-smdkc210.c | 309
--------------------
arch/arm/mach-exynos4/mach-smdkv310.c | 78 +++++
arch/arm/mach-s3c2410/Kconfig | 6 -
arch/arm/mach-s3c2410/Makefile | 1 -
arch/arm/mach-s3c2410/dma.c | 14 -
arch/arm/mach-s3c2410/gpio.c | 72 -----
arch/arm/mach-s3c2410/include/mach/map.h | 52 +++-
arch/arm/mach-s3c2412/Kconfig | 1 -
arch/arm/mach-s3c2412/Makefile | 1 -
arch/arm/mach-s3c2412/dma.c | 18 --
arch/arm/mach-s3c2412/gpio.c | 62 ----
arch/arm/mach-s3c2440/Kconfig | 2 -
arch/arm/mach-s3c2440/dma.c | 17 -
arch/arm/mach-s3c2443/dma.c | 27 --
arch/arm/mach-s3c64xx/include/mach/map.h | 9 +-
arch/arm/mach-s3c64xx/mach-crag6410.c | 3 -
arch/arm/mach-s3c64xx/mach-mini6410.c | 8 +-
arch/arm/mach-s3c64xx/mach-real6410.c | 8 +-
arch/arm/mach-s3c64xx/mach-smdk6410.c | 8 +-
arch/arm/mach-s5p64x0/mach-smdk6440.c | 8 +-
arch/arm/mach-s5p64x0/mach-smdk6450.c | 8 +-
arch/arm/mach-s5pc100/mach-smdkc100.c | 8 +-
arch/arm/mach-s5pv210/Kconfig | 6 -
arch/arm/mach-s5pv210/Makefile | 2 +-
arch/arm/mach-s5pv210/mach-smdkv210.c | 8 +-
arch/arm/plat-s3c24xx/include/plat/map.h | 100 -------
arch/arm/plat-s5p/include/plat/pll.h | 1 -
arch/arm/plat-samsung/dev-hsmmc.c | 19 +--
arch/arm/plat-samsung/dev-hsmmc1.c | 19 +--
arch/arm/plat-samsung/dev-hsmmc2.c | 19 +--
arch/arm/plat-samsung/dev-hsmmc3.c | 19 +--
arch/arm/plat-samsung/dev-ts.c | 9 +
arch/arm/plat-samsung/include/plat/dma-s3c24xx.h | 6 -
arch/arm/plat-samsung/include/plat/map-s3c.h | 84 ++++++
.../include/plat/map-s5p.h | 6 +-
arch/arm/plat-samsung/include/plat/sdhci.h | 7 +
arch/arm/plat-samsung/platformdata.c | 22 ++
39 files changed, 264 insertions(+), 802 deletions(-)
delete mode 100644 arch/arm/mach-exynos4/mach-smdkc210.c
delete mode 100644 arch/arm/mach-s3c2410/gpio.c
delete mode 100644 arch/arm/mach-s3c2412/gpio.c
delete mode 100644 arch/arm/plat-s3c24xx/include/plat/map.h
create mode 100644 arch/arm/plat-samsung/include/plat/map-s3c.h
rename arch/arm/{plat-s5p => plat-samsung}/include/plat/map-s5p.h (94%)
^ permalink raw reply
* [PATCH v8 00/16] To use DMA generic APIs for Samsung DMA
From: Jassi Brar @ 2011-09-19 10:36 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316401174.21359.3.camel@vkoul-udesk3>
On Mon, Sep 19, 2011 at 8:29 AM, Vinod Koul <vinod.koul@intel.com> wrote:
>> >> The changelog for [PATCH v8 04/16] is misleading - we don't need any
>> >> modification for the reason mentioned in changelog. But the modification
>> >> has positive side-effect of preventing callbacks during terminate_all which
>> >> is no way understood from the changelog. So I would like to changelog
>> >> corrected.
>> > I thought change log was correct in depicting what patch does and Boojin
>> > had replied.... I will check again...
>>
>> I didn't reply because I ran out of ways to explain the same thing in
>> different words.
> I checked again the patch, change log and your comments.
> I agree with current change log, and also your observation is right but
> that is just a side effect,
It is not "just a side effect", it is "the only tangible effect".
If it were not for this 'side-effect', the patch would be _purely_ cosmetic
rearrangement.
The _only_ difference seen would be by clients who would no longer
have callbacks when they issue terminate_all.
And I don't think that is expected at all reading the changelog in current form.
> So no changes to this and I a ready to merge it to my next in a day or
> two...
I guess the world isn't gonna come to grinding halt with this changelog.
Please feel free to do what you think is the best.
^ permalink raw reply
* [PATCH v2 1/4] ARM: mx53: Add pads for flexcan pins
From: Sascha Hauer @ 2011-09-19 10:33 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1315598408-29563-1-git-send-email-rogerio.pimentel@freescale.com>
On Fri, Sep 09, 2011 at 05:00:05PM -0300, Rogerio Pimentel wrote:
> Adding pads for flexcan on i.MX53
>
> Signed-off-by: Rogerio Pimentel <rogerio.pimentel@freescale.com>
Can you please rebase this onto:
git://git.pengutronix.de/git/imx/linux-2.6.git imx-cleanup
Sascha
> ---
> Changes since v1:
> Assigned only one pad config for CAN pins
> arch/arm/plat-mxc/include/mach/iomux-mx53.h | 22 ++++++++++++----------
> 1 files changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx53.h b/arch/arm/plat-mxc/include/mach/iomux-mx53.h
> index 5408fd1..d890c9c 100644
> --- a/arch/arm/plat-mxc/include/mach/iomux-mx53.h
> +++ b/arch/arm/plat-mxc/include/mach/iomux-mx53.h
> @@ -33,6 +33,8 @@
> #define PAD_CTRL_I2C (PAD_CTL_SRE_FAST | PAD_CTL_ODE | PAD_CTL_PKE | \
> PAD_CTL_PUE | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP \
> | PAD_CTL_HYS)
> +#define MX53_CAN_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_DSE_HIGH | \
> + PAD_CTL_HYS)
>
> #define _MX53_PAD_GPIO_19__KPP_COL_5 IOMUX_PAD(0x348, 0x20, 0, 0x840, 0, 0)
> #define _MX53_PAD_GPIO_19__GPIO4_5 IOMUX_PAD(0x348, 0x20, 1, 0x0, 0, 0)
> @@ -1243,14 +1245,14 @@
> #define MX53_PAD_KEY_ROW1__USBPHY1_RXVALID (_MX53_PAD_KEY_ROW1__USBPHY1_RXVALID | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_COL2__KPP_COL_2 (_MX53_PAD_KEY_COL2__KPP_COL_2 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_COL2__GPIO4_10 (_MX53_PAD_KEY_COL2__GPIO4_10 | MUX_PAD_CTRL(NO_PAD_CTRL))
> -#define MX53_PAD_KEY_COL2__CAN1_TXCAN (_MX53_PAD_KEY_COL2__CAN1_TXCAN | MUX_PAD_CTRL(NO_PAD_CTRL))
> +#define MX53_PAD_KEY_COL2__CAN1_TXCAN (_MX53_PAD_KEY_COL2__CAN1_TXCAN | MUX_PAD_CTRL(MX53_CAN_PAD_CTRL))
> #define MX53_PAD_KEY_COL2__FEC_MDIO (_MX53_PAD_KEY_COL2__FEC_MDIO | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_COL2__ECSPI1_SS1 (_MX53_PAD_KEY_COL2__ECSPI1_SS1 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_COL2__FEC_RDATA_2 (_MX53_PAD_KEY_COL2__FEC_RDATA_2 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_COL2__USBPHY1_RXACTIVE (_MX53_PAD_KEY_COL2__USBPHY1_RXACTIVE | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_ROW2__KPP_ROW_2 (_MX53_PAD_KEY_ROW2__KPP_ROW_2 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_ROW2__GPIO4_11 (_MX53_PAD_KEY_ROW2__GPIO4_11 | MUX_PAD_CTRL(NO_PAD_CTRL))
> -#define MX53_PAD_KEY_ROW2__CAN1_RXCAN (_MX53_PAD_KEY_ROW2__CAN1_RXCAN | MUX_PAD_CTRL(NO_PAD_CTRL))
> +#define MX53_PAD_KEY_ROW2__CAN1_RXCAN (_MX53_PAD_KEY_ROW2__CAN1_RXCAN | MUX_PAD_CTRL(MX53_CAN_PAD_CTRL))
> #define MX53_PAD_KEY_ROW2__FEC_MDC (_MX53_PAD_KEY_ROW2__FEC_MDC | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_ROW2__ECSPI1_SS2 (_MX53_PAD_KEY_ROW2__ECSPI1_SS2 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_ROW2__FEC_TDATA_2 (_MX53_PAD_KEY_ROW2__FEC_TDATA_2 | MUX_PAD_CTRL(NO_PAD_CTRL))
> @@ -1273,14 +1275,14 @@
> #define MX53_PAD_KEY_ROW3__USBPHY1_LINESTATE_0 (_MX53_PAD_KEY_ROW3__USBPHY1_LINESTATE_0 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_COL4__KPP_COL_4 (_MX53_PAD_KEY_COL4__KPP_COL_4 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_COL4__GPIO4_14 (_MX53_PAD_KEY_COL4__GPIO4_14 | MUX_PAD_CTRL(NO_PAD_CTRL))
> -#define MX53_PAD_KEY_COL4__CAN2_TXCAN (_MX53_PAD_KEY_COL4__CAN2_TXCAN | MUX_PAD_CTRL(NO_PAD_CTRL))
> +#define MX53_PAD_KEY_COL4__CAN2_TXCAN (_MX53_PAD_KEY_COL4__CAN2_TXCAN | MUX_PAD_CTRL(MX53_CAN_PAD_CTRL))
> #define MX53_PAD_KEY_COL4__IPU_SISG_4 (_MX53_PAD_KEY_COL4__IPU_SISG_4 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_COL4__UART5_RTS (_MX53_PAD_KEY_COL4__UART5_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL))
> #define MX53_PAD_KEY_COL4__USBOH3_USBOTG_OC (_MX53_PAD_KEY_COL4__USBOH3_USBOTG_OC | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_COL4__USBPHY1_LINESTATE_1 (_MX53_PAD_KEY_COL4__USBPHY1_LINESTATE_1 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_ROW4__KPP_ROW_4 (_MX53_PAD_KEY_ROW4__KPP_ROW_4 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_ROW4__GPIO4_15 (_MX53_PAD_KEY_ROW4__GPIO4_15 | MUX_PAD_CTRL(NO_PAD_CTRL))
> -#define MX53_PAD_KEY_ROW4__CAN2_RXCAN (_MX53_PAD_KEY_ROW4__CAN2_RXCAN | MUX_PAD_CTRL(NO_PAD_CTRL))
> +#define MX53_PAD_KEY_ROW4__CAN2_RXCAN (_MX53_PAD_KEY_ROW4__CAN2_RXCAN | MUX_PAD_CTRL(MX53_CAN_PAD_CTRL))
> #define MX53_PAD_KEY_ROW4__IPU_SISG_5 (_MX53_PAD_KEY_ROW4__IPU_SISG_5 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_KEY_ROW4__UART5_CTS (_MX53_PAD_KEY_ROW4__UART5_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL))
> #define MX53_PAD_KEY_ROW4__USBOH3_USBOTG_PWR (_MX53_PAD_KEY_ROW4__USBOH3_USBOTG_PWR | MUX_PAD_CTRL(NO_PAD_CTRL))
> @@ -2053,25 +2055,25 @@
> #define MX53_PAD_PATA_INTRQ__PATA_INTRQ (_MX53_PAD_PATA_INTRQ__PATA_INTRQ | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_INTRQ__GPIO7_2 (_MX53_PAD_PATA_INTRQ__GPIO7_2 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_INTRQ__UART2_CTS (_MX53_PAD_PATA_INTRQ__UART2_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL))
> -#define MX53_PAD_PATA_INTRQ__CAN1_TXCAN (_MX53_PAD_PATA_INTRQ__CAN1_TXCAN | MUX_PAD_CTRL(NO_PAD_CTRL))
> +#define MX53_PAD_PATA_INTRQ__CAN1_TXCAN (_MX53_PAD_PATA_INTRQ__CAN1_TXCAN | MUX_PAD_CTRL(MX53_CAN_PAD_CTRL))
> #define MX53_PAD_PATA_INTRQ__CCM_CCM_OUT_2 (_MX53_PAD_PATA_INTRQ__CCM_CCM_OUT_2 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_INTRQ__USBPHY2_DATAOUT_6 (_MX53_PAD_PATA_INTRQ__USBPHY2_DATAOUT_6 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_DIOR__PATA_DIOR (_MX53_PAD_PATA_DIOR__PATA_DIOR | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_DIOR__GPIO7_3 (_MX53_PAD_PATA_DIOR__GPIO7_3 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_DIOR__UART2_RTS (_MX53_PAD_PATA_DIOR__UART2_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL))
> -#define MX53_PAD_PATA_DIOR__CAN1_RXCAN (_MX53_PAD_PATA_DIOR__CAN1_RXCAN | MUX_PAD_CTRL(NO_PAD_CTRL))
> +#define MX53_PAD_PATA_DIOR__CAN1_RXCAN (_MX53_PAD_PATA_DIOR__CAN1_RXCAN | MUX_PAD_CTRL(MX53_CAN_PAD_CTRL))
> #define MX53_PAD_PATA_DIOR__USBPHY2_DATAOUT_7 (_MX53_PAD_PATA_DIOR__USBPHY2_DATAOUT_7 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_RESET_B__PATA_PATA_RESET_B (_MX53_PAD_PATA_RESET_B__PATA_PATA_RESET_B | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_RESET_B__GPIO7_4 (_MX53_PAD_PATA_RESET_B__GPIO7_4 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_RESET_B__ESDHC3_CMD (_MX53_PAD_PATA_RESET_B__ESDHC3_CMD | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL))
> #define MX53_PAD_PATA_RESET_B__UART1_CTS (_MX53_PAD_PATA_RESET_B__UART1_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL))
> -#define MX53_PAD_PATA_RESET_B__CAN2_TXCAN (_MX53_PAD_PATA_RESET_B__CAN2_TXCAN | MUX_PAD_CTRL(NO_PAD_CTRL))
> +#define MX53_PAD_PATA_RESET_B__CAN2_TXCAN (_MX53_PAD_PATA_RESET_B__CAN2_TXCAN | MUX_PAD_CTRL(MX53_CAN_PAD_CTRL))
> #define MX53_PAD_PATA_RESET_B__USBPHY1_DATAOUT_0 (_MX53_PAD_PATA_RESET_B__USBPHY1_DATAOUT_0 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_IORDY__PATA_IORDY (_MX53_PAD_PATA_IORDY__PATA_IORDY | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_IORDY__GPIO7_5 (_MX53_PAD_PATA_IORDY__GPIO7_5 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_IORDY__ESDHC3_CLK (_MX53_PAD_PATA_IORDY__ESDHC3_CLK | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL))
> #define MX53_PAD_PATA_IORDY__UART1_RTS (_MX53_PAD_PATA_IORDY__UART1_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL))
> -#define MX53_PAD_PATA_IORDY__CAN2_RXCAN (_MX53_PAD_PATA_IORDY__CAN2_RXCAN | MUX_PAD_CTRL(NO_PAD_CTRL))
> +#define MX53_PAD_PATA_IORDY__CAN2_RXCAN (_MX53_PAD_PATA_IORDY__CAN2_RXCAN | MUX_PAD_CTRL(MX53_CAN_PAD_CTRL))
> #define MX53_PAD_PATA_IORDY__USBPHY1_DATAOUT_1 (_MX53_PAD_PATA_IORDY__USBPHY1_DATAOUT_1 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_DA_0__PATA_DA_0 (_MX53_PAD_PATA_DA_0__PATA_DA_0 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_PATA_DA_0__GPIO7_6 (_MX53_PAD_PATA_DA_0__GPIO7_6 | MUX_PAD_CTRL(NO_PAD_CTRL))
> @@ -2341,7 +2343,7 @@
> #define MX53_PAD_GPIO_7__ESAI1_TX4_RX1 (_MX53_PAD_GPIO_7__ESAI1_TX4_RX1 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_GPIO_7__GPIO1_7 (_MX53_PAD_GPIO_7__GPIO1_7 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_GPIO_7__EPIT1_EPITO (_MX53_PAD_GPIO_7__EPIT1_EPITO | MUX_PAD_CTRL(NO_PAD_CTRL))
> -#define MX53_PAD_GPIO_7__CAN1_TXCAN (_MX53_PAD_GPIO_7__CAN1_TXCAN | MUX_PAD_CTRL(NO_PAD_CTRL))
> +#define MX53_PAD_GPIO_7__CAN1_TXCAN (_MX53_PAD_GPIO_7__CAN1_TXCAN | MUX_PAD_CTRL(MX53_CAN_PAD_CTRL))
> #define MX53_PAD_GPIO_7__UART2_TXD_MUX (_MX53_PAD_GPIO_7__UART2_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL))
> #define MX53_PAD_GPIO_7__FIRI_RXD (_MX53_PAD_GPIO_7__FIRI_RXD | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_GPIO_7__SPDIF_PLOCK (_MX53_PAD_GPIO_7__SPDIF_PLOCK | MUX_PAD_CTRL(NO_PAD_CTRL))
> @@ -2349,7 +2351,7 @@
> #define MX53_PAD_GPIO_8__ESAI1_TX5_RX0 (_MX53_PAD_GPIO_8__ESAI1_TX5_RX0 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_GPIO_8__GPIO1_8 (_MX53_PAD_GPIO_8__GPIO1_8 | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_GPIO_8__EPIT2_EPITO (_MX53_PAD_GPIO_8__EPIT2_EPITO | MUX_PAD_CTRL(NO_PAD_CTRL))
> -#define MX53_PAD_GPIO_8__CAN1_RXCAN (_MX53_PAD_GPIO_8__CAN1_RXCAN | MUX_PAD_CTRL(NO_PAD_CTRL))
> +#define MX53_PAD_GPIO_8__CAN1_RXCAN (_MX53_PAD_GPIO_8__CAN1_RXCAN | MUX_PAD_CTRL(MX53_CAN_PAD_CTRL))
> #define MX53_PAD_GPIO_8__UART2_RXD_MUX (_MX53_PAD_GPIO_8__UART2_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL))
> #define MX53_PAD_GPIO_8__FIRI_TXD (_MX53_PAD_GPIO_8__FIRI_TXD | MUX_PAD_CTRL(NO_PAD_CTRL))
> #define MX53_PAD_GPIO_8__SPDIF_SRCLK (_MX53_PAD_GPIO_8__SPDIF_SRCLK | MUX_PAD_CTRL(NO_PAD_CTRL))
> --
> 1.7.1
>
>
>
--
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
* [PATCH v2 6/6] ARM: EXYNOS4: Limit usage of pl330 device instance to non-dt build
From: Kukjin Kim @ 2011-09-19 10:26 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAJuYYwSB3f8BPQx1jgsSykKKMMGsbeCCj7zSLp2-+gtonBrdVw@mail.gmail.com>
Thomas Abraham wrote:
>
> Dear Mr. Kim,
>
> On 5 September 2011 10:47, Kukjin Kim <kgene.kim@samsung.com> wrote:
> >> Subject: [PATCH v2 6/6] ARM: EXYNOS4: Limit usage of pl330 device
instance
> > to
> >> non-dt build
> >>
> >> The pl330 device instances and associated platform data is required
only
> >> for non-device-tree builds. With device tree, all of this information
is
> >> obtained from the device tree.
> >>
> >> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
> >> ---
> >> ?arch/arm/mach-exynos4/Kconfig ?| ? ?7 +++++++
> >> ?arch/arm/mach-exynos4/Makefile | ? ?3 ++-
> >> ?2 files changed, 9 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/arch/arm/mach-exynos4/Kconfig
b/arch/arm/mach-exynos4/Kconfig
> >> index d4d401c..3edbf37 100644
> >> --- a/arch/arm/mach-exynos4/Kconfig
> >> +++ b/arch/arm/mach-exynos4/Kconfig
> >> @@ -21,6 +21,13 @@ config EXYNOS4_MCT
> >> ? ? ? help
> >> ? ? ? ? Use MCT (Multi Core Timer) as kernel timers
> >>
> >> +config EXYNOS4_DEV_DMA
> >> + ? ? bool
> >> + ? ? default y if !OF
> >> + ? ? help
> >> + ? ? ? Compile in amba device definitions for DMA controller if OF
> >> + ? ? ? is not enabled.
> >> +
> >> ?config EXYNOS4_DEV_AHCI
> >> ? ? ? bool
> >> ? ? ? help
> >> diff --git a/arch/arm/mach-exynos4/Makefile
> > b/arch/arm/mach-exynos4/Makefile
> >> index d2bf5bf..a2f33dc 100644
> >> --- a/arch/arm/mach-exynos4/Makefile
> >> +++ b/arch/arm/mach-exynos4/Makefile
> >> @@ -13,7 +13,8 @@ obj- ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?:=
> >> ?# Core support for EXYNOS4 system
> >>
> >> ?obj-$(CONFIG_CPU_EXYNOS4210) += cpu.o init.o clock.o irq-combiner.o
> >> -obj-$(CONFIG_CPU_EXYNOS4210) += setup-i2c0.o irq-eint.o dma.o
> >> pmu.o
> >> +obj-$(CONFIG_CPU_EXYNOS4210) += setup-i2c0.o irq-eint.o pmu.o
> >> +obj-$(CONFIG_EXYNOS4_DEV_DMA) ? ? ? ?+= dma.o
> >
> > Do we need _really_ EXYNOS4_DEV_DMA here?
> > How about to use like following?
> >
> > +obj-$(!CONFIG_OF) ? ? ? ? ? ? ?+= dma.o
> >
> > If any problems, let me know.
>
> While trying out your suggestion, I found a issue with this patch
> related to compiling a kernel with both dt and non-dt board files
> included in the build.
>
> When compiling a single kernel image with mach-smdkv310.c file and
> exynos4 device tree enabled machine file, since CONFIG_OF is enabled,
> dma platform data does not get compiled which is required for
> mach-smdkv310. So, I would like to resubmit this patch and the updated
> diff is listed below. Could you please review the following diff.
>
Hi Thomas,
Oops, you're right...so following is ok to me but you need to rebase this
based on latest my tree.
If any problems, please let me know.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
>
> diff --git a/arch/arm/mach-exynos4/Kconfig b/arch/arm/mach-exynos4/Kconfig
> index d4d401c..953ead7 100644
> --- a/arch/arm/mach-exynos4/Kconfig
> +++ b/arch/arm/mach-exynos4/Kconfig
> @@ -21,6 +21,11 @@ config EXYNOS4_MCT
> help
> Use MCT (Multi Core Timer) as kernel timers
>
> +config EXYNOS4_DEV_DMA
> + bool
> + help
> + Compile in amba device definitions for DMA controller
> +
> config EXYNOS4_DEV_AHCI
> bool
> help
> @@ -129,6 +134,7 @@ config MACH_SMDKC210
> select EXYNOS4_SETUP_FIMD0
> select EXYNOS4_SETUP_I2C1
> select EXYNOS4_SETUP_SDHCI
> + select EXYNOS4_DEV_DMA
> help
> Machine support for Samsung SMDKC210
>
> @@ -153,6 +159,7 @@ config MACH_SMDKV310
> select EXYNOS4_SETUP_I2C1
> select EXYNOS4_SETUP_KEYPAD
> select EXYNOS4_SETUP_SDHCI
> + select EXYNOS4_DEV_DMA
> help
> Machine support for Samsung SMDKV310
>
> @@ -191,6 +198,7 @@ config MACH_UNIVERSAL_C210
> select EXYNOS4_SETUP_I2C3
> select EXYNOS4_SETUP_I2C5
> select EXYNOS4_SETUP_SDHCI
> + select EXYNOS4_DEV_DMA
> help
> Machine support for Samsung Mobile Universal S5PC210 Reference
> Board.
> @@ -215,6 +223,7 @@ config MACH_NURI
> select EXYNOS4_SETUP_USB_PHY
> select SAMSUNG_DEV_PWM
> select SAMSUNG_DEV_ADC
> + select EXYNOS4_DEV_DMA
> help
> Machine support for Samsung Mobile NURI Board.
>
> diff --git a/arch/arm/mach-exynos4/Makefile
b/arch/arm/mach-exynos4/Makefile
> index 929262a..a2f33dc 100644
> --- a/arch/arm/mach-exynos4/Makefile
> +++ b/arch/arm/mach-exynos4/Makefile
> @@ -14,7 +14,8 @@ obj- :=
>
> obj-$(CONFIG_CPU_EXYNOS4210) += cpu.o init.o clock.o irq-combiner.o
> -obj-$(CONFIG_CPU_EXYNOS4210) += setup-i2c0.o irq-eint.o dma.o
> pmu.o
> +obj-$(CONFIG_CPU_EXYNOS4210) += setup-i2c0.o irq-eint.o pmu.o
> +obj-$(CONFIG_EXYNOS4_DEV_DMA) += dma.o
> obj-$(CONFIG_PM) += pm.o sleep.o
> obj-$(CONFIG_CPU_IDLE) += cpuidle.o
>
>
>
> Thanks,
> Thomas.
^ permalink raw reply
* Temporary change the URL of s5p tree for linux-next
From: Kukjin Kim @ 2011-09-19 10:24 UTC (permalink / raw)
To: linux-arm-kernel
Hi Stephen,
As you know, git.kernel.org has been down :(
So please change the URL of s5p tree for linux-next.
git://github.com/kgene/linux-samsung.git for-next.
As a note, I'd like to restore to use git.kernel.org after available of
git.kernel.org.
If any problems, please let me know.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply
* [PATCH v8 00/16] To use DMA generic APIs for Samsung DMA
From: Kukjin Kim @ 2011-09-19 10:23 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316401174.21359.3.camel@vkoul-udesk3>
Vinod Koul wrote:
>
> On Wed, 2011-09-14 at 17:03 +0530, Jassi Brar wrote:
> > On 14 September 2011 16:47, Vinod Koul <vinod.koul@intel.com> wrote:
> >
> > >> The changelog for [PATCH v8 04/16] is misleading - we don't need any
> > >> modification for the reason mentioned in changelog. But the modification
> > >> has positive side-effect of preventing callbacks during terminate_all which
> > >> is no way understood from the changelog. So I would like to changelog
> > >> corrected.
> > > I thought change log was correct in depicting what patch does and Boojin
> > > had replied.... I will check again...
> >
> > I didn't reply because I ran out of ways to explain the same thing in
> > different words.
> I checked again the patch, change log and your comments.
> I agree with current change log, and also your observation is right but
> that is just a side effect, which IMO should be best left to developer
> to choose or not, in this case she ignored it
>
> So no changes to this and I a ready to merge it to my next in a day or
> two...
>
So as a note, pulled git://git.infradead.org/users/vkoul/slave-dma.git samsung_dma for other regarding dma patches in arch/arm/ samsung stuff.
If any problems, please let me know.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
^ permalink raw reply
* [PATCH] pata-generic/of: Make probing via device tree non-powerpc-specific
From: Pawel Moll @ 2011-09-19 10:23 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CA+wbFdc0SicHLN6=JQz-rRXqKovhr7=acUQi3esUU_qcXgCaAw@mail.gmail.com>
> > This may not be the correct way to support the CF slot on Versatile
> > Express - it depends whether the CF slot on VE supports just CF
> > memory cards or whether it can take any CF card.
> >
> > If the latter, then what may be inserted could be a CF network card,
> > and that means it's probably wrong to tell the kernel that what's
> > there is a PATA interface.
>
> Interesting point. I don't know whether we've tried plugging anything
> else in...
>
> Pawel, can you comment?
VE officially supports CF memory cards only (Arnd already referenced the
spec). So in this case CF == PATA.
Cheers!
Pawe?
^ permalink raw reply
* [PATCH v3 2/2] input: samsung-keypad: Add device tree support
From: Thomas Abraham @ 2011-09-19 10:19 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316427553-5033-1-git-send-email-thomas.abraham@linaro.org>
Add device tree based discovery support for Samsung's keypad controller.
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Donghwa Lee <dh09.lee@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
---
.../devicetree/bindings/input/samsung-keypad.txt | 88 ++++++++++
drivers/input/keyboard/samsung-keypad.c | 179 ++++++++++++++++++--
2 files changed, 255 insertions(+), 12 deletions(-)
create mode 100644 Documentation/devicetree/bindings/input/samsung-keypad.txt
diff --git a/Documentation/devicetree/bindings/input/samsung-keypad.txt b/Documentation/devicetree/bindings/input/samsung-keypad.txt
new file mode 100644
index 0000000..ce3e394
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/samsung-keypad.txt
@@ -0,0 +1,88 @@
+* Samsung's Keypad Controller device tree bindings
+
+Samsung's Keypad controller is used to interface a SoC with a matrix-type
+keypad device. The keypad controller supports multiple row and column lines.
+A key can be placed at each intersection of a unique row and a unique column.
+The keypad controller can sense a key-press and key-release and report the
+event using a interrupt to the cpu.
+
+Required SoC Specific Properties:
+- compatible: should be one of the following
+ - "samsung,s3c6410-keypad": For controllers compatible with s3c6410 keypad
+ controller.
+ - "samsung,s5pv210-keypad": For controllers compatible with s5pv210 keypad
+ controller.
+
+- reg: physical base address of the controller and length of memory mapped
+ region.
+
+- interrupts: The interrupt number to the cpu.
+
+Required Board Specific Properties:
+- samsung,keypad-num-rows: Number of row lines connected to the keypad
+ controller.
+
+- samsung,keypad-num-columns: Number of column lines connected to the
+ keypad controller.
+
+- row-gpios: List of gpios used as row lines. The gpio specifier for
+ this property depends on the gpio controller to which these row lines
+ are connected.
+
+- col-gpios: List of gpios used as column lines. The gpio specifier for
+ this property depends on the gpio controller to which these column
+ lines are connected.
+
+- Keys represented as child nodes: Each key connected to the keypad
+ controller is represented as a child node to the keypad controller
+ device node and should include the following properties.
+ - keypad,row: the row number to which the key is connected.
+ - keypad,column: the column number to which the key is connected.
+ - linux,code: the key-code to be reported when the key is pressed
+ and released.
+
+Optional Properties specific to linux:
+- linux,keypad-no-autorepeat: do no enable autorepeat feature.
+- linux,keypad-wakeup: use any event on keypad as wakeup event.
+
+
+Example:
+ keypad at 100A0000 {
+ compatible = "samsung,s5pv210-keypad";
+ reg = <0x100A0000 0x100>;
+ interrupts = <173>;
+ samsung,keypad-num-rows = <2>;
+ samsung,keypad-num-columns = <8>;
+ linux,input-no-autorepeat;
+ linux,input-wakeup;
+
+ row-gpios = <&gpx2 0 3 3 0
+ &gpx2 1 3 3 0>;
+
+ col-gpios = <&gpx1 0 3 0 0
+ &gpx1 1 3 0 0
+ &gpx1 2 3 0 0
+ &gpx1 3 3 0 0
+ &gpx1 4 3 0 0
+ &gpx1 5 3 0 0
+ &gpx1 6 3 0 0
+ &gpx1 7 3 0 0>;
+
+ key_1 {
+ keypad,row = <0>;
+ keypad,column = <3>;
+ linux,code = <2>;
+ };
+
+ key_2 {
+ keypad,row = <0>;
+ keypad,column = <4>;
+ linux,code = <3>;
+ };
+
+ key_3 {
+ keypad,row = <0>;
+ keypad,column = <5>;
+ linux,code = <4>;
+ };
+ };
diff --git a/drivers/input/keyboard/samsung-keypad.c b/drivers/input/keyboard/samsung-keypad.c
index f689f49..2a477bc 100644
--- a/drivers/input/keyboard/samsung-keypad.c
+++ b/drivers/input/keyboard/samsung-keypad.c
@@ -21,6 +21,8 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
+#include <linux/of.h>
+#include <linux/of_gpio.h>
#include <linux/sched.h>
#include <plat/keypad.h>
@@ -68,31 +70,26 @@ struct samsung_keypad {
wait_queue_head_t wait;
bool stopped;
int irq;
+ enum samsung_keypad_type type;
unsigned int row_shift;
unsigned int rows;
unsigned int cols;
unsigned int row_state[SAMSUNG_MAX_COLS];
+#ifdef CONFIG_OF
+ int row_gpios[SAMSUNG_MAX_ROWS];
+ int col_gpios[SAMSUNG_MAX_COLS];
+#endif
unsigned short keycodes[];
};
-static int samsung_keypad_is_s5pv210(struct device *dev)
-{
- struct platform_device *pdev = to_platform_device(dev);
- enum samsung_keypad_type type =
- platform_get_device_id(pdev)->driver_data;
-
- return type == KEYPAD_TYPE_S5PV210;
-}
-
static void samsung_keypad_scan(struct samsung_keypad *keypad,
unsigned int *row_state)
{
- struct device *dev = keypad->input_dev->dev.parent;
unsigned int col;
unsigned int val;
for (col = 0; col < keypad->cols; col++) {
- if (samsung_keypad_is_s5pv210(dev)) {
+ if (keypad->type == KEYPAD_TYPE_S5PV210) {
val = S5PV210_KEYIFCOLEN_MASK;
val &= ~(1 << col) << 8;
} else {
@@ -235,6 +232,131 @@ static void samsung_keypad_close(struct input_dev *input_dev)
samsung_keypad_stop(keypad);
}
+#ifdef CONFIG_OF
+static struct samsung_keypad_platdata *samsung_keypad_parse_dt(
+ struct device *dev)
+{
+ struct samsung_keypad_platdata *pdata;
+ struct matrix_keymap_data *keymap_data;
+ uint32_t *keymap, num_rows, num_cols;
+ struct device_node *np = dev->of_node, *key_np;
+ unsigned int key_count = 0;
+
+ pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
+ if (!pdata) {
+ dev_err(dev, "could not allocate memory for platform data\n");
+ return NULL;
+ }
+
+ of_property_read_u32(np, "samsung,keypad-num-rows", &num_rows);
+ of_property_read_u32(np, "samsung,keypad-num-columns", &num_cols);
+ if (!num_rows || !num_cols) {
+ dev_err(dev, "number of keypad rows/columns not specified\n");
+ return NULL;
+ }
+ pdata->rows = num_rows;
+ pdata->cols = num_cols;
+
+ keymap_data = devm_kzalloc(dev, sizeof(*keymap_data), GFP_KERNEL);
+ if (!keymap_data) {
+ dev_err(dev, "could not allocate memory for keymap data\n");
+ return NULL;
+ }
+ pdata->keymap_data = keymap_data;
+
+ for_each_child_of_node(np, key_np)
+ key_count++;
+
+ keymap_data->keymap_size = key_count;
+ keymap = devm_kzalloc(dev, sizeof(uint32_t) * key_count, GFP_KERNEL);
+ if (!keymap) {
+ dev_err(dev, "could not allocate memory for keymap\n");
+ return NULL;
+ }
+ keymap_data->keymap = keymap;
+
+ for_each_child_of_node(np, key_np) {
+ u32 row, col, key_code;
+ of_property_read_u32(key_np, "keypad,row", &row);
+ of_property_read_u32(key_np, "keypad,column", &col);
+ of_property_read_u32(key_np, "linux,code", &key_code);
+ *keymap++ = KEY(row, col, key_code);
+ }
+
+ if (of_get_property(np, "linux,input-no-autorepeat", NULL))
+ pdata->no_autorepeat = true;
+ if (of_get_property(np, "linux,input-wakeup", NULL))
+ pdata->wakeup = true;
+
+ return pdata;
+}
+
+static void samsung_keypad_parse_dt_gpio(struct device *dev,
+ struct samsung_keypad *keypad)
+{
+ struct device_node *np = dev->of_node;
+ int gpio, ret, row, col;
+
+ for (row = 0; row < keypad->rows; row++) {
+ gpio = of_get_named_gpio(np, "row-gpios", row);
+ keypad->row_gpios[row] = gpio;
+ if (!gpio_is_valid(gpio)) {
+ dev_err(dev, "keypad row[%d]: invalid gpio %d\n",
+ row, gpio);
+ continue;
+ }
+
+ ret = gpio_request(gpio, "keypad-row");
+ if (ret)
+ dev_err(dev, "keypad row[%d] gpio request failed\n",
+ row);
+ }
+
+ for (col = 0; col < keypad->cols; col++) {
+ gpio = of_get_named_gpio(np, "col-gpios", col);
+ keypad->col_gpios[col] = gpio;
+ if (!gpio_is_valid(gpio)) {
+ dev_err(dev, "keypad column[%d]: invalid gpio %d\n",
+ col, gpio);
+ continue;
+ }
+
+ ret = gpio_request(col, "keypad-col");
+ if (ret)
+ dev_err(dev, "keypad column[%d] gpio request failed\n",
+ col);
+ }
+}
+
+static void samsung_keypad_dt_gpio_free(struct samsung_keypad *keypad)
+{
+ int cnt;
+
+ for (cnt = 0; cnt < keypad->rows; cnt++)
+ if (gpio_is_valid(keypad->row_gpios[cnt]))
+ gpio_free(keypad->row_gpios[cnt]);
+
+ for (cnt = 0; cnt < keypad->cols; cnt++)
+ if (gpio_is_valid(keypad->col_gpios[cnt]))
+ gpio_free(keypad->col_gpios[cnt]);
+}
+#else
+static
+struct samsung_keypad_platdata *samsung_keypad_parse_dt(struct device *dev)
+{
+ return NULL;
+}
+
+static void samsung_keypad_parse_dt_gpio(struct device *dev,
+ struct samsung_keypad *keypad)
+{
+}
+
+static void samsung_keypad_dt_gpio_free(struct samsung_keypad *keypad)
+{
+}
+#endif
+
static int __devinit samsung_keypad_probe(struct platform_device *pdev)
{
const struct samsung_keypad_platdata *pdata;
@@ -246,7 +368,10 @@ static int __devinit samsung_keypad_probe(struct platform_device *pdev)
unsigned int keymap_size;
int error;
- pdata = pdev->dev.platform_data;
+ if (pdev->dev.of_node)
+ pdata = samsung_keypad_parse_dt(&pdev->dev);
+ else
+ pdata = pdev->dev.platform_data;
if (!pdata) {
dev_err(&pdev->dev, "no platform data defined\n");
return -EINVAL;
@@ -303,6 +428,16 @@ static int __devinit samsung_keypad_probe(struct platform_device *pdev)
keypad->cols = pdata->cols;
init_waitqueue_head(&keypad->wait);
+ if (pdev->dev.of_node) {
+ samsung_keypad_parse_dt_gpio(&pdev->dev, keypad);
+#ifdef CONFIG_OF
+ keypad->type = of_device_is_compatible(pdev->dev.of_node,
+ "samsung,s5pv210-keypad");
+#endif
+ } else {
+ keypad->type = platform_get_device_id(pdev)->driver_data;
+ }
+
input_dev->name = pdev->name;
input_dev->id.bustype = BUS_HOST;
input_dev->dev.parent = &pdev->dev;
@@ -343,12 +478,19 @@ static int __devinit samsung_keypad_probe(struct platform_device *pdev)
device_init_wakeup(&pdev->dev, pdata->wakeup);
platform_set_drvdata(pdev, keypad);
+
+ if (pdev->dev.of_node) {
+ devm_kfree(&pdev->dev, (void *)pdata->keymap_data->keymap);
+ devm_kfree(&pdev->dev, (void *)pdata->keymap_data);
+ devm_kfree(&pdev->dev, (void *)pdata);
+ }
return 0;
err_free_irq:
free_irq(keypad->irq, keypad);
err_put_clk:
clk_put(keypad->clk);
+ samsung_keypad_dt_gpio_free(keypad);
err_unmap_base:
iounmap(keypad->base);
err_free_mem:
@@ -374,6 +516,7 @@ static int __devexit samsung_keypad_remove(struct platform_device *pdev)
free_irq(keypad->irq, keypad);
clk_put(keypad->clk);
+ samsung_keypad_dt_gpio_free(keypad);
iounmap(keypad->base);
kfree(keypad);
@@ -447,6 +590,17 @@ static const struct dev_pm_ops samsung_keypad_pm_ops = {
};
#endif
+#ifdef CONFIG_OF
+static const struct of_device_id samsung_keypad_dt_match[] = {
+ { .compatible = "samsung,s3c6410-keypad" },
+ { .compatible = "samsung,s5pv210-keypad" },
+ {},
+};
+MODULE_DEVICE_TABLE(of, samsung_keypad_dt_match);
+#else
+#define samsung_keypad_dt_match NULL
+#endif
+
static struct platform_device_id samsung_keypad_driver_ids[] = {
{
.name = "samsung-keypad",
@@ -465,6 +619,7 @@ static struct platform_driver samsung_keypad_driver = {
.driver = {
.name = "samsung-keypad",
.owner = THIS_MODULE,
+ .of_match_table = samsung_keypad_dt_match,
#ifdef CONFIG_PM
.pm = &samsung_keypad_pm_ops,
#endif
--
1.6.6.rc2
^ permalink raw reply related
* [PATCH v3 1/2] input: samsung-keypad: Add HAVE_SAMSUNG_KEYPAD config option
From: Thomas Abraham @ 2011-09-19 10:19 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316427553-5033-1-git-send-email-thomas.abraham@linaro.org>
For platforms using device tree, the static keypad device instances
are not required and SAMSUNG_DEV_KEYPAD is not selected. Since,
samsung keypad driver has dependency on SAMSUNG_DEV_KEYPAD config
option, the driver is left out of the compilation for dt enabled
platforms.
An additional config option 'HAVE_SAMSUNG_KEYPAD' is added
which the device tree based platforms can select. This config
option is added as an alternative dependency for keypad driver.
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
---
drivers/input/keyboard/Kconfig | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
index b4dee9d..7c322a3 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -423,9 +423,16 @@ config KEYBOARD_PMIC8XXX
To compile this driver as a module, choose M here: the module will
be called pmic8xxx-keypad.
+config HAVE_SAMSUNG_KEYPAD
+ bool
+ help
+ This will include Samsung Keypad controller driver support. If you
+ want to include Samsung Keypad support for any machine, kindly
+ select this in the respective mach-xxxx/Kconfig file.
+
config KEYBOARD_SAMSUNG
tristate "Samsung keypad support"
- depends on SAMSUNG_DEV_KEYPAD
+ depends on SAMSUNG_DEV_KEYPAD || HAVE_SAMSUNG_KEYPAD
help
Say Y here if you want to use the Samsung keypad.
--
1.6.6.rc2
^ permalink raw reply related
* [PATCH v3 0/2] Add device tree support for Samsung's keypad controller driver
From: Thomas Abraham @ 2011-09-19 10:19 UTC (permalink / raw)
To: linux-arm-kernel
Changes since v2:
- Addressed comments from Grant Likely.
- Renamed 'keypad,key-code' property name to 'linux,code'.
- Fixed incorrect data types for all instances of of_property+read_u32.
- linux,input-type binding was not added as suggested since the driver
supports only EV_KEY event type.
Changes since v1:
- Addressed comments from Dmitry Torokhov.
- Type of controller is cached in driver's private data and the function
that determines the type of the controller for each keypad scan is
removed.
- pdata allocated during probe is explicitly freed after probe completes
without any error. In case of exit from probe due a error, no explicit
deallocation of pdata memory is performed and it is left to devres to
handle that.
- The generic code to translate KEY(x,y,code) is retained in the driver
itself. I am unsure of a right common place for it.
- Driver continues with the probe even if one or more gpio configuration
fails.
- Patch 1 that adds a new config option is still retained in this patchset.
This patchset adds device tree support for samsung's keypad controller driver.
First patch adds a new config option to be used by device tree enabled platforms
for selecting the samsung's keypad controller driver. The second patch adds device
tree support for the keypad driver.
Thomas Abraham (2):
input: samsung-keypad: Add HAVE_SAMSUNG_KEYPAD config option
input: samsung-keypad: Add device tree support
.../devicetree/bindings/input/samsung-keypad.txt | 88 ++++++++++
drivers/input/keyboard/Kconfig | 9 +-
drivers/input/keyboard/samsung-keypad.c | 179 ++++++++++++++++++--
3 files changed, 263 insertions(+), 13 deletions(-)
create mode 100644 Documentation/devicetree/bindings/input/samsung-keypad.txt
^ permalink raw reply
* [PATCH v2] pata-generic/of: Make probing via device tree non-powerpc-specific
From: Dave Martin @ 2011-09-19 10:10 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <4E73C0FB.4030904@gmail.com>
On Fri, Sep 16, 2011 at 10:34 PM, Rob Herring <robherring2@gmail.com> wrote:
> Dave,
>
> On 09/16/2011 11:22 AM, Dave Martin wrote:
>> This patch enables device-tree-based probing of the pata-generic
>> platform driver across all architectures:
>>
>> ? * make the pata_of_generic module depend on OF instead of PPC_OF;
>> ? * supply some missing inclues;
>> ? * replace endianness-sensitive raw access to device tree data
>> ? ? with of_property_read_u32() calls.
>>
>> Signed-off-by: Dave Martin <dave.martin@linaro.org>
>> ---
>> v2: correct sense of the check of_property_read_u32(dn, "pio-mode",
>> &pio_mode). ?Somehow I posted an old version of this patch, depite
>> having already fixed this...
>>
>> Tested on ARM Versatile Express, with my soon-to-be-posted device
>> tree support patches.
>>
>> I'm not in a position to build/test this for powerpc easily --
>> if anyone is able to do that, it would be appreciated.
>>
> Building just requires getting Codesourcery PPC toolchain...
True, but although I can try to build it, I don't have a PPC platform
to do the actual testing.
> You also have to be aware that you are enabling this for all OF-enabled
> arches which could break with an allyesconfig. So really you need sparc,
> x86, mips, and microblaze, but a subset is probably sufficient.
Fair point.
Since this has now been superseded by Grant's patch anyway, I'll leave
it for others to judge.
Cheers
---Dave
^ permalink raw reply
* [PATCH] pata-generic/of: Make probing via device tree non-powerpc-specific
From: Dave Martin @ 2011-09-19 10:05 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20110916214313.GB16381@n2100.arm.linux.org.uk>
Hi,
On Fri, Sep 16, 2011 at 10:43 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> On Fri, Sep 16, 2011 at 03:38:10PM +0100, Dave Martin wrote:
>> This patch enables device-tree-based probing of the pata-generic
>> platform driver across all architectures:
[...]
>
> This may not be the correct way to support the CF slot on Versatile
> Express - it depends whether the CF slot on VE supports just CF
> memory cards or whether it can take any CF card.
>
> If the latter, then what may be inserted could be a CF network card,
> and that means it's probably wrong to tell the kernel that what's
> there is a PATA interface.
Interesting point. I don't know whether we've tried plugging anything
else in...
Pawel, can you comment?
Cheers
---Dave
^ permalink raw reply
* [PATCH v2 2/6] arm/imx6q: add core definitions and low-level debug uart
From: Eric Miao @ 2011-09-19 9:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20110919095544.GL31404@pengutronix.de>
On Mon, Sep 19, 2011 at 5:55 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Mon, Sep 19, 2011 at 05:45:59PM +0800, Eric Miao wrote:
>> On Mon, Sep 19, 2011 at 5:35 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
>> > On Thu, Sep 15, 2011 at 10:45:22PM +0800, Shawn Guo wrote:
>> >> It adds the core definitions and low-level debug uart support
>> >> for imx6q.
>> >>
>> >>
>> >> ?#define UART_VADDR ? IMX_IO_ADDRESS(UART_PADDR)
>> >> diff --git a/arch/arm/plat-mxc/include/mach/entry-macro.S b/arch/arm/plat-mxc/include/mach/entry-macro.S
>> >> index 066d464..341f800 100644
>> >> --- a/arch/arm/plat-mxc/include/mach/entry-macro.S
>> >> +++ b/arch/arm/plat-mxc/include/mach/entry-macro.S
>> >> @@ -1,6 +1,6 @@
>> >> ?/*
>> >> ? * ?Copyright (C) 2007 Lennert Buytenhek <buytenh@wantstofly.org>
>> >> - * ?Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
>> >> + * ?Copyright 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved.
>> >> ? */
>> >>
>> >> ?/*
>> >> @@ -11,6 +11,17 @@
>> >>
>> >> ?#include <mach/hardware.h>
>> >>
>> >> +#ifdef CONFIG_ARM_GIC
>> >> +#include <asm/hardware/entry-macro-gic.S>
>> >> +
>> >> + ? ? .macro ?disable_fiq
>> >> + ? ? .endm
>> >> +
>> >> + ? ? .macro ?arch_ret_to_user, tmp1, tmp2
>> >> + ? ? .endm
>> >> +
>> >> +#else
>> >
>> > That's the third interrupt entry code handled here with ifdefs. I
>> > remember there was some infrastructure to have multiple irq
>> > controllers. I can't find any pointers, but I think Eric (added him
>> > to Cc) told me about it.
>> > As this is also the last roadblock to compile i.MX3 and i.MX5 into a
>> > single kernel this might be the right moment to work on this.
>>
>> It's CONFIG_MULTIPLE_IRQ_HANDLER. And check arch/arm/mach-pxa/irq.c
>> for example. Basically to use a C function to handle the interrupts, and
>> have each machine to specify the correct handler.
>>
>> E.g. in pxa - there are pxa25x_handle_irq, pxa3xx_handle_irq ...
>
> Nice, it's already merged. I should have used grep instead of google.
> For reference, it's CONFIG_MULTI_IRQ_HANDLER.
My poor memory :-)
>
> 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
* [PATCH v2] dmaengine: add CSR SiRFprimaII DMAC driver
From: Barry Song @ 2011-09-19 9:56 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1316425277.26662.41.camel@vkoul-udesk3>
> -----Original Message-----
> From: Vinod Koul [mailto:vinod.koul at intel.com]
> Sent: 2011?9?19? 17:41
> To: Barry Song
> Cc: 21cnbao at gmail.com; Arnd Bergmann; Jassi Brar; Linus Walleij;
> linux-kernel at vger.kernel.org; DL-SHA-WorkGroupLinux; Rongjun Ying;
> linux-arm-kernel at lists.infradead.org
> Subject: RE: [PATCH v2] dmaengine: add CSR SiRFprimaII DMAC driver
>
> On Mon, 2011-09-19 at 09:23 +0000, Barry Song wrote:
> > Hi Vinod,
> > Thanks!
> >
> > > -----Original Message-----
> > > From: Vinod Koul [mailto:vinod.koul at intel.com]
> > > Sent: 2011?9?19? 17:00
> > > To: Barry Song
> > > Cc: Arnd Bergmann; Jassi Brar; Linus Walleij; linux-kernel at vger.kernel.org;
> > > DL-SHA-WorkGroupLinux; Rongjun Ying;
> linux-arm-kernel at lists.infradead.org
> > > Subject: Re: [PATCH v2] dmaengine: add CSR SiRFprimaII DMAC driver
> > >
> > > On Fri, 2011-09-16 at 02:56 -0700, Barry Song wrote:
> > > > From: Rongjun Ying <rongjun.ying@csr.com>
> > > >
> > > > Cc: Jassi Brar <jaswinder.singh@linaro.org>
> > > > Cc: Arnd Bergmann <arnd@arndb.de>
> > > > Cc: Linus Walleij <linus.walleij@linaro.org>
> > > > Signed-off-by: Rongjun Ying <rongjun.ying@csr.com>
> > > > Signed-off-by: Barry Song <Baohua.Song@csr.com>
> > > > ---
> > > > -v2:
> > > > use generic xfer API from jassi;
> > > > delete sirf self-defined slave config;
> > > > fix feedback from vinod;
> > > > fix filter function: we have two dmac, clients drivers think the chan id as
> > > 0~31;
> > > > rename regs to base;
> > > > delete redundant chan_id initialization in probe since dmaengine core
> will
> > > > re-write it, refer to my patch too:
> > > > [PATCH] dmaengine: delete redundant chan_id and chancnt initialization
> in
> > > dma drivers
> > > > http://www.spinics.net/lists/kernel/msg1237455.html
> > > >
> > > > this patch doesn't provide a common way for filter and doesn't use the
> > > jassi's v2 patch.
> > > > +
> > > > +static int sirfsoc_dma_slave_config(struct sirfsoc_dma_chan *schan,
> > > > + struct dma_slave_config *config)
> > > > +{
> > > > + u32 addr, direction;
> > > > + unsigned long flags;
> > > > +
> > > > + switch (config->direction) {
> > > > + case DMA_FROM_DEVICE:
> > > > + direction = 0;
> > > > + addr = config->dst_addr;
> > > > + break;
> > > > +
> > > > + case DMA_TO_DEVICE:
> > > > + direction = 1;
> > > > + addr = config->src_addr;
> > > > + break;
> > > > +
> > > > + default:
> > > > + return -EINVAL;
> > > > + }
> > > > +
> > > > + if ((config->src_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES) ||
> > > > + (config->dst_addr_width != DMA_SLAVE_BUSWIDTH_4_BYTES))
> > > > + return -EINVAL;
> > > > +
> > > > + spin_lock_irqsave(&schan->lock, flags);
> > > > + schan->addr = addr;
> > > > + schan->direction = direction;
> > > > + schan->mode = (config->src_maxburst == 4 ? 1 : 0);
> > > > + spin_unlock_irqrestore(&schan->lock, flags);
> > > Not sure why you support this, there seem to be no DMA_SLAVE support in
> > > this version ate least
> >
> > Not. I support dma_slave. But I have no prep_slave_sg function since I can
> use the gen xfer to replace it.
> Yes thats okay...
>
> Then I have questions on genxfer function...
> where are you copying either src or dstn_start address, you seem to
> completely ignore them?
Since I only support memory->device or device ->memory, and channel number is fixed to every device. Then I actually don't care device address at all. Either src or dst is fixed to the device's address.
>
> Do you support only slave transfers or M2M as well for this driver?
> If only slave you might want to check if dma_config_slave is set for
> this channel or not.
I support only slave transfer. Actually I have dma_config_slave. do you mean I need to check whether slave config cmd is really called before executing dma?
>
> --
> ~Vinod
-barry
Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
More information can be found at www.csr.com. Follow CSR on Twitter at http://twitter.com/CSR_PLC and read our blog at www.csr.com/blog
^ permalink raw reply
* [PATCH v2 2/6] arm/imx6q: add core definitions and low-level debug uart
From: Sascha Hauer @ 2011-09-19 9:55 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAMPhdO-MWPo8xAF12O2cehfT8a4zmpY0zCVZBQGUsS42-LzQrw@mail.gmail.com>
On Mon, Sep 19, 2011 at 05:45:59PM +0800, Eric Miao wrote:
> On Mon, Sep 19, 2011 at 5:35 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > On Thu, Sep 15, 2011 at 10:45:22PM +0800, Shawn Guo wrote:
> >> It adds the core definitions and low-level debug uart support
> >> for imx6q.
> >>
> >>
> >> ?#define UART_VADDR ? IMX_IO_ADDRESS(UART_PADDR)
> >> diff --git a/arch/arm/plat-mxc/include/mach/entry-macro.S b/arch/arm/plat-mxc/include/mach/entry-macro.S
> >> index 066d464..341f800 100644
> >> --- a/arch/arm/plat-mxc/include/mach/entry-macro.S
> >> +++ b/arch/arm/plat-mxc/include/mach/entry-macro.S
> >> @@ -1,6 +1,6 @@
> >> ?/*
> >> ? * ?Copyright (C) 2007 Lennert Buytenhek <buytenh@wantstofly.org>
> >> - * ?Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
> >> + * ?Copyright 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved.
> >> ? */
> >>
> >> ?/*
> >> @@ -11,6 +11,17 @@
> >>
> >> ?#include <mach/hardware.h>
> >>
> >> +#ifdef CONFIG_ARM_GIC
> >> +#include <asm/hardware/entry-macro-gic.S>
> >> +
> >> + ? ? .macro ?disable_fiq
> >> + ? ? .endm
> >> +
> >> + ? ? .macro ?arch_ret_to_user, tmp1, tmp2
> >> + ? ? .endm
> >> +
> >> +#else
> >
> > That's the third interrupt entry code handled here with ifdefs. I
> > remember there was some infrastructure to have multiple irq
> > controllers. I can't find any pointers, but I think Eric (added him
> > to Cc) told me about it.
> > As this is also the last roadblock to compile i.MX3 and i.MX5 into a
> > single kernel this might be the right moment to work on this.
>
> It's CONFIG_MULTIPLE_IRQ_HANDLER. And check arch/arm/mach-pxa/irq.c
> for example. Basically to use a C function to handle the interrupts, and
> have each machine to specify the correct handler.
>
> E.g. in pxa - there are pxa25x_handle_irq, pxa3xx_handle_irq ...
Nice, it's already merged. I should have used grep instead of google.
For reference, it's CONFIG_MULTI_IRQ_HANDLER.
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
* [PATCH] ARM: S3C2410: Adds WIZnet W5300E01-ARM board support
From: Taehun Kim @ 2011-09-19 9:50 UTC (permalink / raw)
To: linux-arm-kernel
This patch adds WIZnet W5300E01-ARM board support.
Signed-off-by: Taehun Kim <kth3321@gmail.com>
---
arch/arm/configs/w5300e01_defconfig | 1355 +++++++++++++++++++++++++++++++++
arch/arm/mach-s3c2410/Kconfig | 6 +
arch/arm/mach-s3c2410/Makefile | 1 +
arch/arm/mach-s3c2410/mach-w5300e01.c | 198 +++++
4 files changed, 1560 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/configs/w5300e01_defconfig
create mode 100644 arch/arm/mach-s3c2410/mach-w5300e01.c
diff --git a/arch/arm/configs/w5300e01_defconfig b/arch/arm/configs/w5300e01_defconfig
new file mode 100644
index 0000000..981784f
--- /dev/null
+++ b/arch/arm/configs/w5300e01_defconfig
@@ -0,0 +1,1355 @@
+#
+# Automatically generated make config: don't edit
+# Linux/arm 3.0.0 Kernel Configuration
+#
+CONFIG_ARM=y
+CONFIG_HAVE_PWM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_ARCH_USES_GETTIMEOFFSET=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_NO_IOPORT=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+
+#
+# General setup
+#
+# CONFIG_EXPERIMENTAL is not set
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="W5300E01"
+# CONFIG_SWAP is not set
+CONFIG_SYSVIPC=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_FHANDLE is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_CHIP=y
+# CONFIG_SPARSE_IRQ is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TINY_RCU=y
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=16
+# CONFIG_CGROUPS is not set
+# CONFIG_NAMESPACES is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+# CONFIG_RD_XZ is not set
+# CONFIG_RD_LZO is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_ANON_INODES=y
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_KALLSYMS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_EMBEDDED=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+# CONFIG_PERF_EVENTS is not set
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_VM_EVENT_COUNTERS is not set
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+# CONFIG_SLUB is not set
+CONFIG_SLOB=y
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+# CONFIG_LBDAF is not set
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_MXS is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_LPC32XX is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_NUC93X is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+CONFIG_ARCH_S3C2410=y
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS4 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_TCC_926 is not set
+# CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_VT8500 is not set
+CONFIG_PLAT_SAMSUNG=y
+
+#
+# Boot options
+#
+# CONFIG_S3C_BOOT_WATCHDOG is not set
+CONFIG_S3C_BOOT_ERROR_RESET=y
+CONFIG_S3C_BOOT_UART_FORCE_FIFO=y
+CONFIG_S3C_LOWLEVEL_UART_PORT=0
+CONFIG_S3C_GPIO_CFG_S3C24XX=y
+CONFIG_S3C_GPIO_PULL_UP=y
+CONFIG_SAMSUNG_GPIO_EXTRA=0
+CONFIG_S3C_GPIO_SPACE=0
+CONFIG_S3C_ADC=y
+CONFIG_S3C_DEV_WDT=y
+CONFIG_S3C_DEV_NAND=y
+CONFIG_SAMSUNG_DEV_PWM=y
+CONFIG_S3C24XX_PWM=y
+
+#
+# Power management
+#
+# CONFIG_SAMSUNG_PM_DEBUG is not set
+# CONFIG_SAMSUNG_PM_CHECK is not set
+
+#
+# Power Domain
+#
+# CONFIG_SAMSUNG_PD is not set
+CONFIG_PLAT_S3C24XX=y
+CONFIG_CPU_LLSERIAL_S3C2410_ONLY=y
+CONFIG_CPU_LLSERIAL_S3C2410=y
+CONFIG_S3C2410_CLOCK=y
+CONFIG_S3C24XX_GPIO_EXTRA=0
+# CONFIG_S3C2410_DMA is not set
+
+#
+# System MMU
+#
+
+#
+# S3C2400 Machines
+#
+CONFIG_CPU_S3C2410=y
+CONFIG_S3C2410_PM=y
+CONFIG_S3C2410_GPIO=y
+
+#
+# S3C2410 Machines
+#
+# CONFIG_ARCH_SMDK2410 is not set
+# CONFIG_ARCH_H1940 is not set
+# CONFIG_MACH_N30 is not set
+# CONFIG_ARCH_BAST is not set
+# CONFIG_MACH_OTOM is not set
+# CONFIG_MACH_AML_M5900 is not set
+# CONFIG_MACH_TCT_HAMMER is not set
+# CONFIG_MACH_VR1000 is not set
+# CONFIG_MACH_QT2410 is not set
+CONFIG_MACH_W5300E01=y
+
+#
+# S3C2412 Machines
+#
+# CONFIG_MACH_JIVE is not set
+# CONFIG_MACH_SMDK2413 is not set
+# CONFIG_MACH_SMDK2412 is not set
+# CONFIG_MACH_VSTMS is not set
+
+#
+# S3C2416 Machines
+#
+# CONFIG_MACH_SMDK2416 is not set
+
+#
+# S3C2440 and S3C2442 Machines
+#
+# CONFIG_MACH_ANUBIS is not set
+# CONFIG_MACH_NEO1973_GTA02 is not set
+# CONFIG_MACH_OSIRIS is not set
+# CONFIG_MACH_RX3715 is not set
+# CONFIG_ARCH_S3C2440 is not set
+# CONFIG_MACH_NEXCODER_2440 is not set
+# CONFIG_SMDK2440_CPU2440 is not set
+# CONFIG_SMDK2440_CPU2442 is not set
+# CONFIG_MACH_AT2440EVB is not set
+# CONFIG_MACH_MINI2440 is not set
+# CONFIG_MACH_RX1950 is not set
+
+#
+# S3C2443 Machines
+#
+# CONFIG_MACH_SMDK2443 is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_ARM920T=y
+CONFIG_CPU_32v4T=y
+CONFIG_CPU_ABRT_EV4T=y
+CONFIG_CPU_PABRT_LEGACY=y
+CONFIG_CPU_CACHE_V4WT=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_COPY_V4WB=y
+CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_USE_DOMAINS=y
+
+#
+# Processor Features
+#
+# CONFIG_ARM_THUMB is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
+
+#
+# Bus support
+#
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_HZ=200
+# CONFIG_AEABI is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
+# CONFIG_HIGHMEM is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=999999
+# CONFIG_COMPACTION is not set
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_VIRT_TO_BUS=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_ALIGNMENT_TRAP=y
+# CONFIG_SECCOMP is not set
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+
+#
+# Boot options
+#
+# CONFIG_USE_OF is not set
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="mem=64M console=ttySAC0,115200 root=/dev/ram0 rw initrd=0x31000000,12M"
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_CMDLINE_EXTEND is not set
+# CONFIG_CMDLINE_FORCE is not set
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_AUTO_ZRELADDR is not set
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CPU_IDLE is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+CONFIG_FPE_NWFPE_XP=y
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_HAVE_AOUT=y
+CONFIG_BINFMT_AOUT=y
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_PM_RUNTIME_CLK=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_PACKET is not set
+# CONFIG_UNIX is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+# CONFIG_INET_LRO is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_IPV6 is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+# CONFIG_NETFILTER_ADVANCED is not set
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+# CONFIG_NF_NAT_TFTP is not set
+# CONFIG_NF_NAT_AMANDA is not set
+# CONFIG_NF_NAT_PPTP is not set
+# CONFIG_NF_NAT_H323 is not set
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_PHONET is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+# CONFIG_BATMAN_ADV is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+# CONFIG_WIRELESS is not set
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+CONFIG_STANDALONE=y
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+# CONFIG_FIRMWARE_IN_KERNEL is not set
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_CONNECTOR is not set
+CONFIG_MTD=y
+# CONFIG_MTD_DEBUG is not set
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# User Modules And Translation Layers
+#
+# CONFIG_MTD_CHAR is not set
+# CONFIG_MTD_BLKDEVS is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_MTD_OOPS is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_NAND_ECC=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+# CONFIG_MTD_SM_COMMON is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_GPIO is not set
+CONFIG_MTD_NAND_IDS=y
+CONFIG_MTD_NAND_S3C2410=y
+# CONFIG_MTD_NAND_S3C2410_DEBUG is not set
+# CONFIG_MTD_NAND_S3C2410_HWECC is not set
+# CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_ALAUDA is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+# CONFIG_MTD_UBI is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+
+#
+# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
+#
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=1
+CONFIG_BLK_DEV_RAM_SIZE=12288
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_MG_DISK is not set
+# CONFIG_SENSORS_LIS3LV02D is not set
+# CONFIG_MISC_DEVICES is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# CONFIG_SCSI_DMA is not set
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+# CONFIG_VETH is not set
+# CONFIG_MII is not set
+# CONFIG_PHYLIB is not set
+CONFIG_NET_ETHERNET=y
+# CONFIG_AX88796 is not set
+CONFIG_W5300=y
+# CONFIG_SMC91X is not set
+# CONFIG_DM9000 is not set
+# CONFIG_ETHOC is not set
+# CONFIG_SMC911X is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_DNET is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_B44 is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_FTMAC100 is not set
+# CONFIG_NETDEV_1000 is not set
+# CONFIG_NETDEV_10000 is not set
+# CONFIG_WLAN is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+
+#
+# USB Network Adapters
+#
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_USBNET is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_WAN is not set
+
+#
+# CAIF transport drivers
+#
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_ISDN is not set
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+# CONFIG_VT is not set
+# CONFIG_UNIX98_PTYS is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_SAMSUNG=y
+CONFIG_SERIAL_SAMSUNG_UARTS=3
+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
+CONFIG_SERIAL_S3C2410=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_HVC_DCC is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_HW_RANDOM is not set
+# CONFIG_R3964 is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_RAMOOPS is not set
+# CONFIG_I2C is not set
+# CONFIG_SPI is not set
+
+#
+# PPS support
+#
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+
+#
+# Enable Device Drivers -> PPS to see the PTP clock options.
+#
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_BASIC_MMIO is not set
+# CONFIG_GPIO_IT8761E is not set
+
+#
+# I2C GPIO expanders:
+#
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+# CONFIG_W1 is not set
+# CONFIG_POWER_SUPPLY is not set
+# CONFIG_HWMON is not set
+# CONFIG_THERMAL is not set
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+CONFIG_S3C2410_WATCHDOG=y
+# CONFIG_MAX63XX_WATCHDOG is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+# CONFIG_BCMA is not set
+# CONFIG_MFD_SUPPORT is not set
+# CONFIG_REGULATOR is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+# CONFIG_DRM is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_FB is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+# CONFIG_LCD_CLASS_DEVICE is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=m
+# CONFIG_BACKLIGHT_GENERIC is not set
+# CONFIG_BACKLIGHT_PWM is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+# CONFIG_SOUND is not set
+# CONFIG_HID_SUPPORT is not set
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_DEVICE_CLASS is not set
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_SUSPEND is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_MUSB_HDRC is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+# CONFIG_USB_LIBUSUAL is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_LED is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+# CONFIG_USB_GADGET is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ULPI is not set
+# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_MMC is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_NFC_DEVICES is not set
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+# CONFIG_RTC_INTF_PROC is not set
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# SPI RTC drivers
+#
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_S3C=y
+# CONFIG_DMADEVICES is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_STAGING is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+# CONFIG_EXT3_FS_XATTR is not set
+# CONFIG_EXT4_FS is not set
+CONFIG_JBD=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_FILE_LOCKING is not set
+# CONFIG_FSNOTIFY is not set
+# CONFIG_DNOTIFY is not set
+# CONFIG_INOTIFY_USER is not set
+# CONFIG_FANOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_QUOTACTL is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+# CONFIG_ZISOFS is not set
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_DEBUG is not set
+# CONFIG_NTFS_RW is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_SYSCTL is not set
+# CONFIG_PROC_PAGE_MONITOR is not set
+# CONFIG_SYSFS is not set
+# CONFIG_TMPFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_HFSPLUS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=y
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+# CONFIG_DEBUG_KERNEL is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_FRAME_POINTER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_STRICT_DEVMEM is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_OC_ETM is not set
+CONFIG_DEBUG_S3C_UART=0
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_CRYPTO=m
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=m
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=m
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=m
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=m
+CONFIG_CRYPTO_RNG2=m
+CONFIG_CRYPTO_PCOMP2=m
+CONFIG_CRYPTO_MANAGER=m
+CONFIG_CRYPTO_MANAGER2=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+# CONFIG_CRYPTO_GF128MUL is not set
+# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_WORKQUEUE=m
+# CONFIG_CRYPTO_CRYPTD is not set
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_SEQIV is not set
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=m
+# CONFIG_CRYPTO_PCBC is not set
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+# CONFIG_CRYPTO_GHASH is not set
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+CONFIG_CRYPTO_SHA1=m
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=m
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+CONFIG_CRYPTO_DES=m
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=m
+# CONFIG_CRYPTO_ZLIB is not set
+# CONFIG_CRYPTO_LZO is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_CRC_CCITT is not set
+CONFIG_CRC16=m
+# CONFIG_CRC_T10DIF is not set
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+# CONFIG_XZ_DEC is not set
+# CONFIG_XZ_DEC_BCJ is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_DMA=y
+CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+# CONFIG_AVERAGE is not set
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig
index 7245a55..2d5c1b3 100644
--- a/arch/arm/mach-s3c2410/Kconfig
+++ b/arch/arm/mach-s3c2410/Kconfig
@@ -178,4 +178,10 @@ config MACH_QT2410
help
Say Y here if you are using the Armzone QT2410
+config MACH_W5300E01
+ bool "W5300E01-ARM Board"
+ select CPU_S3C2410
+ help
+ Say Y here if you are using the W5300E01-ARM board
+
endmenu
diff --git a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile
index 8169535..f603edd 100644
--- a/arch/arm/mach-s3c2410/Makefile
+++ b/arch/arm/mach-s3c2410/Makefile
@@ -31,6 +31,7 @@ obj-$(CONFIG_BAST_PC104_IRQ) += bast-irq.o
obj-$(CONFIG_MACH_TCT_HAMMER) += mach-tct_hammer.o
obj-$(CONFIG_MACH_VR1000) += mach-vr1000.o usb-simtec.o
obj-$(CONFIG_MACH_QT2410) += mach-qt2410.o
+obj-$(CONFIG_MACH_QT2410) += mach-w5300e01.o
# Common bits of machine support
diff --git a/arch/arm/mach-s3c2410/mach-w5300e01.c b/arch/arm/mach-s3c2410/mach-w5300e01.c
new file mode 100644
index 0000000..9d57c3a
--- /dev/null
+++ b/arch/arm/mach-s3c2410/mach-w5300e01.c
@@ -0,0 +1,198 @@
+/* linux/arch/arm/mach-s3c2410/mach-w5300e01.c
+ *
+ * Copyright (C) 2011 WIZnet, Inc.
+ * Authors: Taehun Kim <kth3321@gmail.com>, Suhwan Kim <suhwan@wiznet.co.kr>
+ * All rights reserved.
+ *
+ * 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
+ *
+ * @History:
+ * derived from linux/arch/arm/mach-s3c2410/mach-bast.c, written by
+ * Ben Dooks <ben@simtec.co.uk>
+ *
+ ***********************************************************************/
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/interrupt.h>
+#include <linux/list.h>
+#include <linux/timer.h>
+#include <linux/init.h>
+#include <linux/serial_core.h>
+#include <linux/platform_device.h>
+#include <linux/gpio.h>
+#include <linux/io.h>
+#include <linux/mtd/mtd.h>
+#include <linux/mtd/nand.h>
+#include <linux/mtd/map.h>
+#include <linux/mtd/partitions.h>
+
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+#include <asm/mach/irq.h>
+#include <asm/mach-types.h>
+
+#include <mach/regs-gpio.h>
+#include <plat/gpio-cfg.h>
+#include <plat/cpu.h>
+#include <plat/devs.h>
+#include <plat/regs-serial.h>
+#include <plat/nand.h>
+#include <plat/pm.h>
+
+static struct map_desc w5300e01_iodesc[] __initdata = {
+ /* Character LCD register map. */
+ { 0xf8000000, __phys_to_pfn(S3C2410_CS3), SZ_1M, MT_DEVICE }
+};
+
+#define UCON S3C2410_UCON_DEFAULT
+#define ULCON (S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB)
+#define UFCON (S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE)
+
+static struct s3c2410_uartcfg w5300e01_uartcfgs[] __initdata = {
+ [0] = {
+ .hwport = 0,
+ .flags = 0,
+ .ucon = UCON,
+ .ulcon = ULCON,
+ .ufcon = UFCON,
+ },
+ [1] = {
+ .hwport = 1,
+ .flags = 0,
+ .ucon = UCON,
+ .ulcon = ULCON,
+ .ufcon = UFCON,
+ },
+ [2] = {
+ .hwport = 2,
+ .flags = 0,
+ .ucon = UCON,
+ .ulcon = ULCON,
+ .ufcon = UFCON,
+ }
+};
+
+static struct mtd_partition w5300e01_mtd_partitions[] = {
+ [0] = {
+ .name = "Bootloader",
+ .size = 0x20000,
+ .offset = 0,
+ .mask_flags = MTD_WRITEABLE,
+ },
+ [1] = {
+ .name = "Boot Param",
+ .size = 0x20000,
+ .offset = MTDPART_OFS_APPEND,
+ },
+ [2] = {
+ .name = "Kernel",
+ .size = 0x3C0000,
+ .offset = MTDPART_OFS_APPEND,
+ },
+ [3] = {
+ .name = "Ramdisk",
+ .size = 0x1000000,
+ .offset = MTDPART_OFS_APPEND,
+ },
+ [4] = {
+ .name = "JFFS2 FileSystem",
+ .size = MTDPART_SIZ_FULL,
+ .offset = MTDPART_OFS_APPEND,
+ },
+};
+
+static struct resource w5300_resources[] = {
+ [0] = {
+ .start = S3C2410_CS2,
+ .end = S3C2410_CS2 + SZ_1M,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = IRQ_EINT0,
+ .end = IRQ_EINT0,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static struct platform_device w5300_device = {
+ .name = "w5300",
+ .num_resources = ARRAY_SIZE(w5300_resources),
+ .resource = w5300_resources,
+};
+
+static struct s3c2410_nand_set w5300e01_nand_sets[] = {
+ [0] = {
+ .name = "W5300E01",
+ .nr_chips = 1,
+ .nr_partitions = ARRAY_SIZE(w5300e01_mtd_partitions),
+ .partitions = w5300e01_mtd_partitions,
+ },
+};
+
+static struct s3c2410_platform_nand w5300e01_nand_info = {
+ .tacls = 20,
+ .twrph0 = 60,
+ .twrph1 = 30,
+ .nr_sets = ARRAY_SIZE(w5300e01_nand_sets),
+ .sets = w5300e01_nand_sets,
+};
+
+static struct platform_device *w5300e01_devices[] __initdata = {
+ &s3c_device_nand,
+ &s3c_device_usbgadget,
+ &s3c_device_wdt,
+ &s3c_device_i2c0,
+ &s3c_device_iis,
+ &w5300_device,
+};
+
+static void __init w5300e01_map_io(void)
+{
+ s3c24xx_init_io(w5300e01_iodesc, ARRAY_SIZE(w5300e01_iodesc));
+ s3c24xx_init_clocks(0);
+ s3c24xx_init_uarts(w5300e01_uartcfgs, ARRAY_SIZE(w5300e01_uartcfgs));
+}
+
+static void __init w5300e01_init(void)
+{
+ s3c_nand_set_platdata(&w5300e01_nand_info);
+ platform_add_devices(w5300e01_devices, ARRAY_SIZE(w5300e01_devices));
+
+ /* W5300 interrupt pin. */
+ s3c2410_gpio_cfgpin(S3C2410_GPF(0), S3C2410_GPIO_IRQ);
+
+ s3c2410_gpio_cfgpin(S3C2410_GPF(4), S3C2410_GPIO_OUTPUT);
+ s3c2410_gpio_cfgpin(S3C2410_GPF(5), S3C2410_GPIO_OUTPUT);
+ s3c2410_gpio_cfgpin(S3C2410_GPF(6), S3C2410_GPIO_OUTPUT);
+ s3c2410_gpio_cfgpin(S3C2410_GPF(7), S3C2410_GPIO_OUTPUT);
+
+ s3c2410_gpio_setpin(S3C2410_GPF(0), 1);
+ s3c2410_gpio_setpin(S3C2410_GPF(4), 1);
+ s3c2410_gpio_setpin(S3C2410_GPF(5), 1);
+ s3c2410_gpio_setpin(S3C2410_GPF(6), 1);
+ s3c2410_gpio_setpin(S3C2410_GPF(7), 1);
+
+ s3c_pm_init();
+}
+
+MACHINE_START(W5300E01, "WIZnet W5300E01-ARM")
+ .boot_params = S3C2410_SDRAM_PA + 0x100,
+ .map_io = w5300e01_map_io,
+ .init_irq = s3c24xx_init_irq,
+ .init_machine = w5300e01_init,
+ .timer = &s3c24xx_timer,
+MACHINE_END
--
1.7.1
^ permalink raw reply related
* [PATCH 5/5] ARM: gic: add OF based initialization
From: Cousson, Benoit @ 2011-09-19 9:47 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <4E722B2D.4050307@gmail.com>
On 9/15/2011 6:43 PM, Rob Herring wrote:
> Benoit,
>
> On 09/15/2011 08:52 AM, Cousson, Benoit wrote:
>> On 9/15/2011 3:11 PM, Rob Herring wrote:
>>> Benoit,
>>>
>>> On 09/15/2011 05:07 AM, Cousson, Benoit wrote:
>>>> Hi Rob,
>>>>
>>>> On 9/15/2011 9:55 AM, Thomas Abraham wrote:
>>>>> Hi Rob,
>>>>>
>>>>> On 14 September 2011 22:01, Rob Herring<robherring2@gmail.com> wrote:
>>>>>> From: Rob Herring<rob.herring@calxeda.com>
>>>>>>
>>>>>> This adds gic initialization using device tree data. The
>>>>>> initialization
>>>>>> functions are intended to be called by a generic OF interrupt
>>>>>> controller parsing function once the right pieces are in place.
>>>>>>
>>>>>> PPIs are handled using 3rd cell of interrupts properties to specify
>>>>>> the cpu
>>>>>> mask the PPI is assigned to.
>>>>>>
>>>>>> Signed-off-by: Rob Herring<rob.herring@calxeda.com>
>>>>>> ---
>>>>>> Documentation/devicetree/bindings/arm/gic.txt | 53
>>>>>> ++++++++++++++++++++++++
>>>>>> arch/arm/common/gic.c | 55
>>>>>> +++++++++++++++++++++++--
>>>>>> arch/arm/include/asm/hardware/gic.h | 10 +++++
>>>>>> 3 files changed, 114 insertions(+), 4 deletions(-)
>>>>>> create mode 100644 Documentation/devicetree/bindings/arm/gic.txt
>>>>>
>>>>> [...]
>>>>>
>>>>>
>>>>>> diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
>>>>>> index d1ccc72..14de380 100644
>>>>>> --- a/arch/arm/common/gic.c
>>>>>> +++ b/arch/arm/common/gic.c
>>>>>
>>>>> [...]
>>>>>
>>>>>> +void __init gic_of_init(struct device_node *node, struct device_node
>>>>>> *parent)
>>>>>> +{
>>>>>> + void __iomem *cpu_base;
>>>>>> + void __iomem *dist_base;
>>>>>> + int irq;
>>>>>> + struct irq_domain *domain =&gic_data[gic_cnt].domain;
>>>>>> +
>>>>>> + if (WARN_ON(!node))
>>>>>> + return;
>>>>>> +
>>>>>> + dist_base = of_iomap(node, 0);
>>>>>> + WARN(!dist_base, "unable to map gic dist registers\n");
>>>>>> +
>>>>>> + cpu_base = of_iomap(node, 1);
>>>>>> + WARN(!cpu_base, "unable to map gic cpu registers\n");
>>>>>> +
>>>>>> + domain->nr_irq = gic_irq_count(dist_base);
>>>>>> + domain->irq_base = irq_alloc_descs(-1, 0, domain->nr_irq,
>>>>>> numa_node_id());
>>>>>
>>>>> For exynos4, all the interrupts originating from GIC are statically
>>>>> mapped to start from 32 in the linux virq space (GIC SPI interrupts
>>>>> start from 64). In the above code, since irq_base would be 0 for
>>>>> exynos4, the interrupt mapping is not working correctly. In your
>>>>> previous version of the patch, you have given a option to the platform
>>>>> code to choose the offset. Could that option be added to this series
>>>>> also. Or a provision to use platform specific translate function
>>>>> instead of the irq_domain_simple translator.
>>>>
>>>> I have another concern on a similar topic.
>>>>
>>>> On OMAP4 the SoC interrupts external to the MPU (SPI) have an offset of
>>>> 32. Only the internal PPI are between 0 and 31.
>>>>
>>>> For the moment we add 32 to every SoC interrupts in the irq.h define,
>>>
>>> Those defines will not be used in the DT case. So the question is
>>> whether to add 32 or not in the DT. Since we have just a single node and
>>> a linear mapping of PPIs and SPIs, the only choice is to have SPIs start
>>> at 32. And from the h/w definition, SPIs always start at 32, so it's in
>>> agreement.
>>
>> This is a agreement inside the MPUSS, but not outside.
>> Both Tegra and OMAP4 must add an offset to the HW irq number to deal
>> with that today.
>>
>>>> but I'm assuming that this offset calculation should be done thanks to a
>>>> dedicated irq domain for the SPI.
>>>> The real HW physical number start at 0, and thus this is that value that
>>>> should be in the irq binding of the device.
>>>>
>>>> So ideally we should have a irq domain for the PPI starting at 0 and
>>>> another one for the SPI starting at 32. Or 32 and 64 for the exynos4
>>>> case, but it looks like the PPI/SPI offset is always 32.
>>>>
>>>
>>> That offset of SPIs is always there. If you have a GIC as a secondary
>>> controller, It will have 32 reserved interrupts and the register layout
>>> is exactly the same as a cpu's GIC.
>>
>> Yep, but that's the GIC view and not the SoC one. My concern is to have
>> to tweak the HW number provided by the HW spec in order to add that offset.
>> If you look at SoC level, the MPUSS is just an IP that can be
>> potentially replaced by other one that will not have a GIC. In that case
>> you will not change the IRQ mapping at SoC level.
>> For example if you replace the Dual-cortexA9 by a single CortexA8, then
>> all the interrupts will have to be shifted by 32 just because the MPU
>> subsystem is different.
>>
>
> Is that a realistic case? That would be a new chip and new device tree.
> You could argue that the whole peripheral subsystem DT could be reused
> and the numbering needs to be the same.
Yes, it is. I do agree that since we are adding a bunch of new IPs at
the same time, it will be hard to keep the exact same definition, but
the OMAP4 irq table is reusing most of OMAP3 definition.
> However, there's one thing that
> would prevent that. The number of interrupt cells is defined by the
> controller binding. So you have to change the peripheral nodes anyway.
I think that might be avoided by using a generic irq controller name
alias like &intc.
> It's good that OMAP is trying to standardize the peripheral layout, but
> in my experience that's not something you can rely on.
>
> At some point the interrupt numbering is going to differ from the h/w
> documentation. If it's not in the DT, then it will be in linux. Right
> now its just offset of 32, but if irqdescs get assigned on demand as PPC
> is doing, then there will be no relationship to the documentation.
Yes, but this is the whole point, that's why the DT irq number should
stick to the HW documentation, not to the underlying irq controller
implementation.
The MPUSS is an IP like any other IPs in a SoC, and at the boundary of
that IP, only 128 IRQ lines are exposed, hence the numbering scheme from
0 to 127.
>> Since that offset is dependent of the GIC internals and is not exposed
>> outside the MPUSS, it should not be visible by the SoC IPs. And the HW
>> spec is exposing exactly that.
>>
>>> Since the idea of splitting PPIs for each core out to a flattened linux
>>> irq map has been abandoned, I see no reason to have more than 1 domain
>>> with a simple linear translation. Ultimately, domains will do dynamic
>>> irqdesc allocation and the translation within the gic will be completely
>>> dynamic.
>>
>> I think the only reason to do that is to separate internal MPU
>> interrupts with the external ones that should not have a clue about the
>> GIC.
>
> I see 2 options (besides leaving it as is):
>
> - Revert back to my previous binding where PPIs are a sub-node and a
> different interrupt parent.
>
> - Use the current binding, but allow SPIs to start at 0. We can still
> distinguish PPIs and SPIs by the cpu mask cell. A cpu mask of 0 is a
> SPI. If there was ever a reason to have a cpu mask for an SPI, you would
> not be able to with this scheme.
>
> Either way you will still have the above issue with the cell size changing.
Since the cpumask is not relevant for the SPI, maybe having two
interrupt controllers will be more relevant. Or maybe 3, since there is
some SGIs as well.
Regards,
Benoit
^ permalink raw reply
* [PATCH v2 2/6] arm/imx6q: add core definitions and low-level debug uart
From: Eric Miao @ 2011-09-19 9:45 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20110919093516.GK31404@pengutronix.de>
On Mon, Sep 19, 2011 at 5:35 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> On Thu, Sep 15, 2011 at 10:45:22PM +0800, Shawn Guo wrote:
>> It adds the core definitions and low-level debug uart support
>> for imx6q.
>>
>>
>> ?#define UART_VADDR ? IMX_IO_ADDRESS(UART_PADDR)
>> diff --git a/arch/arm/plat-mxc/include/mach/entry-macro.S b/arch/arm/plat-mxc/include/mach/entry-macro.S
>> index 066d464..341f800 100644
>> --- a/arch/arm/plat-mxc/include/mach/entry-macro.S
>> +++ b/arch/arm/plat-mxc/include/mach/entry-macro.S
>> @@ -1,6 +1,6 @@
>> ?/*
>> ? * ?Copyright (C) 2007 Lennert Buytenhek <buytenh@wantstofly.org>
>> - * ?Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
>> + * ?Copyright 2004-2011 Freescale Semiconductor, Inc. All Rights Reserved.
>> ? */
>>
>> ?/*
>> @@ -11,6 +11,17 @@
>>
>> ?#include <mach/hardware.h>
>>
>> +#ifdef CONFIG_ARM_GIC
>> +#include <asm/hardware/entry-macro-gic.S>
>> +
>> + ? ? .macro ?disable_fiq
>> + ? ? .endm
>> +
>> + ? ? .macro ?arch_ret_to_user, tmp1, tmp2
>> + ? ? .endm
>> +
>> +#else
>
> That's the third interrupt entry code handled here with ifdefs. I
> remember there was some infrastructure to have multiple irq
> controllers. I can't find any pointers, but I think Eric (added him
> to Cc) told me about it.
> As this is also the last roadblock to compile i.MX3 and i.MX5 into a
> single kernel this might be the right moment to work on this.
It's CONFIG_MULTIPLE_IRQ_HANDLER. And check arch/arm/mach-pxa/irq.c
for example. Basically to use a C function to handle the interrupts, and
have each machine to specify the correct handler.
E.g. in pxa - there are pxa25x_handle_irq, pxa3xx_handle_irq ...
>
> 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
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox