aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r--arch/arm/plat-omap/gpio.c12
-rw-r--r--arch/arm/plat-omap/include/plat/display.h9
-rw-r--r--arch/arm/plat-omap/include/plat/omap_hwmod.h2
-rw-r--r--arch/arm/plat-omap/include/plat/panel-generic-dpi.h37
-rw-r--r--arch/arm/plat-omap/include/plat/voltage.h17
5 files changed, 68 insertions, 9 deletions
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 99f57b9c7fa3..971d18636942 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -718,7 +718,7 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger)
718 case METHOD_GPIO_24XX: 718 case METHOD_GPIO_24XX:
719 case METHOD_GPIO_44XX: 719 case METHOD_GPIO_44XX:
720 set_24xx_gpio_triggering(bank, gpio, trigger); 720 set_24xx_gpio_triggering(bank, gpio, trigger);
721 break; 721 return 0;
722#endif 722#endif
723 default: 723 default:
724 goto bad; 724 goto bad;
@@ -756,8 +756,10 @@ static int gpio_irq_type(struct irq_data *d, unsigned type)
756 spin_lock_irqsave(&bank->lock, flags); 756 spin_lock_irqsave(&bank->lock, flags);
757 retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type); 757 retval = _set_gpio_triggering(bank, get_gpio_index(gpio), type);
758 if (retval == 0) { 758 if (retval == 0) {
759 irq_desc[d->irq].status &= ~IRQ_TYPE_SENSE_MASK; 759 struct irq_desc *desc = irq_to_desc(d->irq);
760 irq_desc[d->irq].status |= type; 760
761 desc->status &= ~IRQ_TYPE_SENSE_MASK;
762 desc->status |= type;
761 } 763 }
762 spin_unlock_irqrestore(&bank->lock, flags); 764 spin_unlock_irqrestore(&bank->lock, flags);
763 765
@@ -1670,7 +1672,9 @@ static void __init omap_gpio_chip_init(struct gpio_bank *bank)
1670 1672
1671 for (j = bank->virtual_irq_start; 1673 for (j = bank->virtual_irq_start;
1672 j < bank->virtual_irq_start + bank_width; j++) { 1674 j < bank->virtual_irq_start + bank_width; j++) {
1673 lockdep_set_class(&irq_desc[j].lock, &gpio_lock_class); 1675 struct irq_desc *d = irq_to_desc(j);
1676
1677 lockdep_set_class(&d->lock, &gpio_lock_class);
1674 set_irq_chip_data(j, bank); 1678 set_irq_chip_data(j, bank);
1675 if (bank_is_mpuio(bank)) 1679 if (bank_is_mpuio(bank))
1676 set_irq_chip(j, &mpuio_irq_chip); 1680 set_irq_chip(j, &mpuio_irq_chip);
diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h
index c915a661f1f5..537f4e449f50 100644
--- a/arch/arm/plat-omap/include/plat/display.h
+++ b/arch/arm/plat-omap/include/plat/display.h
@@ -42,6 +42,10 @@
42#define DISPC_IRQ_SYNC_LOST (1 << 14) 42#define DISPC_IRQ_SYNC_LOST (1 << 14)
43#define DISPC_IRQ_SYNC_LOST_DIGIT (1 << 15) 43#define DISPC_IRQ_SYNC_LOST_DIGIT (1 << 15)
44#define DISPC_IRQ_WAKEUP (1 << 16) 44#define DISPC_IRQ_WAKEUP (1 << 16)
45#define DISPC_IRQ_SYNC_LOST2 (1 << 17)
46#define DISPC_IRQ_VSYNC2 (1 << 18)
47#define DISPC_IRQ_ACBIAS_COUNT_STAT2 (1 << 21)
48#define DISPC_IRQ_FRAMEDONE2 (1 << 22)
45 49
46struct omap_dss_device; 50struct omap_dss_device;
47struct omap_overlay_manager; 51struct omap_overlay_manager;
@@ -64,6 +68,7 @@ enum omap_plane {
64enum omap_channel { 68enum omap_channel {
65 OMAP_DSS_CHANNEL_LCD = 0, 69 OMAP_DSS_CHANNEL_LCD = 0,
66 OMAP_DSS_CHANNEL_DIGIT = 1, 70 OMAP_DSS_CHANNEL_DIGIT = 1,
71 OMAP_DSS_CHANNEL_LCD2 = 2,
67}; 72};
68 73
69enum omap_color_mode { 74enum omap_color_mode {
@@ -142,6 +147,7 @@ enum omap_dss_display_state {
142enum omap_dss_overlay_managers { 147enum omap_dss_overlay_managers {
143 OMAP_DSS_OVL_MGR_LCD, 148 OMAP_DSS_OVL_MGR_LCD,
144 OMAP_DSS_OVL_MGR_TV, 149 OMAP_DSS_OVL_MGR_TV,
150 OMAP_DSS_OVL_MGR_LCD2,
145}; 151};
146 152
147enum omap_dss_rotation_type { 153enum omap_dss_rotation_type {
@@ -268,6 +274,7 @@ struct omap_overlay_info {
268 u16 out_width; /* if 0, out_width == width */ 274 u16 out_width; /* if 0, out_width == width */
269 u16 out_height; /* if 0, out_height == height */ 275 u16 out_height; /* if 0, out_height == height */
270 u8 global_alpha; 276 u8 global_alpha;
277 u8 pre_mult_alpha;
271}; 278};
272 279
273struct omap_overlay { 280struct omap_overlay {
@@ -351,6 +358,8 @@ struct omap_dss_device {
351 358
352 enum omap_display_type type; 359 enum omap_display_type type;
353 360
361 enum omap_channel channel;
362
354 union { 363 union {
355 struct { 364 struct {
356 u8 data_lines; 365 u8 data_lines;
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index 6864a997f2ca..1eee85a8abb3 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -351,7 +351,7 @@ struct omap_hwmod_omap2_prcm {
351/** 351/**
352 * struct omap_hwmod_omap4_prcm - OMAP4-specific PRCM data 352 * struct omap_hwmod_omap4_prcm - OMAP4-specific PRCM data
353 * @clkctrl_reg: PRCM address of the clock control register 353 * @clkctrl_reg: PRCM address of the clock control register
354 * @rstctrl_reg: adress of the XXX_RSTCTRL register located in the PRM 354 * @rstctrl_reg: address of the XXX_RSTCTRL register located in the PRM
355 * @submodule_wkdep_bit: bit shift of the WKDEP range 355 * @submodule_wkdep_bit: bit shift of the WKDEP range
356 */ 356 */
357struct omap_hwmod_omap4_prcm { 357struct omap_hwmod_omap4_prcm {
diff --git a/arch/arm/plat-omap/include/plat/panel-generic-dpi.h b/arch/arm/plat-omap/include/plat/panel-generic-dpi.h
new file mode 100644
index 000000000000..790619734bcd
--- /dev/null
+++ b/arch/arm/plat-omap/include/plat/panel-generic-dpi.h
@@ -0,0 +1,37 @@
1/*
2 * Header for generic DPI panel driver
3 *
4 * Copyright (C) 2010 Canonical Ltd.
5 * Author: Bryan Wu <bryan.wu@canonical.com>
6 *
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
10 *
11 * This program is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * more details.
15 *
16 * You should have received a copy of the GNU General Public License along with
17 * this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef __ARCH_ARM_PLAT_OMAP_PANEL_GENERIC_DPI_H
21#define __ARCH_ARM_PLAT_OMAP_PANEL_GENERIC_DPI_H
22
23#include "display.h"
24
25/**
26 * struct panel_generic_dpi_data - panel driver configuration data
27 * @name: panel name
28 * @platform_enable: platform specific panel enable function
29 * @platform_disable: platform specific panel disable function
30 */
31struct panel_generic_dpi_data {
32 const char *name;
33 int (*platform_enable)(struct omap_dss_device *dssdev);
34 void (*platform_disable)(struct omap_dss_device *dssdev);
35};
36
37#endif /* __ARCH_ARM_PLAT_OMAP_PANEL_GENERIC_DPI_H */
diff --git a/arch/arm/plat-omap/include/plat/voltage.h b/arch/arm/plat-omap/include/plat/voltage.h
index 0ff123399f3b..5bd204e55c32 100644
--- a/arch/arm/plat-omap/include/plat/voltage.h
+++ b/arch/arm/plat-omap/include/plat/voltage.h
@@ -14,6 +14,8 @@
14#ifndef __ARCH_ARM_MACH_OMAP2_VOLTAGE_H 14#ifndef __ARCH_ARM_MACH_OMAP2_VOLTAGE_H
15#define __ARCH_ARM_MACH_OMAP2_VOLTAGE_H 15#define __ARCH_ARM_MACH_OMAP2_VOLTAGE_H
16 16
17#include <linux/err.h>
18
17#define VOLTSCALE_VPFORCEUPDATE 1 19#define VOLTSCALE_VPFORCEUPDATE 1
18#define VOLTSCALE_VCBYPASS 2 20#define VOLTSCALE_VCBYPASS 2
19 21
@@ -65,9 +67,6 @@ struct voltagedomain {
65 char *name; 67 char *name;
66}; 68};
67 69
68/* API to get the voltagedomain pointer */
69struct voltagedomain *omap_voltage_domain_lookup(char *name);
70
71/** 70/**
72 * struct omap_volt_data - Omap voltage specific data. 71 * struct omap_volt_data - Omap voltage specific data.
73 * @voltage_nominal: The possible voltage value in uV 72 * @voltage_nominal: The possible voltage value in uV
@@ -131,16 +130,26 @@ int omap_voltage_register_pmic(struct voltagedomain *voltdm,
131 struct omap_volt_pmic_info *pmic_info); 130 struct omap_volt_pmic_info *pmic_info);
132void omap_change_voltscale_method(struct voltagedomain *voltdm, 131void omap_change_voltscale_method(struct voltagedomain *voltdm,
133 int voltscale_method); 132 int voltscale_method);
133/* API to get the voltagedomain pointer */
134struct voltagedomain *omap_voltage_domain_lookup(char *name);
135
134int omap_voltage_late_init(void); 136int omap_voltage_late_init(void);
135#else 137#else
136static inline int omap_voltage_register_pmic(struct voltagedomain *voltdm, 138static inline int omap_voltage_register_pmic(struct voltagedomain *voltdm,
137 struct omap_volt_pmic_info *pmic_info) {} 139 struct omap_volt_pmic_info *pmic_info)
140{
141 return -EINVAL;
142}
138static inline void omap_change_voltscale_method(struct voltagedomain *voltdm, 143static inline void omap_change_voltscale_method(struct voltagedomain *voltdm,
139 int voltscale_method) {} 144 int voltscale_method) {}
140static inline int omap_voltage_late_init(void) 145static inline int omap_voltage_late_init(void)
141{ 146{
142 return -EINVAL; 147 return -EINVAL;
143} 148}
149static inline struct voltagedomain *omap_voltage_domain_lookup(char *name)
150{
151 return ERR_PTR(-EINVAL);
152}
144#endif 153#endif
145 154
146#endif 155#endif