diff options
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0008-omap3-beagle-cleaned-up-board-revision-conditions.patch')
-rw-r--r-- | extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0008-omap3-beagle-cleaned-up-board-revision-conditions.patch | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0008-omap3-beagle-cleaned-up-board-revision-conditions.patch b/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0008-omap3-beagle-cleaned-up-board-revision-conditions.patch new file mode 100644 index 00000000..513a1019 --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0008-omap3-beagle-cleaned-up-board-revision-conditions.patch | |||
@@ -0,0 +1,153 @@ | |||
1 | From 8bd3ffb5755c49aaffecb20b9bd43f955ac26251 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jason Kridner <jkridner@beagleboard.org> | ||
3 | Date: Wed, 16 Mar 2011 09:21:06 -0500 | ||
4 | Subject: [PATCH 08/10] omap3: beagle: cleaned up board revision conditions | ||
5 | |||
6 | --- | ||
7 | arch/arm/mach-omap2/board-omap3beagle.c | 70 ++++++++++++++----------------- | ||
8 | 1 files changed, 32 insertions(+), 38 deletions(-) | ||
9 | |||
10 | diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c | ||
11 | index 4bde54b..664a9c6 100644 | ||
12 | --- a/arch/arm/mach-omap2/board-omap3beagle.c | ||
13 | +++ b/arch/arm/mach-omap2/board-omap3beagle.c | ||
14 | @@ -191,7 +191,7 @@ enum { | ||
15 | OMAP3BEAGLE_BOARD_AXBX, | ||
16 | OMAP3BEAGLE_BOARD_C1_3, | ||
17 | OMAP3BEAGLE_BOARD_C4, | ||
18 | - OMAP3BEAGLE_BOARD_XM, | ||
19 | + OMAP3BEAGLE_BOARD_XMAB, | ||
20 | OMAP3BEAGLE_BOARD_XMC, | ||
21 | }; | ||
22 | |||
23 | @@ -245,11 +245,11 @@ static void __init omap3_beagle_init_rev(void) | ||
24 | break; | ||
25 | case 0: | ||
26 | printk(KERN_INFO "OMAP3 Beagle Rev: xM A\n"); | ||
27 | - omap3_beagle_version = OMAP3BEAGLE_BOARD_XM; | ||
28 | + omap3_beagle_version = OMAP3BEAGLE_BOARD_XMAB; | ||
29 | break; | ||
30 | case 1: | ||
31 | printk(KERN_INFO "OMAP3 Beagle Rev: xM B\n"); | ||
32 | - omap3_beagle_version = OMAP3BEAGLE_BOARD_XM; | ||
33 | + omap3_beagle_version = OMAP3BEAGLE_BOARD_XMAB; | ||
34 | break; | ||
35 | case 2: | ||
36 | printk(KERN_INFO "OMAP3 Beagle Rev: xM C\n"); | ||
37 | @@ -458,13 +458,18 @@ static int beagle_twl_gpio_setup(struct device *dev, | ||
38 | { | ||
39 | int r; | ||
40 | |||
41 | - if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) { | ||
42 | + switch(omap3_beagle_get_rev()) | ||
43 | + { | ||
44 | + case OMAP3BEAGLE_BOARD_XMAB: | ||
45 | + case OMAP3BEAGLE_BOARD_XMC: | ||
46 | mmc[0].gpio_wp = -EINVAL; | ||
47 | - } else if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C1_3) || | ||
48 | - (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C4)) { | ||
49 | + break; | ||
50 | + case OMAP3BEAGLE_BOARD_C1_3: | ||
51 | + case OMAP3BEAGLE_BOARD_C4: | ||
52 | omap_mux_init_gpio(23, OMAP_PIN_INPUT); | ||
53 | mmc[0].gpio_wp = 23; | ||
54 | - } else { | ||
55 | + break; | ||
56 | + default: | ||
57 | omap_mux_init_gpio(29, OMAP_PIN_INPUT); | ||
58 | } | ||
59 | /* gpio + 0 is "mmc0_cd" (input/IRQ) */ | ||
60 | @@ -479,7 +484,8 @@ static int beagle_twl_gpio_setup(struct device *dev, | ||
61 | * power switch and overcurrent detect | ||
62 | */ | ||
63 | |||
64 | - if (omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XM) { | ||
65 | + if ((omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XMAB) && | ||
66 | + (omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XMC)) { | ||
67 | r = gpio_request(gpio + 1, "EHCI_nOC"); | ||
68 | if (!r) { | ||
69 | r = gpio_direction_input(gpio + 1); | ||
70 | @@ -490,54 +496,41 @@ static int beagle_twl_gpio_setup(struct device *dev, | ||
71 | pr_err("%s: unable to configure EHCI_nOC\n", __func__); | ||
72 | } | ||
73 | |||
74 | - if (cpu_is_omap3630()) { | ||
75 | - /* Power on DVI, Serial and PWR led */ | ||
76 | - gpio_request(gpio + 1, "nDVI_PWR_EN"); | ||
77 | - gpio_direction_output(gpio + 1, 0); | ||
78 | - | ||
79 | - /* Power on camera interface */ | ||
80 | - gpio_request(gpio + 2, "CAM_EN"); | ||
81 | - gpio_direction_output(gpio + 2, 1); | ||
82 | - | ||
83 | - /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ | ||
84 | - gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); | ||
85 | - gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); | ||
86 | - } | ||
87 | - else { | ||
88 | - gpio_request(gpio + 1, "EHCI_nOC"); | ||
89 | - gpio_direction_input(gpio + 1); | ||
90 | - | ||
91 | - /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ | ||
92 | - gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); | ||
93 | - gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); | ||
94 | - } | ||
95 | - | ||
96 | /* | ||
97 | - * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active | ||
98 | + * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, xM Ax/Bx active | ||
99 | * high / others active low) | ||
100 | */ | ||
101 | gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); | ||
102 | - if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) | ||
103 | + if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XMAB) | ||
104 | gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); | ||
105 | else | ||
106 | gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); | ||
107 | |||
108 | /* DVI reset GPIO is different between beagle revisions */ | ||
109 | - if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) | ||
110 | - beagle_dvi_device.reset_gpio = 129; | ||
111 | - else | ||
112 | + switch(omap3_beagle_get_rev()) | ||
113 | + { | ||
114 | + case OMAP3BEAGLE_BOARD_AXBX: | ||
115 | + case OMAP3BEAGLE_BOARD_C1_3: | ||
116 | + case OMAP3BEAGLE_BOARD_C4: | ||
117 | beagle_dvi_device.reset_gpio = 170; | ||
118 | + break; | ||
119 | + case OMAP3BEAGLE_BOARD_XMAB: | ||
120 | + case OMAP3BEAGLE_BOARD_XMC: | ||
121 | + default: | ||
122 | + beagle_dvi_device.reset_gpio = 129; | ||
123 | + } | ||
124 | |||
125 | /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ | ||
126 | gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; | ||
127 | |||
128 | /* | ||
129 | - * gpio + 1 on Xm controls the TFP410's enable line (active low) | ||
130 | + * gpio + 1 on xM controls the TFP410's enable line (active low) | ||
131 | * gpio + 2 control varies depending on the board rev as follows: | ||
132 | * P7/P8 revisions(prototype): Camera EN | ||
133 | * A2+ revisions (production): LDO (supplies DVI, serial, led blocks) | ||
134 | */ | ||
135 | - if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) { | ||
136 | + if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XMAB) || | ||
137 | + (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XMC)) { | ||
138 | r = gpio_request(gpio + 1, "nDVI_PWR_EN"); | ||
139 | if (!r) { | ||
140 | r = gpio_direction_output(gpio + 1, 0); | ||
141 | @@ -1013,7 +1006,8 @@ static void __init omap3_beagle_init(void) | ||
142 | omap3_beagle_init_rev(); | ||
143 | omap3_beagle_i2c_init(); | ||
144 | |||
145 | - if (cpu_is_omap3630()) { | ||
146 | + if ((omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XMAB) && | ||
147 | + (omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XMC)) { | ||
148 | gpio_buttons[0].gpio = 4; | ||
149 | } | ||
150 | |||
151 | -- | ||
152 | 1.6.6.1 | ||
153 | |||