This contains OMAP related fbdev changes for 3.15. The bulk of the patches are
for adding Device Tree support for OMAP Display Subsystem:
* SoCs: OMAP2/3/4
* Boards: OMAP4 Panda, OMAP4 SDP, OMAP3 Beagle, OMAP3 Beagle-xM, OMAP3
IGEP0020, OMAP3 N900
* Devices: TFP410 Encoder, tpd12s015 HDMI companion chip, Sony acx565akm panel,
MIPI DSI Command mode panel and HDMI, DVI and Analog TV connectors
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)
iQIcBAABAgAGBQJTQmaWAAoJEPo9qoy8lh71LS8P+QHkUWD22XhPqt2NaeIxFhzU
rq7uW7iMtzIawb+y2+GLHykk4obmJKzpanhe+p3dZMSEG8O4s6IyRx8LoJGLeWoP
LtnV77Fbh3p9Bn1nLkDmszbcdSSbH8VseykfV5yCJ0lhTPjUXwm3JBFJ57AtOqeF
ya/13NCKR0v2FFCy89rOc9Iu+dYbVVNakTWcN1qcZOSjNQ6cLWyq97OmC4BD2mkC
H9u4XC/+UC6WJZT0PVs9cPn7D2QCt1ZR8eULmSL3YO2rXdLLfL87brtCS1uMNXk2
MUq9KVS1Iw+6yk248F9AyHkg5nZOzWoeXxZj0m48kaLlFBfkGuuiRSJZhc5qgBtm
61X6eQDclJUo1tgEmtH1wCFe4M3vZ0ImK21bX3PXO+IBgz4Zb3e3uqOAJy4LREJk
KZnjfwn/Gyp0D21YSZvquAZ+qZeZMttiwIlZVD26+Xt7GincC5e/HPi58nJ5IcQQ
BuUsjI8fjFcYTf5O2DqdAaYo3cpt8tfUwCXL6Iw32SYi4xz1Rocmxe/xnGCUxZHk
j3qAT5NkHcQL5xSMZgNQUyyqST1Ey9lgmLlQmnxknRPCOW35tbRo621CNz+5Z0MR
TJDu5REahAS7jEmeAjD1m1Xs4X0tYltiPgnbCwFtNHCvTdnw3R916quqRcQKaP6d
Irzufbo2EoTG8cVhvE8e
=Mnc1
-----END PGP SIGNATURE-----
Merge tag 'fbdev-omap-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux
Pull OMAP fbdev changes from Tomi Valkeinen:
"This is based on the already pulled fbdev-main changes, and this also
merges .dts branch from Tony Lindgren (which has also been pulled), so
that I was able to add the display related .dts changes.
This contains OMAP related fbdev changes for 3.15. The bulk of the
patches are for adding Device Tree support for OMAP Display Subsystem:
- SoCs: OMAP2/3/4
- Boards: OMAP4 Panda, OMAP4 SDP, OMAP3 Beagle, OMAP3 Beagle-xM,
OMAP3 IGEP0020, OMAP3 N900
- Devices: TFP410 Encoder, tpd12s015 HDMI companion chip, Sony
acx565akm panel, MIPI DSI Command mode panel and HDMI, DVI and
Analog TV connectors"
* tag 'fbdev-omap-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (45 commits)
OMAPDSS: HDMI: fix interlace output
OMAPDSS: add missing __init for dss_init_ports
ARM: OMAP2+: remove pdata quirks for displays
OMAPDSS: remove DT hacks for regulators
Doc/DT: Add DT binding documentation for tpd12s015 encoder
Doc/DT: Add DT binding documentation for TFP410 encoder
Doc/DT: Add DT binding documentation for Sony acx565akm panel
Doc/DT: Add DT binding documentation for MIPI DSI CM Panel
Doc/DT: Add DT binding documentation for HDMI Connector
Doc/DT: Add DT binding documentation for DVI Connector
Doc/DT: Add DT binding documentation for Analog TV Connector
ARM: omap3-n900.dts: add display information
ARM: omap3-igep0020.dts: add display information
ARM: omap3-beagle-xm.dts: add display information
ARM: omap3-beagle.dts: add display information
ARM: omap4-sdp.dts: add display information
Doc/DT: Add DT binding documentation for OMAP DSS
OMAPDSS: acx565akm: Add DT support
OMAPDSS: connector-analog-tv: Add DT support
OMAPDSS: hdmi-connector: Add DT support
...
261 lines
6.7 KiB
C
261 lines
6.7 KiB
C
/*
|
|
* Copyright (C) 2005 Nokia Corporation
|
|
* Author: Paul Mundt <paul.mundt@nokia.com>
|
|
*
|
|
* Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
|
|
*
|
|
* Modified from the original mach-omap/omap2/board-generic.c did by Paul
|
|
* to support the OMAP2+ device tree boards with an unique board file.
|
|
*
|
|
* 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.
|
|
*/
|
|
#include <linux/io.h>
|
|
#include <linux/of_irq.h>
|
|
#include <linux/of_platform.h>
|
|
#include <linux/irqdomain.h>
|
|
|
|
#include <asm/mach/arch.h>
|
|
|
|
#include "common.h"
|
|
|
|
#if !(defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3))
|
|
#define intc_of_init NULL
|
|
#endif
|
|
#ifndef CONFIG_ARCH_OMAP4
|
|
#define gic_of_init NULL
|
|
#endif
|
|
|
|
static struct of_device_id omap_dt_match_table[] __initdata = {
|
|
{ .compatible = "simple-bus", },
|
|
{ .compatible = "ti,omap-infra", },
|
|
{ }
|
|
};
|
|
|
|
static void __init omap_generic_init(void)
|
|
{
|
|
omapdss_early_init_of();
|
|
|
|
pdata_quirks_init(omap_dt_match_table);
|
|
|
|
omapdss_init_of();
|
|
}
|
|
|
|
#ifdef CONFIG_SOC_OMAP2420
|
|
static const char *omap242x_boards_compat[] __initdata = {
|
|
"ti,omap2420",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
|
|
.reserve = omap_reserve,
|
|
.map_io = omap242x_map_io,
|
|
.init_early = omap2420_init_early,
|
|
.init_irq = omap_intc_of_init,
|
|
.handle_irq = omap2_intc_handle_irq,
|
|
.init_machine = omap_generic_init,
|
|
.init_time = omap2_sync32k_timer_init,
|
|
.dt_compat = omap242x_boards_compat,
|
|
.restart = omap2xxx_restart,
|
|
MACHINE_END
|
|
#endif
|
|
|
|
#ifdef CONFIG_SOC_OMAP2430
|
|
static const char *omap243x_boards_compat[] __initdata = {
|
|
"ti,omap2430",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
|
|
.reserve = omap_reserve,
|
|
.map_io = omap243x_map_io,
|
|
.init_early = omap2430_init_early,
|
|
.init_irq = omap_intc_of_init,
|
|
.handle_irq = omap2_intc_handle_irq,
|
|
.init_machine = omap_generic_init,
|
|
.init_time = omap2_sync32k_timer_init,
|
|
.dt_compat = omap243x_boards_compat,
|
|
.restart = omap2xxx_restart,
|
|
MACHINE_END
|
|
#endif
|
|
|
|
#ifdef CONFIG_ARCH_OMAP3
|
|
static const char *omap3_boards_compat[] __initdata = {
|
|
"ti,omap3430",
|
|
"ti,omap3",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
|
|
.reserve = omap_reserve,
|
|
.map_io = omap3_map_io,
|
|
.init_early = omap3430_init_early,
|
|
.init_irq = omap_intc_of_init,
|
|
.handle_irq = omap3_intc_handle_irq,
|
|
.init_machine = omap_generic_init,
|
|
.init_late = omap3_init_late,
|
|
.init_time = omap3_sync32k_timer_init,
|
|
.dt_compat = omap3_boards_compat,
|
|
.restart = omap3xxx_restart,
|
|
MACHINE_END
|
|
|
|
static const char *omap36xx_boards_compat[] __initdata = {
|
|
"ti,omap36xx",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)")
|
|
.reserve = omap_reserve,
|
|
.map_io = omap3_map_io,
|
|
.init_early = omap3630_init_early,
|
|
.init_irq = omap_intc_of_init,
|
|
.handle_irq = omap3_intc_handle_irq,
|
|
.init_machine = omap_generic_init,
|
|
.init_late = omap3_init_late,
|
|
.init_time = omap3_sync32k_timer_init,
|
|
.dt_compat = omap36xx_boards_compat,
|
|
.restart = omap3xxx_restart,
|
|
MACHINE_END
|
|
|
|
static const char *omap3_gp_boards_compat[] __initdata = {
|
|
"ti,omap3-beagle",
|
|
"timll,omap3-devkit8000",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)")
|
|
.reserve = omap_reserve,
|
|
.map_io = omap3_map_io,
|
|
.init_early = omap3430_init_early,
|
|
.init_irq = omap_intc_of_init,
|
|
.handle_irq = omap3_intc_handle_irq,
|
|
.init_machine = omap_generic_init,
|
|
.init_late = omap3_init_late,
|
|
.init_time = omap3_secure_sync32k_timer_init,
|
|
.dt_compat = omap3_gp_boards_compat,
|
|
.restart = omap3xxx_restart,
|
|
MACHINE_END
|
|
|
|
static const char *am3517_boards_compat[] __initdata = {
|
|
"ti,am3517",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(AM3517_DT, "Generic AM3517 (Flattened Device Tree)")
|
|
.reserve = omap_reserve,
|
|
.map_io = omap3_map_io,
|
|
.init_early = am35xx_init_early,
|
|
.init_irq = omap_intc_of_init,
|
|
.handle_irq = omap3_intc_handle_irq,
|
|
.init_machine = omap_generic_init,
|
|
.init_late = omap3_init_late,
|
|
.init_time = omap3_gptimer_timer_init,
|
|
.dt_compat = am3517_boards_compat,
|
|
.restart = omap3xxx_restart,
|
|
MACHINE_END
|
|
#endif
|
|
|
|
#ifdef CONFIG_SOC_AM33XX
|
|
static const char *am33xx_boards_compat[] __initdata = {
|
|
"ti,am33xx",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(AM33XX_DT, "Generic AM33XX (Flattened Device Tree)")
|
|
.reserve = omap_reserve,
|
|
.map_io = am33xx_map_io,
|
|
.init_early = am33xx_init_early,
|
|
.init_irq = omap_intc_of_init,
|
|
.handle_irq = omap3_intc_handle_irq,
|
|
.init_machine = omap_generic_init,
|
|
.init_late = am33xx_init_late,
|
|
.init_time = omap3_gptimer_timer_init,
|
|
.dt_compat = am33xx_boards_compat,
|
|
.restart = am33xx_restart,
|
|
MACHINE_END
|
|
#endif
|
|
|
|
#ifdef CONFIG_ARCH_OMAP4
|
|
static const char *omap4_boards_compat[] __initdata = {
|
|
"ti,omap4460",
|
|
"ti,omap4430",
|
|
"ti,omap4",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
|
|
.reserve = omap_reserve,
|
|
.smp = smp_ops(omap4_smp_ops),
|
|
.map_io = omap4_map_io,
|
|
.init_early = omap4430_init_early,
|
|
.init_irq = omap_gic_of_init,
|
|
.init_machine = omap_generic_init,
|
|
.init_late = omap4430_init_late,
|
|
.init_time = omap4_local_timer_init,
|
|
.dt_compat = omap4_boards_compat,
|
|
.restart = omap44xx_restart,
|
|
MACHINE_END
|
|
#endif
|
|
|
|
#ifdef CONFIG_SOC_OMAP5
|
|
static const char *omap5_boards_compat[] __initdata = {
|
|
"ti,omap5432",
|
|
"ti,omap5430",
|
|
"ti,omap5",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)")
|
|
.reserve = omap_reserve,
|
|
.smp = smp_ops(omap4_smp_ops),
|
|
.map_io = omap5_map_io,
|
|
.init_early = omap5_init_early,
|
|
.init_irq = omap_gic_of_init,
|
|
.init_machine = omap_generic_init,
|
|
.init_late = omap5_init_late,
|
|
.init_time = omap5_realtime_timer_init,
|
|
.dt_compat = omap5_boards_compat,
|
|
.restart = omap44xx_restart,
|
|
MACHINE_END
|
|
#endif
|
|
|
|
#ifdef CONFIG_SOC_AM43XX
|
|
static const char *am43_boards_compat[] __initdata = {
|
|
"ti,am4372",
|
|
"ti,am43",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)")
|
|
.map_io = am33xx_map_io,
|
|
.init_early = am43xx_init_early,
|
|
.init_late = am43xx_init_late,
|
|
.init_irq = omap_gic_of_init,
|
|
.init_machine = omap_generic_init,
|
|
.init_time = omap3_gptimer_timer_init,
|
|
.dt_compat = am43_boards_compat,
|
|
.restart = omap44xx_restart,
|
|
MACHINE_END
|
|
#endif
|
|
|
|
#ifdef CONFIG_SOC_DRA7XX
|
|
static const char *dra7xx_boards_compat[] __initdata = {
|
|
"ti,dra7xx",
|
|
"ti,dra7",
|
|
NULL,
|
|
};
|
|
|
|
DT_MACHINE_START(DRA7XX_DT, "Generic DRA7XX (Flattened Device Tree)")
|
|
.reserve = omap_reserve,
|
|
.smp = smp_ops(omap4_smp_ops),
|
|
.map_io = omap5_map_io,
|
|
.init_early = dra7xx_init_early,
|
|
.init_late = dra7xx_init_late,
|
|
.init_irq = omap_gic_of_init,
|
|
.init_machine = omap_generic_init,
|
|
.init_time = omap5_realtime_timer_init,
|
|
.dt_compat = dra7xx_boards_compat,
|
|
.restart = omap44xx_restart,
|
|
MACHINE_END
|
|
#endif
|