Changeset 18278
- Timestamp:
- 01/22/12 19:18:09 (17 months ago)
- Location:
- src/linux/universal/linux-3.2
- Files:
-
- 1 added
- 6 edited
-
arch/mips/lantiq/Makefile (modified) (1 diff)
-
arch/mips/lantiq/proc_lantiqgpio.c (modified) (5 diffs)
-
arch/mips/lantiq/proc_lantiqgpiostp.c (added)
-
arch/mips/lantiq/xway/mach-gigasx76x.c (modified) (2 diffs)
-
arch/mips/lantiq/xway/mach-wbmr.c (modified) (2 diffs)
-
drivers/usb/core/hub.c (modified) (3 diffs)
-
drivers/usb/dwc_otg/dwc_otg_hcd.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/linux/universal/linux-3.2/arch/mips/lantiq/Makefile
r18232 r18278 5 5 # by the Free Software Foundation. 6 6 7 obj-y := irq.o setup.o clk.o prom.o devices.o dev-gpio-leds.o dev-gpio-buttons.o proc_lantiqgpio.o 7 obj-y := irq.o setup.o clk.o prom.o devices.o dev-gpio-leds.o dev-gpio-buttons.o proc_lantiqgpio.o proc_lantiqgpiostp.o 8 8 9 9 obj-$(CONFIG_EARLY_PRINTK) += early_printk.o -
src/linux/universal/linux-3.2/arch/mips/lantiq/proc_lantiqgpio.c
r18233 r18278 57 57 { 58 58 void __iomem *membase = (void *)KSEG1ADDR(LQ_GPIO0_BASE_ADDR); 59 59 60 60 if (pin >= PINS_PER_PORT) { 61 61 pin -= PINS_PER_PORT; … … 134 134 return lq_gpio_getbit(membase, LQ_GPIO_OUT, pin); 135 135 } 136 136 137 static void set_dir(int pin, int dir) 137 138 { … … 149 150 membase += LQ_GPIO_SIZE; 150 151 } 151 if (dir) 152 { 153 lq_gpio_setbit(membase, LQ_GPIO_OD, pin); 154 lq_gpio_setbit(membase, LQ_GPIO_DIR, pin); 155 } 156 else 157 { 158 lq_gpio_clearbit(membase, LQ_GPIO_OD, pin); 159 lq_gpio_clearbit(membase, LQ_GPIO_DIR, pin); 160 } 161 162 } 163 164 void set_gpio(int pin,int val) 165 { 166 if (pin>=200) 167 { 168 ltq_stp_set(NULL,pin-200,val); 152 if (dir) { 153 lq_gpio_setbit(membase, LQ_GPIO_OD, pin); 154 lq_gpio_setbit(membase, LQ_GPIO_DIR, pin); 155 } else { 156 lq_gpio_clearbit(membase, LQ_GPIO_OD, pin); 157 lq_gpio_clearbit(membase, LQ_GPIO_DIR, pin); 158 } 159 160 } 161 162 163 void set_gpio(int pin, int val) 164 { 165 if (pin >= 200) { 166 ltq_stp_set(NULL, pin - 200, val); 169 167 return; 170 168 } 171 set_dir(pin,1); 172 set_gpio_out(pin,val); 173 } 169 set_dir(pin, 1); 170 set_gpio_out(pin, val); 171 } 172 174 173 EXPORT_SYMBOL(set_gpio); 175 174 175 int usb_led_pin = -1; 176 177 void ap_usb_led_on(void) 178 { 179 if (usb_led_pin >= 0) 180 set_gpio(usb_led_pin, usb_led_pin & 0xf00 ? 0 : 1); 181 } 182 183 EXPORT_SYMBOL(ap_usb_led_on); 184 185 void ap_usb_led_off(void) 186 { 187 if (usb_led_pin >= 0) 188 set_gpio(usb_led_pin, usb_led_pin & 0xf00 ? 1 : 0); 189 } 190 191 EXPORT_SYMBOL(ap_usb_led_off); 176 192 177 193 static int get_dir(int pin) 178 194 { 179 195 void __iomem *membase = (void *)KSEG1ADDR(LQ_GPIO0_BASE_ADDR); 180 int val =0;181 if (pin >= PINS_PER_PORT) { 182 pin -= PINS_PER_PORT; 183 membase += LQ_GPIO_SIZE; 184 } 185 if (pin >= PINS_PER_PORT) { 186 pin -= PINS_PER_PORT; 187 membase += LQ_GPIO_SIZE; 188 } 189 if (pin >= PINS_PER_PORT) { 190 pin -= PINS_PER_PORT; 191 membase += LQ_GPIO_SIZE; 192 193 } 194 195 val|=lq_gpio_getbit(membase, LQ_GPIO_IN, pin);196 val|=lq_gpio_getbit(membase, LQ_GPIO_OD, pin);197 return val;196 int val = 0; 197 if (pin >= PINS_PER_PORT) { 198 pin -= PINS_PER_PORT; 199 membase += LQ_GPIO_SIZE; 200 } 201 if (pin >= PINS_PER_PORT) { 202 pin -= PINS_PER_PORT; 203 membase += LQ_GPIO_SIZE; 204 } 205 if (pin >= PINS_PER_PORT) { 206 pin -= PINS_PER_PORT; 207 membase += LQ_GPIO_SIZE; 208 209 } 210 211 val |= lq_gpio_getbit(membase, LQ_GPIO_IN, pin); 212 val |= lq_gpio_getbit(membase, LQ_GPIO_OD, pin); 213 return val; 198 214 199 215 } … … 217 233 u32 reg = 0; 218 234 if ((unsigned int)data & GPIO_IN) { 219 reg = get_gpio_in(((unsigned int)data)&PIN_MASK);235 reg = get_gpio_in(((unsigned int)data) & PIN_MASK); 220 236 } 221 237 if ((unsigned int)data & GPIO_OUT) { 222 reg = get_gpio_out(((unsigned int)data)&PIN_MASK);238 reg = get_gpio_out(((unsigned int)data) & PIN_MASK); 223 239 } 224 240 if ((unsigned int)data & GPIO_DIR) { 225 reg = get_dir(((unsigned int)data)&PIN_MASK);241 reg = get_dir(((unsigned int)data) & PIN_MASK); 226 242 } 227 243 … … 262 278 263 279 if ((unsigned int)data & GPIO_IN) { 264 set_gpio_in(((unsigned int)data) &PIN_MASK, reg);280 set_gpio_in(((unsigned int)data) & PIN_MASK, reg); 265 281 } 266 282 if ((unsigned int)data & GPIO_OUT) { 267 set_gpio_out(((unsigned int)data) &PIN_MASK, reg);283 set_gpio_out(((unsigned int)data) & PIN_MASK, reg); 268 284 } 269 285 if ((unsigned int)data & GPIO_DIR) { 270 set_dir(((unsigned int)data)&PIN_MASK, reg); 271 } 272 286 set_dir(((unsigned int)data) & PIN_MASK, reg); 287 } 273 288 274 289 return procfs_buffer_size; -
src/linux/universal/linux-3.2/arch/mips/lantiq/xway/mach-gigasx76x.c
r18236 r18278 58 58 }, 59 59 }; 60 60 extern int usb_led_pin; 61 61 static struct gpio_led 62 62 gigasx76x_gpio_leds[] __initdata = { … … 231 231 #define GIGASX76X_USB 29 232 232 #define GIGASX76X_MADWIFI_ADDR 0xb07f0000 233 usb_led_pin = 218; 233 234 ltq_register_gpio_stp(); 234 235 ltq_register_nor(&gigasx76x_flash_data); -
src/linux/universal/linux-3.2/arch/mips/lantiq/xway/mach-wbmr.c
r18225 r18278 55 55 }; 56 56 57 extern int usb_led_pin; 57 58 static struct gpio_led 58 59 wbmr_gpio_leds[] __initdata = { … … 104 105 { 105 106 #define WMBR_BRN_MAC 0x1fd0024 107 usb_led_pin = 28|0xf00; 106 108 107 109 ltq_add_device_gpio_leds(-1, ARRAY_SIZE(wbmr_gpio_leds), wbmr_gpio_leds); -
src/linux/universal/linux-3.2/drivers/usb/core/hub.c
r18224 r18278 1293 1293 hdev = interface_to_usbdev(intf); 1294 1294 1295 #if defined(CONFIG_MACH_AR7100) || defined(CONFIG_MACH_AR7240) 1295 #if defined(CONFIG_MACH_AR7100) || defined(CONFIG_MACH_AR7240) || defined(CONFIG_LANTIQ) 1296 1296 ap_usb_led_off(); 1297 1297 #endif … … 1658 1658 udev->devnum); 1659 1659 1660 #if defined(CONFIG_MACH_AR7100) || defined(CONFIG_MACH_AR7240) 1660 #if defined(CONFIG_MACH_AR7100) || defined(CONFIG_MACH_AR7240) || defined(CONFIG_LANTIQ) 1661 1661 /* Turn USB LED off only if its a last device attached to root hub */ 1662 1662 if(udev->parent == udev->bus->root_hub) … … 2898 2898 2899 2899 retval = -ENODEV; 2900 #if defined(CONFIG_MACH_AR7100) || defined(CONFIG_MACH_AR7240) 2900 #if defined(CONFIG_MACH_AR7100) || defined(CONFIG_MACH_AR7240) || defined(CONFIG_LANTIQ) 2901 2901 ap_usb_led_on(); 2902 2902 #endif -
src/linux/universal/linux-3.2/drivers/usb/dwc_otg/dwc_otg_hcd.c
r18224 r18278 1587 1587 } 1588 1588 #endif /* DWC_HS_ELECT_TST */ 1589 1590 1589 1591 1590 1592 /** Handles hub class-specific requests.*/
Note: See TracChangeset
for help on using the changeset viewer.
