Merge tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC multiplatform code updates from Arnd Bergmann: "This branch is the culmination of 5 years of effort to bring the ARMv6 and ARMv7 platforms together such that they can all be enabled and boot the same kernel. It has been a tremendous amount of cleanup and refactoring by a huge number of people, and creation of several new (and major) subsystems to better abstract out all the platform details in an appropriate manner. The bulk of this branch is a large patchset from Arnd that brings several of the more minor and older platforms we have closer to multiplatform support. Among these are MMP, S3C64xx, Orion5x, mv78xx0 and realview Much of this is moving around header files from old mach directories, but there are also some cleanup patches of debug_ll (lowlevel debug per-platform options) and other parts. Linus Walleij also has some patchs to clean up the older ARM Realview platforms by finally introducing DT support, and Rob Herring has some for ARM Versatile which is now DT-only. Both of these platforms are now multiplatform. Finally, a couple of patches from Russell for Dove PMU, and a fix from Valentin Rothberg for Exynos ADC, which were rebased on top of the series to avoid conflicts" * tag 'armsoc-multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (75 commits) ARM: realview: don't select SMP_ON_UP for UP builds ARM: s3c: simplify s3c_irqwake_{e,}intallow definition ARM: s3c64xx: fix pm-debug compilation iio: exynos-adc: fix irqf_oneshot.cocci warnings ARM: realview: build realview-dt SMP support only when used ARM: realview: select apropriate targets ARM: realview: clean up header files ARM: realview: make all header files local ARM: no longer make CPU targets visible separately ARM: integrator: use explicit core module options ARM: realview: enable multiplatform ARM: make default platform work for NOMMU ARM: debug-ll: move DEBUG_LL_UART_EFM32 to correct Kconfig location ARM: defconfig: use correct debug_ll settings ARM: versatile: convert to multi-platform ARM: versatile: merge mach code into a single file ARM: versatile: switch to DT only booting and remove legacy code ARM: versatile: add DT based PCI detection ARM: pxa: mark ezx structures as __maybe_unused ARM: pxa: mark raumfeld init functions as __maybe_unused ...
This commit is contained in:
@@ -2,6 +2,26 @@
|
||||
# Simtec Electronics, Ben Dooks <ben@simtec.co.uk>
|
||||
#
|
||||
# Licensed under GPLv2
|
||||
menuconfig ARCH_S3C64XX
|
||||
bool "Samsung S3C64XX" if ARCH_MULTI_V6
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select ARM_AMBA
|
||||
select ARM_VIC
|
||||
select CLKSRC_SAMSUNG_PWM
|
||||
select COMMON_CLK_SAMSUNG
|
||||
select GPIO_SAMSUNG if ATAGS
|
||||
select HAVE_S3C2410_I2C if I2C
|
||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select HAVE_TCM
|
||||
select PLAT_SAMSUNG
|
||||
select PM_GENERIC_DOMAINS if PM
|
||||
select S3C_DEV_NAND if ATAGS
|
||||
select S3C_GPIO_TRACK if ATAGS
|
||||
select SAMSUNG_ATAGS if ATAGS
|
||||
select SAMSUNG_WAKEMASK if PM
|
||||
select SAMSUNG_WDT_RESET
|
||||
help
|
||||
Samsung S3C64XX series based systems
|
||||
|
||||
if ARCH_S3C64XX
|
||||
|
||||
@@ -90,6 +110,7 @@ config S3C64XX_SETUP_USB_PHY
|
||||
|
||||
config MACH_SMDK6400
|
||||
bool "SMDK6400"
|
||||
depends on ATAGS
|
||||
select CPU_S3C6400
|
||||
select S3C64XX_SETUP_SDHCI
|
||||
select S3C_DEV_HSMMC1
|
||||
@@ -100,6 +121,7 @@ config MACH_SMDK6400
|
||||
|
||||
config MACH_ANW6410
|
||||
bool "A&W6410"
|
||||
depends on ATAGS
|
||||
select CPU_S3C6410
|
||||
select S3C64XX_SETUP_FB_24BPP
|
||||
select S3C_DEV_FB
|
||||
@@ -108,6 +130,7 @@ config MACH_ANW6410
|
||||
|
||||
config MACH_MINI6410
|
||||
bool "MINI6410"
|
||||
depends on ATAGS
|
||||
select CPU_S3C6410
|
||||
select S3C64XX_SETUP_FB_24BPP
|
||||
select S3C64XX_SETUP_SDHCI
|
||||
@@ -123,6 +146,7 @@ config MACH_MINI6410
|
||||
|
||||
config MACH_REAL6410
|
||||
bool "REAL6410"
|
||||
depends on ATAGS
|
||||
select CPU_S3C6410
|
||||
select S3C64XX_SETUP_FB_24BPP
|
||||
select S3C64XX_SETUP_SDHCI
|
||||
@@ -138,6 +162,7 @@ config MACH_REAL6410
|
||||
|
||||
config MACH_SMDK6410
|
||||
bool "SMDK6410"
|
||||
depends on ATAGS
|
||||
select CPU_S3C6410
|
||||
select HAVE_S3C2410_WATCHDOG if WATCHDOG
|
||||
select S3C64XX_SETUP_FB_24BPP
|
||||
@@ -225,6 +250,7 @@ config SMDK6410_WM1192_EV1
|
||||
|
||||
config MACH_NCP
|
||||
bool "NCP"
|
||||
depends on ATAGS
|
||||
select CPU_S3C6410
|
||||
select S3C64XX_SETUP_I2C1
|
||||
select S3C_DEV_HSMMC1
|
||||
@@ -234,6 +260,7 @@ config MACH_NCP
|
||||
|
||||
config MACH_HMT
|
||||
bool "Airgoo HMT"
|
||||
depends on ATAGS
|
||||
select CPU_S3C6410
|
||||
select S3C64XX_SETUP_FB_24BPP
|
||||
select S3C_DEV_FB
|
||||
@@ -265,18 +292,21 @@ config MACH_SMARTQ
|
||||
|
||||
config MACH_SMARTQ5
|
||||
bool "SmartQ 5"
|
||||
depends on ATAGS
|
||||
select MACH_SMARTQ
|
||||
help
|
||||
Machine support for the SmartQ 5
|
||||
|
||||
config MACH_SMARTQ7
|
||||
bool "SmartQ 7"
|
||||
depends on ATAGS
|
||||
select MACH_SMARTQ
|
||||
help
|
||||
Machine support for the SmartQ 7
|
||||
|
||||
config MACH_WLF_CRAGG_6410
|
||||
bool "Wolfson Cragganmore 6410"
|
||||
depends on ATAGS
|
||||
depends on I2C=y
|
||||
select CPU_S3C6410
|
||||
select LEDS_GPIO_REGISTER
|
||||
@@ -310,7 +340,6 @@ config MACH_S3C64XX_DT
|
||||
select CPU_S3C6410
|
||||
select PINCTRL
|
||||
select PINCTRL_S3C64XX
|
||||
select USE_OF
|
||||
help
|
||||
Machine support for Samsung S3C6400/S3C6410 machines with Device Tree
|
||||
enabled.
|
||||
|
@@ -5,21 +5,25 @@
|
||||
#
|
||||
# Licensed under GPLv2
|
||||
|
||||
# Core
|
||||
|
||||
obj-y += common.o
|
||||
|
||||
# Core support
|
||||
|
||||
obj-$(CONFIG_CPU_S3C6400) += s3c6400.o
|
||||
obj-$(CONFIG_CPU_S3C6410) += s3c6410.o
|
||||
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include
|
||||
asflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include -I$(srctree)/arch/arm/plat-samsung/include
|
||||
|
||||
# PM
|
||||
|
||||
obj-$(CONFIG_PM) += pm.o
|
||||
obj-$(CONFIG_PM_SLEEP) += irq-pm.o sleep.o
|
||||
obj-$(CONFIG_PM_SLEEP) += sleep.o
|
||||
obj-$(CONFIG_CPU_IDLE) += cpuidle.o
|
||||
|
||||
ifdef CONFIG_SAMSUNG_ATAGS
|
||||
|
||||
obj-$(CONFIG_PM_SLEEP) += irq-pm.o
|
||||
|
||||
# Core
|
||||
|
||||
obj-y += common.o
|
||||
obj-$(CONFIG_CPU_S3C6400) += s3c6400.o
|
||||
obj-$(CONFIG_CPU_S3C6410) += s3c6410.o
|
||||
|
||||
# DMA support
|
||||
|
||||
obj-$(CONFIG_S3C64XX_PL080) += pl080.o
|
||||
@@ -55,4 +59,6 @@ obj-$(CONFIG_MACH_SMARTQ7) += mach-smartq7.o
|
||||
obj-$(CONFIG_MACH_SMDK6400) += mach-smdk6400.o
|
||||
obj-$(CONFIG_MACH_SMDK6410) += mach-smdk6410.o
|
||||
obj-$(CONFIG_MACH_WLF_CRAGG_6410) += mach-crag6410.o mach-crag6410-module.o
|
||||
endif
|
||||
|
||||
obj-$(CONFIG_MACH_S3C64XX_DT) += mach-s3c64xx-dt.o
|
||||
|
@@ -39,6 +39,7 @@
|
||||
#include <asm/system_misc.h>
|
||||
|
||||
#include <mach/map.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/gpio-samsung.h>
|
||||
@@ -208,7 +209,7 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size)
|
||||
static __init int s3c64xx_dev_init(void)
|
||||
{
|
||||
/* Not applicable when using DT. */
|
||||
if (of_have_populated_dt())
|
||||
if (of_have_populated_dt() || !soc_is_s3c64xx())
|
||||
return 0;
|
||||
|
||||
subsys_system_register(&s3c64xx_subsys, NULL);
|
||||
@@ -413,7 +414,7 @@ static int __init s3c64xx_init_irq_eint(void)
|
||||
int irq;
|
||||
|
||||
/* On DT-enabled systems EINTs are handled by pinctrl-s3c64xx driver. */
|
||||
if (of_have_populated_dt())
|
||||
if (of_have_populated_dt() || !soc_is_s3c64xx())
|
||||
return -ENODEV;
|
||||
|
||||
for (irq = IRQ_EINT(0); irq <= IRQ_EINT(27); irq++) {
|
||||
|
@@ -18,6 +18,7 @@
|
||||
|
||||
#include <asm/cpuidle.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
#include "regs-sys.h"
|
||||
@@ -57,6 +58,8 @@ static struct cpuidle_driver s3c64xx_cpuidle_driver = {
|
||||
|
||||
static int __init s3c64xx_init_cpuidle(void)
|
||||
{
|
||||
return cpuidle_register(&s3c64xx_cpuidle_driver, NULL);
|
||||
if (soc_is_s3c64xx())
|
||||
return cpuidle_register(&s3c64xx_cpuidle_driver, NULL);
|
||||
return 0;
|
||||
}
|
||||
device_initcall(s3c64xx_init_cpuidle);
|
||||
|
@@ -23,6 +23,7 @@
|
||||
#include <asm/mach/irq.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/map.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#include <plat/devs.h>
|
||||
|
||||
|
@@ -1,38 +0,0 @@
|
||||
/* arch/arm/mach-s3c6400/include/mach/debug-macro.S
|
||||
*
|
||||
* Copyright 2008 Openmoko, Inc.
|
||||
* Copyright 2008 Simtec Electronics
|
||||
* http://armlinux.simtec.co.uk/
|
||||
* Ben Dooks <ben@simtec.co.uk>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
/* pull in the relevant register and map files. */
|
||||
|
||||
#include <linux/serial_s3c.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
/* note, for the boot process to work we have to keep the UART
|
||||
* virtual address aligned to an 1MiB boundary for the L1
|
||||
* mapping the head code makes. We keep the UART virtual address
|
||||
* aligned and add in the offset when we load the value here.
|
||||
*/
|
||||
|
||||
.macro addruart, rp, rv, tmp
|
||||
ldr \rp, = S3C_PA_UART
|
||||
ldr \rv, = (S3C_VA_UART + S3C_PA_UART & 0xfffff)
|
||||
#if CONFIG_DEBUG_S3C_UART != 0
|
||||
add \rp, \rp, #(0x400 * CONFIG_DEBUG_S3C_UART)
|
||||
add \rv, \rv, #(0x400 * CONFIG_DEBUG_S3C_UART)
|
||||
#endif
|
||||
.endm
|
||||
|
||||
/* include the reset of the code which will do the work, we're only
|
||||
* compiling for a single cpu processor type so the default of s3c2440
|
||||
* will be fine with us.
|
||||
*/
|
||||
|
||||
#include <debug/samsung.S>
|
@@ -14,6 +14,8 @@
|
||||
#ifndef GPIO_SAMSUNG_S3C64XX_H
|
||||
#define GPIO_SAMSUNG_S3C64XX_H
|
||||
|
||||
#ifdef CONFIG_GPIO_SAMSUNG
|
||||
|
||||
/* GPIO bank sizes */
|
||||
#define S3C64XX_GPIO_A_NR (8)
|
||||
#define S3C64XX_GPIO_B_NR (7)
|
||||
@@ -90,5 +92,6 @@ enum s3c_gpio_number {
|
||||
/* define the number of gpios we need to the one after the GPQ() range */
|
||||
#define GPIO_BOARD_START (S3C64XX_GPQ(S3C64XX_GPIO_Q_NR) + 1)
|
||||
|
||||
#endif /* GPIO_SAMSUNG */
|
||||
#endif /* GPIO_SAMSUNG_S3C64XX_H */
|
||||
|
||||
|
@@ -156,25 +156,11 @@
|
||||
|
||||
#define IRQ_EINT_GROUP(group, no) (IRQ_EINT_GROUP##group##_BASE + (no))
|
||||
|
||||
/* Define a group of interrupts for board-specific use (eg, for MFD
|
||||
* interrupt controllers). */
|
||||
/* Some boards have their own IRQs behind this */
|
||||
#define IRQ_BOARD_START (IRQ_EINT_GROUP9_BASE + IRQ_EINT_GROUP9_NR + 1)
|
||||
|
||||
#ifdef CONFIG_MACH_WLF_CRAGG_6410
|
||||
#define IRQ_BOARD_NR 160
|
||||
#elif defined(CONFIG_SMDK6410_WM1190_EV1)
|
||||
#define IRQ_BOARD_NR 64
|
||||
#elif defined(CONFIG_SMDK6410_WM1192_EV1)
|
||||
#define IRQ_BOARD_NR 64
|
||||
#else
|
||||
#define IRQ_BOARD_NR 16
|
||||
#endif
|
||||
|
||||
#define IRQ_BOARD_END (IRQ_BOARD_START + IRQ_BOARD_NR)
|
||||
|
||||
/* Set the default NR_IRQS */
|
||||
|
||||
#define NR_IRQS (IRQ_BOARD_END + 1)
|
||||
/* Set the default nr_irqs, boards can override if necessary */
|
||||
#define S3C64XX_NR_IRQS IRQ_BOARD_START
|
||||
|
||||
/* Compatibility */
|
||||
|
||||
|
@@ -16,8 +16,11 @@
|
||||
#define __MACH_S3C64XX_PM_CORE_H __FILE__
|
||||
|
||||
#include <linux/serial_s3c.h>
|
||||
#include <linux/delay.h>
|
||||
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/regs-clock.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
static inline void s3c_pm_debug_init_uart(void)
|
||||
{
|
||||
@@ -56,9 +59,13 @@ static inline void s3c_pm_arch_show_resume_irqs(void)
|
||||
|
||||
/* make these defines, we currently do not have any need to change
|
||||
* the IRQ wake controls depending on the CPU we are running on */
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
#define s3c_irqwake_eintallow ((1 << 28) - 1)
|
||||
#define s3c_irqwake_intallow (~0)
|
||||
#else
|
||||
#define s3c_irqwake_eintallow 0
|
||||
#define s3c_irqwake_intallow 0
|
||||
#endif
|
||||
|
||||
static inline void s3c_pm_arch_update_uart(void __iomem *regs,
|
||||
struct pm_uart_save *save)
|
||||
|
@@ -113,7 +113,7 @@ static struct syscore_ops s3c64xx_irq_syscore_ops = {
|
||||
static __init int s3c64xx_syscore_init(void)
|
||||
{
|
||||
/* Appropriate drivers (pinctrl, uart) handle this when using DT. */
|
||||
if (of_have_populated_dt())
|
||||
if (of_have_populated_dt() || !soc_is_s3c64xx())
|
||||
return 0;
|
||||
|
||||
register_syscore_ops(&s3c64xx_irq_syscore_ops);
|
||||
|
@@ -47,6 +47,7 @@
|
||||
|
||||
#include <plat/devs.h>
|
||||
#include <plat/cpu.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/gpio-samsung.h>
|
||||
#include <plat/samsung-time.h>
|
||||
@@ -229,7 +230,7 @@ static void __init anw6410_machine_init(void)
|
||||
MACHINE_START(ANW6410, "A&W6410")
|
||||
/* Maintainer: Kwangwoo Lee <kwangwoo.lee@gmail.com> */
|
||||
.atag_offset = 0x100,
|
||||
|
||||
.nr_irqs = S3C64XX_NR_IRQS,
|
||||
.init_irq = s3c6410_init_irq,
|
||||
.map_io = anw6410_map_io,
|
||||
.init_machine = anw6410_machine_init,
|
||||
|
@@ -29,6 +29,9 @@
|
||||
|
||||
#include <linux/platform_data/spi-s3c64xx.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#include "crag6410.h"
|
||||
|
||||
static struct s3c64xx_spi_csinfo wm0010_spi_csinfo = {
|
||||
@@ -399,6 +402,9 @@ static struct i2c_driver wlf_gf_module_driver = {
|
||||
|
||||
static int __init wlf_gf_module_register(void)
|
||||
{
|
||||
if (!soc_is_s3c64xx())
|
||||
return 0;
|
||||
|
||||
return i2c_add_driver(&wlf_gf_module_driver);
|
||||
}
|
||||
device_initcall(wlf_gf_module_register);
|
||||
|
@@ -52,6 +52,7 @@
|
||||
#include <mach/map.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/gpio-samsung.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#include <plat/fb.h>
|
||||
#include <plat/sdhci.h>
|
||||
@@ -860,6 +861,7 @@ static void __init crag6410_machine_init(void)
|
||||
MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410")
|
||||
/* Maintainer: Mark Brown <broonie@opensource.wolfsonmicro.com> */
|
||||
.atag_offset = 0x100,
|
||||
.nr_irqs = S3C64XX_NR_IRQS,
|
||||
.init_irq = s3c6410_init_irq,
|
||||
.map_io = crag6410_map_io,
|
||||
.init_machine = crag6410_machine_init,
|
||||
|
@@ -31,6 +31,7 @@
|
||||
#include <video/samsung_fimd.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/map.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#include <asm/irq.h>
|
||||
#include <asm/mach-types.h>
|
||||
@@ -279,6 +280,7 @@ static void __init hmt_machine_init(void)
|
||||
MACHINE_START(HMT, "Airgoo-HMT")
|
||||
/* Maintainer: Peter Korsgaard <jacmet@sunsite.dk> */
|
||||
.atag_offset = 0x100,
|
||||
.nr_irqs = S3C64XX_NR_IRQS,
|
||||
.init_irq = s3c6410_init_irq,
|
||||
.map_io = hmt_map_io,
|
||||
.init_machine = hmt_machine_init,
|
||||
|
@@ -41,6 +41,7 @@
|
||||
#include <linux/platform_data/mmc-sdhci-s3c.h>
|
||||
#include <plat/sdhci.h>
|
||||
#include <linux/platform_data/touchscreen-s3c2410.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#include <video/platform_lcd.h>
|
||||
#include <video/samsung_fimd.h>
|
||||
@@ -233,7 +234,6 @@ static struct platform_device *mini6410_devices[] __initdata = {
|
||||
&s3c_device_fb,
|
||||
&mini6410_lcd_powerdev,
|
||||
&s3c_device_adc,
|
||||
&s3c_device_ts,
|
||||
};
|
||||
|
||||
static void __init mini6410_map_io(void)
|
||||
@@ -332,7 +332,7 @@ static void __init mini6410_machine_init(void)
|
||||
s3c_nand_set_platdata(&mini6410_nand_info);
|
||||
s3c_fb_set_platdata(&mini6410_lcd_pdata[features.lcd_index]);
|
||||
s3c_sdhci1_set_platdata(&mini6410_hsmmc1_pdata);
|
||||
s3c24xx_ts_set_platdata(NULL);
|
||||
s3c64xx_ts_set_platdata(NULL);
|
||||
|
||||
/* configure nCS1 width to 16 bits */
|
||||
|
||||
@@ -363,6 +363,7 @@ static void __init mini6410_machine_init(void)
|
||||
MACHINE_START(MINI6410, "MINI6410")
|
||||
/* Maintainer: Darius Augulis <augulis.darius@gmail.com> */
|
||||
.atag_offset = 0x100,
|
||||
.nr_irqs = S3C64XX_NR_IRQS,
|
||||
.init_irq = s3c6410_init_irq,
|
||||
.map_io = mini6410_map_io,
|
||||
.init_machine = mini6410_machine_init,
|
||||
|
@@ -31,6 +31,7 @@
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
@@ -100,6 +101,7 @@ static void __init ncp_machine_init(void)
|
||||
MACHINE_START(NCP, "NCP")
|
||||
/* Maintainer: Samsung Electronics */
|
||||
.atag_offset = 0x100,
|
||||
.nr_irqs = S3C64XX_NR_IRQS,
|
||||
.init_irq = s3c6410_init_irq,
|
||||
.map_io = ncp_map_io,
|
||||
.init_machine = ncp_machine_init,
|
||||
|
@@ -33,6 +33,7 @@
|
||||
#include <mach/map.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/gpio-samsung.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#include <plat/adc.h>
|
||||
#include <plat/cpu.h>
|
||||
@@ -202,7 +203,6 @@ static struct platform_device *real6410_devices[] __initdata = {
|
||||
&s3c_device_fb,
|
||||
&s3c_device_nand,
|
||||
&s3c_device_adc,
|
||||
&s3c_device_ts,
|
||||
&s3c_device_ohci,
|
||||
};
|
||||
|
||||
@@ -301,7 +301,7 @@ static void __init real6410_machine_init(void)
|
||||
|
||||
s3c_fb_set_platdata(&real6410_lcd_pdata[features.lcd_index]);
|
||||
s3c_nand_set_platdata(&real6410_nand_info);
|
||||
s3c24xx_ts_set_platdata(NULL);
|
||||
s3c64xx_ts_set_platdata(NULL);
|
||||
|
||||
/* configure nCS1 width to 16 bits */
|
||||
|
||||
@@ -331,7 +331,7 @@ static void __init real6410_machine_init(void)
|
||||
MACHINE_START(REAL6410, "REAL6410")
|
||||
/* Maintainer: Darius Augulis <augulis.darius@gmail.com> */
|
||||
.atag_offset = 0x100,
|
||||
|
||||
.nr_irqs = S3C64XX_NR_IRQS,
|
||||
.init_irq = s3c6410_init_irq,
|
||||
.map_io = real6410_map_io,
|
||||
.init_machine = real6410_machine_init,
|
||||
|
@@ -12,6 +12,7 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/fb.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/gpio/machine.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pwm.h>
|
||||
@@ -252,7 +253,6 @@ static struct platform_device *smartq_devices[] __initdata = {
|
||||
&s3c_device_ohci,
|
||||
&s3c_device_rtc,
|
||||
&samsung_device_pwm,
|
||||
&s3c_device_ts,
|
||||
&s3c_device_usb_hsotg,
|
||||
&s3c64xx_device_iis0,
|
||||
&smartq_backlight_device,
|
||||
@@ -383,6 +383,15 @@ void __init smartq_map_io(void)
|
||||
smartq_lcd_mode_set();
|
||||
}
|
||||
|
||||
static struct gpiod_lookup_table smartq_audio_gpios = {
|
||||
.dev_id = "smartq-audio",
|
||||
.table = {
|
||||
GPIO_LOOKUP("GPL", 12, "headphone detect", 0),
|
||||
GPIO_LOOKUP("GPK", 12, "amplifiers shutdown", 0),
|
||||
{ },
|
||||
},
|
||||
};
|
||||
|
||||
void __init smartq_machine_init(void)
|
||||
{
|
||||
s3c_i2c0_set_platdata(NULL);
|
||||
@@ -390,7 +399,7 @@ void __init smartq_machine_init(void)
|
||||
s3c_hwmon_set_platdata(&smartq_hwmon_pdata);
|
||||
s3c_sdhci1_set_platdata(&smartq_internal_hsmmc_pdata);
|
||||
s3c_sdhci2_set_platdata(&smartq_internal_hsmmc_pdata);
|
||||
s3c24xx_ts_set_platdata(&smartq_touchscreen_pdata);
|
||||
s3c64xx_ts_set_platdata(&smartq_touchscreen_pdata);
|
||||
|
||||
i2c_register_board_info(0, smartq_i2c_devs,
|
||||
ARRAY_SIZE(smartq_i2c_devs));
|
||||
@@ -402,4 +411,7 @@ void __init smartq_machine_init(void)
|
||||
|
||||
pwm_add_table(smartq_pwm_lookup, ARRAY_SIZE(smartq_pwm_lookup));
|
||||
platform_add_devices(smartq_devices, ARRAY_SIZE(smartq_devices));
|
||||
|
||||
gpiod_add_lookup_table(&smartq_audio_gpios);
|
||||
platform_device_register_simple("smartq-audio", -1, NULL, 0);
|
||||
}
|
||||
|
@@ -21,6 +21,7 @@
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include <video/samsung_fimd.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/map.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/gpio-samsung.h>
|
||||
@@ -153,6 +154,7 @@ static void __init smartq5_machine_init(void)
|
||||
MACHINE_START(SMARTQ5, "SmartQ 5")
|
||||
/* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */
|
||||
.atag_offset = 0x100,
|
||||
.nr_irqs = S3C64XX_NR_IRQS,
|
||||
.init_irq = s3c6410_init_irq,
|
||||
.map_io = smartq_map_io,
|
||||
.init_machine = smartq5_machine_init,
|
||||
|
@@ -21,6 +21,7 @@
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
#include <video/samsung_fimd.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/map.h>
|
||||
#include <mach/regs-gpio.h>
|
||||
#include <mach/gpio-samsung.h>
|
||||
@@ -169,6 +170,7 @@ static void __init smartq7_machine_init(void)
|
||||
MACHINE_START(SMARTQ7, "SmartQ 7")
|
||||
/* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */
|
||||
.atag_offset = 0x100,
|
||||
.nr_irqs = S3C64XX_NR_IRQS,
|
||||
.init_irq = s3c6410_init_irq,
|
||||
.map_io = smartq_map_io,
|
||||
.init_machine = smartq7_machine_init,
|
||||
|
@@ -27,6 +27,7 @@
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
@@ -88,7 +89,7 @@ static void __init smdk6400_machine_init(void)
|
||||
MACHINE_START(SMDK6400, "SMDK6400")
|
||||
/* Maintainer: Ben Dooks <ben-linux@fluff.org> */
|
||||
.atag_offset = 0x100,
|
||||
|
||||
.nr_irqs = S3C64XX_NR_IRQS,
|
||||
.init_irq = s3c6400_init_irq,
|
||||
.map_io = smdk6400_map_io,
|
||||
.init_machine = smdk6400_machine_init,
|
||||
|
@@ -52,6 +52,7 @@
|
||||
#include <asm/mach/irq.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
#include <asm/irq.h>
|
||||
@@ -289,7 +290,6 @@ static struct platform_device *smdk6410_devices[] __initdata = {
|
||||
&s3c_device_adc,
|
||||
&s3c_device_cfcon,
|
||||
&s3c_device_rtc,
|
||||
&s3c_device_ts,
|
||||
&s3c_device_wdt,
|
||||
};
|
||||
|
||||
@@ -668,7 +668,7 @@ static void __init smdk6410_machine_init(void)
|
||||
|
||||
samsung_keypad_set_platdata(&smdk6410_keypad_data);
|
||||
|
||||
s3c24xx_ts_set_platdata(NULL);
|
||||
s3c64xx_ts_set_platdata(NULL);
|
||||
|
||||
/* configure nCS1 width to 16 bits */
|
||||
|
||||
@@ -707,7 +707,7 @@ static void __init smdk6410_machine_init(void)
|
||||
MACHINE_START(SMDK6410, "SMDK6410")
|
||||
/* Maintainer: Ben Dooks <ben-linux@fluff.org> */
|
||||
.atag_offset = 0x100,
|
||||
|
||||
.nr_irqs = S3C64XX_NR_IRQS,
|
||||
.init_irq = s3c6410_init_irq,
|
||||
.map_io = smdk6410_map_io,
|
||||
.init_machine = smdk6410_machine_init,
|
||||
|
@@ -14,6 +14,7 @@
|
||||
#include <linux/amba/pl08x.h>
|
||||
#include <linux/of.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <mach/irqs.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
@@ -230,6 +231,9 @@ static AMBA_AHB_DEVICE(s3c64xx_dma1, "dma-pl080s.1", 0,
|
||||
|
||||
static int __init s3c64xx_pl080_init(void)
|
||||
{
|
||||
if (!soc_is_s3c64xx())
|
||||
return 0;
|
||||
|
||||
/* Set all DMA configuration to be DMA, not SDMA */
|
||||
writel(0xffffff, S3C64XX_SDMA_SEL);
|
||||
|
||||
|
@@ -22,6 +22,7 @@
|
||||
#include <mach/map.h>
|
||||
#include <mach/irqs.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
#include <plat/devs.h>
|
||||
#include <plat/pm.h>
|
||||
#include <plat/wakeup-mask.h>
|
||||
@@ -332,6 +333,9 @@ int __init s3c64xx_pm_init(void)
|
||||
|
||||
static __init int s3c64xx_pm_initcall(void)
|
||||
{
|
||||
if (!soc_is_s3c64xx())
|
||||
return 0;
|
||||
|
||||
pm_cpu_prep = s3c64xx_pm_prepare;
|
||||
pm_cpu_sleep = s3c64xx_cpu_suspend;
|
||||
|
||||
|
@@ -81,7 +81,7 @@ static struct device s3c6400_dev = {
|
||||
static int __init s3c6400_core_init(void)
|
||||
{
|
||||
/* Not applicable when using DT. */
|
||||
if (of_have_populated_dt())
|
||||
if (of_have_populated_dt() || soc_is_s3c64xx())
|
||||
return 0;
|
||||
|
||||
return subsys_system_register(&s3c6400_subsys, NULL);
|
||||
|
@@ -84,7 +84,7 @@ static struct device s3c6410_dev = {
|
||||
static int __init s3c6410_core_init(void)
|
||||
{
|
||||
/* Not applicable when using DT. */
|
||||
if (of_have_populated_dt())
|
||||
if (of_have_populated_dt() || !soc_is_s3c64xx())
|
||||
return 0;
|
||||
|
||||
return subsys_system_register(&s3c6410_subsys, NULL);
|
||||
|
Reference in New Issue
Block a user