You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC multiplatform support from Arnd Bergmann: "Converting more ARM platforms to multiplatform support. This time, OMAP gets converted, which is a major step since this is by far the largest platform in terms of code size. The same thing happens to the vt8500 platform." * tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: net: cwdavinci_cpdma: export symbols for cpsw remoteproc: omap: depend on OMAP_MBOX_FWK [media] davinci: do not include mach/hardware.h ARM: OMAP2+: Make sure files with omap initcalls include soc.h ARM: OMAP2+: Include soc.h to drm.c to fix compiling ARM: OMAP2+: Fix warning for hwspinlock omap_postcore_initcall ARM: multi_v7_defconfig: add ARCH_ZYNQ ARM: multi_v7_defconfig: remove unnecessary CONFIG_GPIOLIB arm: vt8500: Remove remaining mach includes arm: vt8500: Convert debug-macro.S to be multiplatform friendly arm: vt8500: Remove single platform Kconfig options ARM: OMAP2+: Remove now obsolete uncompress.h and debug-macro.S ARM: OMAP2+: Add minimal support for booting vexpress ARM: OMAP2+: Enable ARCH_MULTIPLATFORM support ARM: OMAP2+: Disable code that currently does not work with multiplaform ARM: OMAP2+: Add multiplatform debug_ll support ARM: OMAP: Fix dmaengine init for multiplatform ARM: OMAP: Fix i2c cmdline initcall for multiplatform ARM: OMAP2+: Use omap initcalls ARM: OMAP2+: Limit omap initcalls to omap only on multiplatform kernels
This commit is contained in:
+10
-18
@@ -932,32 +932,24 @@ config ARCH_DAVINCI
|
||||
help
|
||||
Support for TI's DaVinci platform.
|
||||
|
||||
config ARCH_OMAP
|
||||
bool "TI OMAP"
|
||||
config ARCH_OMAP1
|
||||
bool "TI OMAP1"
|
||||
depends on MMU
|
||||
select ARCH_HAS_CPUFREQ
|
||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select CLKSRC_MMIO
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select HAVE_CLK
|
||||
help
|
||||
Support for TI's OMAP platform (OMAP1/2/3/4).
|
||||
|
||||
config ARCH_VT8500_SINGLE
|
||||
bool "VIA/WonderMedia 85xx"
|
||||
select ARCH_HAS_CPUFREQ
|
||||
select ARCH_OMAP
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select CLKDEV_LOOKUP
|
||||
select COMMON_CLK
|
||||
select CPU_ARM926T
|
||||
select CLKSRC_MMIO
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select GENERIC_IRQ_CHIP
|
||||
select HAVE_CLK
|
||||
select MULTI_IRQ_HANDLER
|
||||
select SPARSE_IRQ
|
||||
select USE_OF
|
||||
select HAVE_IDE
|
||||
select IRQ_DOMAIN
|
||||
select NEED_MACH_IO_H if PCCARD
|
||||
select NEED_MACH_MEMORY_H
|
||||
help
|
||||
Support for VIA/WonderMedia VT8500/WM85xx System-on-Chip.
|
||||
Support for older TI OMAP1 (omap7xx, omap15xx or omap16xx)
|
||||
|
||||
endchoice
|
||||
|
||||
|
||||
@@ -291,6 +291,13 @@ choice
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on MVEBU based platforms.
|
||||
|
||||
config DEBUG_OMAP2PLUS_UART
|
||||
bool "Kernel low-level debugging messages via OMAP2PLUS UART"
|
||||
depends on ARCH_OMAP2PLUS
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on OMAP2PLUS based platforms.
|
||||
|
||||
config DEBUG_PICOXCELL_UART
|
||||
depends on ARCH_PICOXCELL
|
||||
bool "Use PicoXcell UART for low-level debug"
|
||||
@@ -412,6 +419,13 @@ choice
|
||||
of the tiles using the RS1 memory map, including all new A-class
|
||||
core tiles, FPGA-based SMMs and software models.
|
||||
|
||||
config DEBUG_VT8500_UART0
|
||||
bool "Use UART0 on VIA/Wondermedia SoCs"
|
||||
depends on ARCH_VT8500
|
||||
help
|
||||
This option selects UART0 on VIA/Wondermedia System-on-a-chip
|
||||
devices, including VT8500, WM8505, WM8650 and WM8850.
|
||||
|
||||
config DEBUG_LL_UART_NONE
|
||||
bool "No low-level debugging UART"
|
||||
depends on !ARCH_MULTIPLATFORM
|
||||
@@ -459,6 +473,54 @@ config DEBUG_IMX6Q_UART_PORT
|
||||
Choose UART port on which kernel low-level debug messages
|
||||
should be output.
|
||||
|
||||
choice
|
||||
prompt "Low-level debug console UART"
|
||||
depends on DEBUG_OMAP2PLUS_UART
|
||||
|
||||
config DEBUG_OMAP2UART1
|
||||
bool "OMAP2/3/4 UART1 (omap2/3 sdp boards and some omap3 boards)"
|
||||
help
|
||||
This covers at least h4, 2430sdp, 3430sdp, 3630sdp,
|
||||
omap3 torpedo and 3530 lv som.
|
||||
|
||||
config DEBUG_OMAP2UART2
|
||||
bool "OMAP2/3/4 UART2"
|
||||
|
||||
config DEBUG_OMAP2UART3
|
||||
bool "OMAP2 UART3 (n8x0)"
|
||||
|
||||
config DEBUG_OMAP3UART3
|
||||
bool "OMAP3 UART3 (most omap3 boards)"
|
||||
help
|
||||
This covers at least cm_t3x, beagle, crane, devkit8000,
|
||||
igep00x0, ldp, n900, n9(50), pandora, overo, touchbook,
|
||||
and 3517evm.
|
||||
|
||||
config DEBUG_OMAP4UART3
|
||||
bool "OMAP4/5 UART3 (omap4 blaze, panda, omap5 sevm)"
|
||||
|
||||
config DEBUG_OMAP3UART4
|
||||
bool "OMAP36XX UART4"
|
||||
|
||||
config DEBUG_OMAP4UART4
|
||||
bool "OMAP4/5 UART4"
|
||||
|
||||
config DEBUG_TI81XXUART1
|
||||
bool "TI81XX UART1 (ti8148evm)"
|
||||
|
||||
config DEBUG_TI81XXUART2
|
||||
bool "TI81XX UART2"
|
||||
|
||||
config DEBUG_TI81XXUART3
|
||||
bool "TI81XX UART3 (ti8168evm)"
|
||||
|
||||
config DEBUG_AM33XXUART1
|
||||
bool "AM33XX UART1"
|
||||
|
||||
config DEBUG_ZOOM_UART
|
||||
bool "Zoom2/3 UART"
|
||||
endchoice
|
||||
|
||||
choice
|
||||
prompt "Low-level debug console UART"
|
||||
depends on DEBUG_LL && DEBUG_TEGRA_UART
|
||||
@@ -501,11 +563,13 @@ config DEBUG_LL_INCLUDE
|
||||
DEBUG_IMX6Q_UART
|
||||
default "debug/highbank.S" if DEBUG_HIGHBANK_UART
|
||||
default "debug/mvebu.S" if DEBUG_MVEBU_UART
|
||||
default "debug/omap2plus.S" if DEBUG_OMAP2PLUS_UART
|
||||
default "debug/picoxcell.S" if DEBUG_PICOXCELL_UART
|
||||
default "debug/socfpga.S" if DEBUG_SOCFPGA_UART
|
||||
default "debug/sunxi.S" if DEBUG_SUNXI_UART0 || DEBUG_SUNXI_UART1
|
||||
default "debug/vexpress.S" if DEBUG_VEXPRESS_UART0_DETECT || \
|
||||
DEBUG_VEXPRESS_UART0_CA9 || DEBUG_VEXPRESS_UART0_RS1
|
||||
default "debug/vt8500.S" if DEBUG_VT8500_UART0
|
||||
default "debug/tegra.S" if DEBUG_TEGRA_UART
|
||||
default "debug/zynq.S" if DEBUG_ZYNQ_UART0 || DEBUG_ZYNQ_UART1
|
||||
default "mach/debug-macro.S"
|
||||
|
||||
@@ -8,6 +8,7 @@ CONFIG_ARCH_HIGHBANK=y
|
||||
CONFIG_ARCH_SOCFPGA=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
# CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA is not set
|
||||
CONFIG_ARCH_ZYNQ=y
|
||||
CONFIG_ARM_ERRATA_754322=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
@@ -39,7 +40,6 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_DESIGNWARE_PLATFORM=y
|
||||
CONFIG_SPI=y
|
||||
CONFIG_SPI_PL022=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_FB=y
|
||||
CONFIG_FB_ARMCLCD=y
|
||||
CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||
|
||||
@@ -20,9 +20,10 @@ CONFIG_MODULE_FORCE_UNLOAD=y
|
||||
CONFIG_MODVERSIONS=y
|
||||
CONFIG_MODULE_SRCVERSION_ALL=y
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
CONFIG_ARCH_OMAP=y
|
||||
CONFIG_ARCH_OMAP2PLUS=y
|
||||
CONFIG_OMAP_RESET_CLOCKS=y
|
||||
CONFIG_OMAP_MUX_DEBUG=y
|
||||
CONFIG_ARCH_VEXPRESS_CA9X4=y
|
||||
CONFIG_ARM_THUMBEE=y
|
||||
CONFIG_ARM_ERRATA_411920=y
|
||||
CONFIG_NO_HZ=y
|
||||
@@ -121,6 +122,8 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
|
||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
|
||||
CONFIG_SERIAL_8250_DETECT_IRQ=y
|
||||
CONFIG_SERIAL_8250_RSA=y
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
CONFIG_HW_RANDOM=y
|
||||
CONFIG_I2C_CHARDEV=y
|
||||
CONFIG_SPI=y
|
||||
@@ -194,6 +197,7 @@ CONFIG_USB_ZERO=m
|
||||
CONFIG_MMC=y
|
||||
CONFIG_MMC_UNSAFE_RESUME=y
|
||||
CONFIG_SDIO_UART=y
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_MMC_OMAP=y
|
||||
CONFIG_MMC_OMAP_HS=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
|
||||
+81
-56
@@ -1,5 +1,4 @@
|
||||
/* arch/arm/mach-omap2/include/mach/debug-macro.S
|
||||
*
|
||||
/*
|
||||
* Debugging macro include header
|
||||
*
|
||||
* Copyright (C) 1994-1999 Russell King
|
||||
@@ -13,7 +12,49 @@
|
||||
|
||||
#include <linux/serial_reg.h>
|
||||
|
||||
#include <mach/serial.h>
|
||||
/* OMAP2 serial ports */
|
||||
#define OMAP2_UART1_BASE 0x4806a000
|
||||
#define OMAP2_UART2_BASE 0x4806c000
|
||||
#define OMAP2_UART3_BASE 0x4806e000
|
||||
|
||||
/* OMAP3 serial ports */
|
||||
#define OMAP3_UART1_BASE OMAP2_UART1_BASE
|
||||
#define OMAP3_UART2_BASE OMAP2_UART2_BASE
|
||||
#define OMAP3_UART3_BASE 0x49020000
|
||||
#define OMAP3_UART4_BASE 0x49042000 /* Only on 36xx */
|
||||
#define OMAP3_UART4_AM35XX_BASE 0x4809E000 /* Only on AM35xx */
|
||||
|
||||
/* OMAP4 serial ports */
|
||||
#define OMAP4_UART1_BASE OMAP2_UART1_BASE
|
||||
#define OMAP4_UART2_BASE OMAP2_UART2_BASE
|
||||
#define OMAP4_UART3_BASE 0x48020000
|
||||
#define OMAP4_UART4_BASE 0x4806e000
|
||||
|
||||
/* TI81XX serial ports */
|
||||
#define TI81XX_UART1_BASE 0x48020000
|
||||
#define TI81XX_UART2_BASE 0x48022000
|
||||
#define TI81XX_UART3_BASE 0x48024000
|
||||
|
||||
/* AM3505/3517 UART4 */
|
||||
#define AM35XX_UART4_BASE 0x4809E000 /* Only on AM3505/3517 */
|
||||
|
||||
/* AM33XX serial port */
|
||||
#define AM33XX_UART1_BASE 0x44E09000
|
||||
|
||||
/* OMAP5 serial ports */
|
||||
#define OMAP5_UART1_BASE OMAP2_UART1_BASE
|
||||
#define OMAP5_UART2_BASE OMAP2_UART2_BASE
|
||||
#define OMAP5_UART3_BASE OMAP4_UART3_BASE
|
||||
#define OMAP5_UART4_BASE OMAP4_UART4_BASE
|
||||
#define OMAP5_UART5_BASE 0x48066000
|
||||
#define OMAP5_UART6_BASE 0x48068000
|
||||
|
||||
/* External port on Zoom2/3 */
|
||||
#define ZOOM_UART_BASE 0x10000000
|
||||
#define ZOOM_UART_VIRT 0xfa400000
|
||||
|
||||
#define OMAP_PORT_SHIFT 2
|
||||
#define ZOOM_PORT_SHIFT 1
|
||||
|
||||
#define UART_OFFSET(addr) ((addr) & 0x00ffffff)
|
||||
|
||||
@@ -23,12 +64,6 @@ omap_uart_virt: .word 0
|
||||
omap_uart_lsr: .word 0
|
||||
.popsection
|
||||
|
||||
/*
|
||||
* Note that this code won't work if the bootloader passes
|
||||
* a wrong machine ID number in r1. To debug, just hardcode
|
||||
* the desired UART phys and virt addresses temporarily into
|
||||
* the omap_uart_phys and omap_uart_virt above.
|
||||
*/
|
||||
.macro addruart, rp, rv, tmp
|
||||
|
||||
/* Use omap_uart_phys/virt if already configured */
|
||||
@@ -43,74 +78,64 @@ omap_uart_lsr: .word 0
|
||||
cmpne \rv, #0
|
||||
bne 100f @ already configured
|
||||
|
||||
/* Check the debug UART configuration set in uncompress.h */
|
||||
mov \rp, pc
|
||||
ldr \rv, =OMAP_UART_INFO_OFS
|
||||
and \rp, \rp, #0xff000000
|
||||
ldr \rp, [\rp, \rv]
|
||||
|
||||
/* Select the UART to use based on the UART1 scratchpad value */
|
||||
cmp \rp, #0 @ no port configured?
|
||||
beq 21f @ if none, try to use UART1
|
||||
cmp \rp, #OMAP2UART1 @ OMAP2/3/4UART1
|
||||
beq 21f @ configure OMAP2/3/4UART1
|
||||
cmp \rp, #OMAP2UART2 @ OMAP2/3/4UART2
|
||||
beq 22f @ configure OMAP2/3/4UART2
|
||||
cmp \rp, #OMAP2UART3 @ only on 24xx
|
||||
beq 23f @ configure OMAP2UART3
|
||||
cmp \rp, #OMAP3UART3 @ only on 34xx
|
||||
beq 33f @ configure OMAP3UART3
|
||||
cmp \rp, #OMAP4UART3 @ only on 44xx/54xx
|
||||
beq 43f @ configure OMAP4/5UART3
|
||||
cmp \rp, #OMAP3UART4 @ only on 36xx
|
||||
beq 34f @ configure OMAP3UART4
|
||||
cmp \rp, #OMAP4UART4 @ only on 44xx/54xx
|
||||
beq 44f @ configure OMAP4/5UART4
|
||||
cmp \rp, #TI81XXUART1 @ ti81Xx UART offsets different
|
||||
beq 81f @ configure UART1
|
||||
cmp \rp, #TI81XXUART2 @ ti81Xx UART offsets different
|
||||
beq 82f @ configure UART2
|
||||
cmp \rp, #TI81XXUART3 @ ti81Xx UART offsets different
|
||||
beq 83f @ configure UART3
|
||||
cmp \rp, #AM33XXUART1 @ AM33XX UART offsets different
|
||||
beq 84f @ configure UART1
|
||||
cmp \rp, #ZOOM_UART @ only on zoom2/3
|
||||
beq 95f @ configure ZOOM_UART
|
||||
|
||||
/* Configure the UART offset from the phys/virt base */
|
||||
21: mov \rp, #UART_OFFSET(OMAP2_UART1_BASE) @ omap2/3/4
|
||||
#ifdef CONFIG_DEBUG_OMAP2UART1
|
||||
mov \rp, #UART_OFFSET(OMAP2_UART1_BASE) @ omap2/3/4
|
||||
b 98f
|
||||
22: mov \rp, #UART_OFFSET(OMAP2_UART2_BASE) @ omap2/3/4
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_OMAP2UART2
|
||||
mov \rp, #UART_OFFSET(OMAP2_UART2_BASE) @ omap2/3/4
|
||||
b 98f
|
||||
23: mov \rp, #UART_OFFSET(OMAP2_UART3_BASE)
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_OMAP2UART3
|
||||
mov \rp, #UART_OFFSET(OMAP2_UART3_BASE)
|
||||
b 98f
|
||||
33: mov \rp, #UART_OFFSET(OMAP3_UART1_BASE)
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_OMAP3UART3
|
||||
mov \rp, #UART_OFFSET(OMAP3_UART1_BASE)
|
||||
add \rp, \rp, #0x00fb0000
|
||||
add \rp, \rp, #0x00006000 @ OMAP3_UART3_BASE
|
||||
b 98f
|
||||
34: mov \rp, #UART_OFFSET(OMAP3_UART1_BASE)
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_OMAP4UART3
|
||||
mov \rp, #UART_OFFSET(OMAP4_UART3_BASE)
|
||||
b 98f
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_OMAP3UART4
|
||||
mov \rp, #UART_OFFSET(OMAP3_UART1_BASE)
|
||||
add \rp, \rp, #0x00fb0000
|
||||
add \rp, \rp, #0x00028000 @ OMAP3_UART4_BASE
|
||||
b 98f
|
||||
43: mov \rp, #UART_OFFSET(OMAP4_UART3_BASE)
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_OMAP4UART4
|
||||
mov \rp, #UART_OFFSET(OMAP4_UART4_BASE)
|
||||
b 98f
|
||||
44: mov \rp, #UART_OFFSET(OMAP4_UART4_BASE)
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_TI81XXUART1
|
||||
mov \rp, #UART_OFFSET(TI81XX_UART1_BASE)
|
||||
b 98f
|
||||
81: mov \rp, #UART_OFFSET(TI81XX_UART1_BASE)
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_TI81XXUART2
|
||||
mov \rp, #UART_OFFSET(TI81XX_UART2_BASE)
|
||||
b 98f
|
||||
82: mov \rp, #UART_OFFSET(TI81XX_UART2_BASE)
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_TI81XXUART3
|
||||
mov \rp, #UART_OFFSET(TI81XX_UART3_BASE)
|
||||
b 98f
|
||||
83: mov \rp, #UART_OFFSET(TI81XX_UART3_BASE)
|
||||
b 98f
|
||||
84: ldr \rp, =AM33XX_UART1_BASE
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_AM33XXUART1
|
||||
ldr \rp, =AM33XX_UART1_BASE
|
||||
and \rp, \rp, #0x00ffffff
|
||||
b 97f
|
||||
95: ldr \rp, =ZOOM_UART_BASE
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_ZOOM_UART
|
||||
ldr \rp, =ZOOM_UART_BASE
|
||||
str \rp, [\tmp, #0] @ omap_uart_phys
|
||||
ldr \rp, =ZOOM_UART_VIRT
|
||||
str \rp, [\tmp, #4] @ omap_uart_virt
|
||||
mov \rp, #(UART_LSR << ZOOM_PORT_SHIFT)
|
||||
str \rp, [\tmp, #8] @ omap_uart_lsr
|
||||
#endif
|
||||
b 10b
|
||||
|
||||
/* AM33XX: Store both phys and virt address for the uart */
|
||||
@@ -1,20 +1,24 @@
|
||||
/*
|
||||
* arch/arm/mach-vt8500/include/mach/debug-macro.S
|
||||
/*
|
||||
* Debugging macro include header
|
||||
*
|
||||
* Copyright (C) 2010 Alexey Charkov <alchark@gmail.com>
|
||||
*
|
||||
* Debugging macro include header
|
||||
* Moved from arch/arm/mach-vt8500/include/mach/debug-macro.S
|
||||
* Minor changes for readability.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
*/
|
||||
|
||||
#define DEBUG_LL_PHYS_BASE 0xD8000000
|
||||
#define DEBUG_LL_VIRT_BASE 0xF8000000
|
||||
#define DEBUG_LL_UART_OFFSET 0x00200000
|
||||
|
||||
#if defined(CONFIG_DEBUG_VT8500_UART0)
|
||||
.macro addruart, rp, rv, tmp
|
||||
mov \rp, #0x00200000
|
||||
orr \rv, \rp, #0xf8000000
|
||||
orr \rp, \rp, #0xd8000000
|
||||
mov \rp, #DEBUG_LL_UART_OFFSET
|
||||
orr \rv, \rp, #DEBUG_LL_VIRT_BASE
|
||||
orr \rp, \rp, #DEBUG_LL_PHYS_BASE
|
||||
.endm
|
||||
|
||||
.macro senduart,rd,rx
|
||||
@@ -29,3 +33,5 @@
|
||||
|
||||
.macro waituart,rd,rx
|
||||
.endm
|
||||
|
||||
#endif
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/omap-dma.h>
|
||||
#include <mach/tc.h>
|
||||
|
||||
@@ -270,11 +270,17 @@ static u32 configure_dma_errata(void)
|
||||
return errata;
|
||||
}
|
||||
|
||||
static const struct platform_device_info omap_dma_dev_info = {
|
||||
.name = "omap-dma-engine",
|
||||
.id = -1,
|
||||
.dma_mask = DMA_BIT_MASK(32),
|
||||
};
|
||||
|
||||
static int __init omap1_system_dma_init(void)
|
||||
{
|
||||
struct omap_system_dma_plat_info *p;
|
||||
struct omap_dma_dev_attr *d;
|
||||
struct platform_device *pdev;
|
||||
struct platform_device *pdev, *dma_pdev;
|
||||
int ret;
|
||||
|
||||
pdev = platform_device_alloc("omap_dma_system", 0);
|
||||
@@ -380,8 +386,16 @@ static int __init omap1_system_dma_init(void)
|
||||
dma_common_ch_start = CPC;
|
||||
dma_common_ch_end = COLOR;
|
||||
|
||||
dma_pdev = platform_device_register_full(&omap_dma_dev_info);
|
||||
if (IS_ERR(dma_pdev)) {
|
||||
ret = PTR_ERR(dma_pdev);
|
||||
goto exit_release_pdev;
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
||||
exit_release_pdev:
|
||||
platform_device_del(pdev);
|
||||
exit_release_chan:
|
||||
kfree(d->chan);
|
||||
exit_release_d:
|
||||
|
||||
@@ -91,3 +91,9 @@ int __init omap_i2c_add_bus(struct omap_i2c_bus_platform_data *pdata,
|
||||
|
||||
return platform_device_register(pdev);
|
||||
}
|
||||
|
||||
static int __init omap_i2c_cmdline(void)
|
||||
{
|
||||
return omap_register_i2c_bus_cmdline();
|
||||
}
|
||||
subsys_initcall(omap_i2c_cmdline);
|
||||
|
||||
@@ -1,3 +1,26 @@
|
||||
config ARCH_OMAP
|
||||
bool
|
||||
|
||||
config ARCH_OMAP2PLUS
|
||||
bool "TI OMAP2/3/4/5 SoCs with device tree support" if (ARCH_MULTI_V6 || ARCH_MULTI_V7)
|
||||
select ARCH_HAS_CPUFREQ
|
||||
select ARCH_HAS_HOLES_MEMORYMODEL
|
||||
select ARCH_OMAP
|
||||
select ARCH_REQUIRE_GPIOLIB
|
||||
select CLKDEV_LOOKUP
|
||||
select CLKSRC_MMIO
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select GENERIC_IRQ_CHIP
|
||||
select HAVE_CLK
|
||||
select OMAP_DM_TIMER
|
||||
select PINCTRL
|
||||
select PROC_DEVICETREE if PROC_FS
|
||||
select SPARSE_IRQ
|
||||
select USE_OF
|
||||
help
|
||||
Systems based on OMAP2, OMAP3, OMAP4 or OMAP5
|
||||
|
||||
|
||||
if ARCH_OMAP2PLUS
|
||||
|
||||
menu "TI OMAP2/3/4 Specific Features"
|
||||
@@ -397,7 +420,7 @@ config OMAP3_SDRC_AC_TIMING
|
||||
|
||||
config OMAP4_ERRATA_I688
|
||||
bool "OMAP4 errata: Async Bridge Corruption"
|
||||
depends on ARCH_OMAP4
|
||||
depends on ARCH_OMAP4 && !ARCH_MULTIPLATFORM
|
||||
select ARCH_HAS_BARRIERS
|
||||
help
|
||||
If a data is stalled inside asynchronous bridge because of back
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
# Makefile for the linux kernel.
|
||||
#
|
||||
|
||||
ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include \
|
||||
-I$(srctree)/arch/arm/plat-omap/include
|
||||
|
||||
# Common support
|
||||
obj-y := id.o io.o control.o mux.o devices.o fb.o serial.o gpmc.o timer.o pm.o \
|
||||
common.o gpio.o dma.o wd_timer.o display.o i2c.o hdq1w.o omap_hwmod.o \
|
||||
|
||||
@@ -495,7 +495,7 @@ static int __init beagle_opp_init(void)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
device_initcall(beagle_opp_init);
|
||||
omap_device_initcall(beagle_opp_init);
|
||||
|
||||
static void __init omap3_beagle_init(void)
|
||||
{
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <video/omapdss.h>
|
||||
#include <linux/platform_data/spi-omap2-mcspi.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "board-rx51.h"
|
||||
|
||||
#include "mux.h"
|
||||
@@ -85,5 +86,5 @@ static int __init rx51_video_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
subsys_initcall(rx51_video_init);
|
||||
omap_subsys_initcall(rx51_video_init);
|
||||
#endif /* defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE) */
|
||||
|
||||
@@ -52,6 +52,6 @@ static int __init omap2xxx_clk_arch_init(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
arch_initcall(omap2xxx_clk_arch_init);
|
||||
omap_arch_initcall(omap2xxx_clk_arch_init);
|
||||
|
||||
|
||||
|
||||
@@ -94,6 +94,6 @@ static int __init omap3xxx_clk_arch_init(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
arch_initcall(omap3xxx_clk_arch_init);
|
||||
omap_arch_initcall(omap3xxx_clk_arch_init);
|
||||
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ static int __init omap3_l3_init(void)
|
||||
|
||||
return IS_ERR(pdev) ? PTR_ERR(pdev) : 0;
|
||||
}
|
||||
postcore_initcall(omap3_l3_init);
|
||||
omap_postcore_initcall(omap3_l3_init);
|
||||
|
||||
static int __init omap4_l3_init(void)
|
||||
{
|
||||
@@ -104,7 +104,7 @@ static int __init omap4_l3_init(void)
|
||||
|
||||
return IS_ERR(pdev) ? PTR_ERR(pdev) : 0;
|
||||
}
|
||||
postcore_initcall(omap4_l3_init);
|
||||
omap_postcore_initcall(omap4_l3_init);
|
||||
|
||||
#if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
|
||||
|
||||
@@ -779,4 +779,4 @@ static int __init omap2_init_devices(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
arch_initcall(omap2_init_devices);
|
||||
omap_arch_initcall(omap2_init_devices);
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/device.h>
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/omap-dma.h>
|
||||
|
||||
#include "soc.h"
|
||||
@@ -288,9 +288,26 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct platform_device_info omap_dma_dev_info = {
|
||||
.name = "omap-dma-engine",
|
||||
.id = -1,
|
||||
.dma_mask = DMA_BIT_MASK(32),
|
||||
};
|
||||
|
||||
static int __init omap2_system_dma_init(void)
|
||||
{
|
||||
return omap_hwmod_for_each_by_class("dma",
|
||||
struct platform_device *pdev;
|
||||
int res;
|
||||
|
||||
res = omap_hwmod_for_each_by_class("dma",
|
||||
omap2_system_dma_init_dev, NULL);
|
||||
if (res)
|
||||
return res;
|
||||
|
||||
pdev = platform_device_register_full(&omap_dma_dev_info);
|
||||
if (IS_ERR(pdev))
|
||||
return PTR_ERR(pdev);
|
||||
|
||||
return res;
|
||||
}
|
||||
arch_initcall(omap2_system_dma_init);
|
||||
omap_arch_initcall(omap2_system_dma_init);
|
||||
|
||||
@@ -63,6 +63,6 @@ static int __init omap_init_drm(void)
|
||||
|
||||
}
|
||||
|
||||
arch_initcall(omap_init_drm);
|
||||
omap_arch_initcall(omap_init_drm);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -47,4 +47,4 @@ static int __init emu_init(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
subsys_initcall(emu_init);
|
||||
omap_subsys_initcall(emu_init);
|
||||
|
||||
@@ -89,7 +89,7 @@ static int __init omap_init_vrfb(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
arch_initcall(omap_init_vrfb);
|
||||
omap_arch_initcall(omap_init_vrfb);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE)
|
||||
@@ -113,6 +113,6 @@ static int __init omap_init_fb(void)
|
||||
return platform_device_register(&omap_fb_device);
|
||||
}
|
||||
|
||||
arch_initcall(omap_init_fb);
|
||||
omap_arch_initcall(omap_init_fb);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/platform_data/gpio-omap.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "omap_hwmod.h"
|
||||
#include "omap_device.h"
|
||||
#include "omap-pm.h"
|
||||
@@ -147,7 +148,7 @@ static int __init omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
|
||||
/*
|
||||
* gpio_init needs to be done before
|
||||
* machine_init functions access gpio APIs.
|
||||
* Hence gpio_init is a postcore_initcall.
|
||||
* Hence gpio_init is a omap_postcore_initcall.
|
||||
*/
|
||||
static int __init omap2_gpio_init(void)
|
||||
{
|
||||
@@ -157,4 +158,4 @@ static int __init omap2_gpio_init(void)
|
||||
|
||||
return omap_hwmod_for_each_by_class("gpio", omap2_gpio_dev_init, NULL);
|
||||
}
|
||||
postcore_initcall(omap2_gpio_init);
|
||||
omap_postcore_initcall(omap2_gpio_init);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user