added include file for ACIA registers
This commit is contained in:
12
include/acia.h
Normal file
12
include/acia.h
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#ifndef _ACIA_H_
|
||||||
|
#define _ACIA_H_
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ACIA registers
|
||||||
|
*/
|
||||||
|
#define keyctl volatile uint8_t *0xfffc00
|
||||||
|
#define keybd volatile uint8_t *0xfffc02
|
||||||
|
#define midictl volatile uint8_t *0xfffc04
|
||||||
|
#define midi volatile uint8_t *0xfffc06
|
||||||
|
|
||||||
|
#endif /* _ACIA_H_ */
|
||||||
@@ -25,29 +25,21 @@
|
|||||||
#include "usb.h"
|
#include "usb.h"
|
||||||
|
|
||||||
#undef USB_MOUSE_DEBUG
|
#undef USB_MOUSE_DEBUG
|
||||||
|
|
||||||
#if defined(CONFIG_USB_UHCI) || defined(CONFIG_USB_OHCI) || defined(CONFIG_USB_EHCI)
|
|
||||||
#ifdef CONFIG_USB_MOUSE
|
|
||||||
|
|
||||||
#ifdef USB_MOUSE_DEBUG
|
#ifdef USB_MOUSE_DEBUG
|
||||||
#define USB_MOUSE_PRINTF(fmt,args...) bas_printf(fmt ,##args)
|
#define mse_printf(fmt,args...) bas_printf(fmt ,##args)
|
||||||
#else
|
#else
|
||||||
#define USB_MOUSE_PRINTF(fmt,args...)
|
#define mse_printf(fmt,args...)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern void ltoa(char *buf, long n, unsigned long base);
|
extern void ltoa(char *buf, long n, unsigned long base);
|
||||||
extern void call_mousevec(unsigned char *data, void (**mousevec)(void *));
|
extern void call_mousevec(unsigned char *data, void (**mousevec)(void *));
|
||||||
extern void call_ikbdvec(unsigned char code, _IOREC *iorec, void (**ikbdvec)());
|
//extern void call_ikbdvec(unsigned char code, _IOREC *iorec, void (**ikbdvec)());
|
||||||
extern int asm_set_ipl(int level);
|
extern int asm_set_ipl(int level);
|
||||||
|
|
||||||
static unsigned char *new;
|
static unsigned char *new;
|
||||||
static unsigned char old[8];
|
static unsigned char old[8];
|
||||||
static int mouse_installed;
|
static int mouse_installed;
|
||||||
|
|
||||||
extern void (**mousevec)(void *);
|
|
||||||
extern _IOREC *iorec;
|
|
||||||
extern void (**ikbdvec)();
|
|
||||||
|
|
||||||
/* forward declaration */
|
/* forward declaration */
|
||||||
static int usb_mouse_probe(struct usb_device *dev, unsigned int ifnum);
|
static int usb_mouse_probe(struct usb_device *dev, unsigned int ifnum);
|
||||||
|
|
||||||
@@ -61,7 +53,7 @@ int usb_mouse_deregister(struct usb_device *dev)
|
|||||||
new = NULL;
|
new = NULL;
|
||||||
}
|
}
|
||||||
mouse_installed = 0;
|
mouse_installed = 0;
|
||||||
USB_MOUSE_PRINTF("USB MOUSE deregister\r\n");
|
mse_printf("USB MOUSE deregister\r\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,7 +62,7 @@ int usb_mouse_register(struct usb_device *dev)
|
|||||||
{
|
{
|
||||||
if(!mouse_installed && (dev->devnum != -1) && (usb_mouse_probe(dev, 0) == 1))
|
if(!mouse_installed && (dev->devnum != -1) && (usb_mouse_probe(dev, 0) == 1))
|
||||||
{ /* Ok, we found a mouse */
|
{ /* Ok, we found a mouse */
|
||||||
USB_MOUSE_PRINTF("USB MOUSE found (USB: %d, devnum: %d)\r\n", dev->usbnum, dev->devnum);
|
mse_printf("USB MOUSE found (USB: %d, devnum: %d)\r\n", dev->usbnum, dev->devnum);
|
||||||
mouse_installed = 1;
|
mouse_installed = 1;
|
||||||
dev->deregister = usb_mouse_deregister;
|
dev->deregister = usb_mouse_deregister;
|
||||||
return 1;
|
return 1;
|
||||||
@@ -106,8 +98,7 @@ int drv_usb_mouse_init(void)
|
|||||||
*/
|
*/
|
||||||
static void usb_kbd_send_code(unsigned char code)
|
static void usb_kbd_send_code(unsigned char code)
|
||||||
{
|
{
|
||||||
if((iorec != NULL) && (ikbdvec != NULL))
|
mse_printf("FIXME: usb_kbd_send_code 0x%x not implemented\r\n", code);
|
||||||
call_ikbdvec(code, iorec, ikbdvec);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Interrupt service routine */
|
/* Interrupt service routine */
|
||||||
@@ -119,7 +110,7 @@ static int usb_mouse_irq(struct usb_device *dev)
|
|||||||
int i, change = 0;
|
int i, change = 0;
|
||||||
if((dev->irq_status != 0) || (dev->irq_act_len < 3) || (dev->irq_act_len > 8))
|
if((dev->irq_status != 0) || (dev->irq_act_len < 3) || (dev->irq_act_len > 8))
|
||||||
{
|
{
|
||||||
USB_MOUSE_PRINTF("USB MOUSE error %lX, len %d\r\n", dev->irq_status, dev->irq_act_len);
|
mse_printf("USB MOUSE error %lX, len %d\r\n", dev->irq_status, dev->irq_act_len);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
for(i = 0; i < dev->irq_act_len; i++)
|
for(i = 0; i < dev->irq_act_len; i++)
|
||||||
@@ -133,7 +124,7 @@ static int usb_mouse_irq(struct usb_device *dev)
|
|||||||
if(change)
|
if(change)
|
||||||
{
|
{
|
||||||
char wheel = 0, buttons, old_buttons;
|
char wheel = 0, buttons, old_buttons;
|
||||||
USB_MOUSE_PRINTF("USB MOUSE len:%d %02X %02X %02X %02X %02X %02X\r\n", dev->irq_act_len, new[0], new[1], new[2], new[3], new[4], new[5]);
|
mse_printf("USB MOUSE len:%d %02X %02X %02X %02X %02X %02X\r\n", dev->irq_act_len, new[0], new[1], new[2], new[3], new[4], new[5]);
|
||||||
#ifdef CONFIG_USB_INTERRUPT_POLLING
|
#ifdef CONFIG_USB_INTERRUPT_POLLING
|
||||||
level = asm_set_ipl(7); /* mask interrupts */
|
level = asm_set_ipl(7); /* mask interrupts */
|
||||||
#endif
|
#endif
|
||||||
@@ -183,8 +174,9 @@ static int usb_mouse_irq(struct usb_device *dev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(mousevec != NULL)
|
xprintf("FIXME: call_mousevec(new, mousevec) not implemented\r\n");
|
||||||
call_mousevec(new, mousevec);
|
//if(mousevec != NULL)
|
||||||
|
//call_mousevec(new, mousevec);
|
||||||
#ifdef CONFIG_USB_INTERRUPT_POLLING
|
#ifdef CONFIG_USB_INTERRUPT_POLLING
|
||||||
asm_set_ipl(level);
|
asm_set_ipl(level);
|
||||||
#endif
|
#endif
|
||||||
@@ -223,7 +215,7 @@ static int usb_mouse_probe(struct usb_device *dev, unsigned int ifnum)
|
|||||||
new = (unsigned char *)usb_malloc(8);
|
new = (unsigned char *)usb_malloc(8);
|
||||||
if(new == NULL)
|
if(new == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
USB_MOUSE_PRINTF("USB MOUSE found set protocol...\r\n");
|
mse_printf("USB MOUSE found set protocol...\r\n");
|
||||||
/* ok, we found a USB Mouse, install it */
|
/* ok, we found a USB Mouse, install it */
|
||||||
pipe = usb_rcvintpipe(dev, ep->bEndpointAddress);
|
pipe = usb_rcvintpipe(dev, ep->bEndpointAddress);
|
||||||
maxp = usb_maxpacket(dev, pipe);
|
maxp = usb_maxpacket(dev, pipe);
|
||||||
@@ -231,15 +223,13 @@ static int usb_mouse_probe(struct usb_device *dev, unsigned int ifnum)
|
|||||||
// usb_set_protocol(dev, iface->bInterfaceNumber, 0); /* boot */
|
// usb_set_protocol(dev, iface->bInterfaceNumber, 0); /* boot */
|
||||||
// else
|
// else
|
||||||
usb_set_protocol(dev, iface->bInterfaceNumber, 1); /* report */
|
usb_set_protocol(dev, iface->bInterfaceNumber, 1); /* report */
|
||||||
USB_MOUSE_PRINTF("USB MOUSE found set idle...\r\n");
|
mse_printf("USB MOUSE found set idle...\r\n");
|
||||||
usb_set_idle(dev, iface->bInterfaceNumber, 0, 0); /* report infinite */
|
usb_set_idle(dev, iface->bInterfaceNumber, 0, 0); /* report infinite */
|
||||||
memset(&new[0], 0, 8);
|
memset(&new[0], 0, 8);
|
||||||
memset(&old[0], 0, 8);
|
memset(&old[0], 0, 8);
|
||||||
dev->irq_handle = usb_mouse_irq;
|
dev->irq_handle = usb_mouse_irq;
|
||||||
USB_MOUSE_PRINTF("USB MOUSE enable interrupt pipe (maxp: %d)...\r\n", maxp);
|
mse_printf("USB MOUSE enable interrupt pipe (maxp: %d)...\r\n", maxp);
|
||||||
usb_submit_int_msg(dev, pipe, &new[0], maxp > 8 ? 8 : maxp, ep->bInterval);
|
usb_submit_int_msg(dev, pipe, &new[0], maxp > 8 ? 8 : maxp, ep->bInterval);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_USB_MOUSE */
|
|
||||||
#endif /* CONFIG_USB_UHCI || CONFIG_USB_OHCI || CONFIG_USB_EHCI */
|
|
||||||
|
|||||||
Reference in New Issue
Block a user