summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorroot <root@lamia.panaceas.james.local>2015-06-07 01:34:12 +0100
committerroot <root@lamia.panaceas.james.local>2015-06-07 01:34:12 +0100
commit3accd8fcee87299b51de0abde3c8d9c83368d871 (patch)
tree0381019b06130ad1089ddc148d01a43163fc7978
parent43443ee9ba206b0963c49123bd03c250ed8e7b26 (diff)
downloadtims_keyboard-3accd8fcee87299b51de0abde3c8d9c83368d871.tar.gz
tims_keyboard-3accd8fcee87299b51de0abde3c8d9c83368d871.tar.bz2
tims_keyboard-3accd8fcee87299b51de0abde3c8d9c83368d871.zip
tidyup
-rw-r--r--app/consumer.c63
-rw-r--r--app/keyboard.c168
-rw-r--r--app/keymap.c250
-rw-r--r--app/ring.c17
-rw-r--r--app/stdio.c93
-rw-r--r--app/ticker.c21
-rw-r--r--app/tims_keyboard.c22
-rw-r--r--app/usart.c20
-rw-r--r--app/usb.c31
9 files changed, 354 insertions, 331 deletions
diff --git a/app/consumer.c b/app/consumer.c
index c61c4cc..79d25bb 100644
--- a/app/consumer.c
+++ b/app/consumer.c
@@ -10,25 +10,25 @@ static const uint8_t consumer_report_descriptor[] = {
0x75, 0x01, /* Report size (1) */
0x95, 0x10, /* Report count (16) */
- 0x09, 0xb5, /* USAGE (Scan Next Track) */
- 0x09, 0xb6, /* USAGE (Scan Prev Track) */
- 0x09, 0xb7, /* USAGE (Stop) */
- 0x09, 0xcd, /* USAGE (Play/Pause) */
-
- 0x09, 0xe2, /* USAGE (Mute) */
- 0x09, 0xe9, /* USAGE (Volume up) */
- 0x09, 0xea, /* USAGE (Volume down) */
- 0x0a, 0x21, 0x02, /* USAGE (www search) */
-
- 0x0a, 0x23, 0x02, /* USAGE (www home) */
- 0x0a, 0x24, 0x02, /* USAGE (www back) */
- 0x0a, 0x25, 0x02, /* USAGE (www forward) */
- 0x0a, 0x26, 0x02, /* USAGE (www stop) */
-
- 0x0a, 0x27, 0x02, /* USAGE (www refresh) */
- 0x0a, 0x2a, 0x02, /* USAGE (www favourites) */
- 0x0a, 0x8a, 0x01, /* USAGE (Mail) */
- 0x0a, 0x92, 0x01, /* USAGE (Calculator) */
+ 0x09, 0xb5, /* USAGE (Scan Next Track) */
+ 0x09, 0xb6, /* USAGE (Scan Prev Track) */
+ 0x09, 0xb7, /* USAGE (Stop) */
+ 0x09, 0xcd, /* USAGE (Play/Pause) */
+
+ 0x09, 0xe2, /* USAGE (Mute) */
+ 0x09, 0xe9, /* USAGE (Volume up) */
+ 0x09, 0xea, /* USAGE (Volume down) */
+ 0x0a, 0x21, 0x02, /* USAGE (www search) */
+
+ 0x0a, 0x23, 0x02, /* USAGE (www home) */
+ 0x0a, 0x24, 0x02, /* USAGE (www back) */
+ 0x0a, 0x25, 0x02, /* USAGE (www forward) */
+ 0x0a, 0x26, 0x02, /* USAGE (www stop) */
+
+ 0x0a, 0x27, 0x02, /* USAGE (www refresh) */
+ 0x0a, 0x2a, 0x02, /* USAGE (www favourites) */
+ 0x0a, 0x8a, 0x01, /* USAGE (Mail) */
+ 0x0a, 0x92, 0x01, /* USAGE (Calculator) */
0x81, 0x62, /* Input (data, variable, relative, preferreed) */
0xC0 /* End Collection */
@@ -61,7 +61,7 @@ const struct usb_endpoint_descriptor consumer_endpoint = {
.bEndpointAddress = CONSUMER_EP,
.bmAttributes = USB_ENDPOINT_ATTR_INTERRUPT,
.wMaxPacketSize = 2,
- .bInterval = 0x1 //0x20,
+ .bInterval = 0x1 //0x20,
};
const struct usb_interface_descriptor consumer_iface = {
@@ -92,33 +92,32 @@ consumer_get_descriptor (uint8_t ** buf, uint16_t * len)
}
-
+
static void
consumer_send (uint16_t keys)
{
/*Last byte is the power wakeup stuff that we don't yet support */
uint8_t buf[CONSUMER_EP_TXN_SIZE] = { keys & 0xff, keys >> 8 };
- usbd_ep_write_packet (usbd_dev, CONSUMER_EP, buf, sizeof(buf));
+ usbd_ep_write_packet (usbd_dev, CONSUMER_EP, buf, sizeof (buf));
}
-void consumer_dispatch(int bit,int updown)
+void
+consumer_dispatch (int bit, int updown)
{
-static uint16_t keys;
+ static uint16_t keys;
-if (updown)
- keys|=bit;
-else
- keys &= ~bit;
+ if (updown)
+ keys |= bit;
+ else
+ keys &= ~bit;
#ifdef DEBUG
-printf("CNS> %02x %02x\r\n",keys & 0xff, keys >>8 );
+ printf ("CNS> %02x %02x\r\n", keys & 0xff, keys >> 8);
#endif
-consumer_send(keys);
+ consumer_send (keys);
}
-
-
diff --git a/app/keyboard.c b/app/keyboard.c
index a20e070..cecbd58 100644
--- a/app/keyboard.c
+++ b/app/keyboard.c
@@ -30,30 +30,30 @@ static const uint8_t keyboard_report_descriptor[] = {
// 0x2A, 0xff, 0x03, /* Usage maximum (1023) */
0x81, 0x00, /* Input (data, array) */
- 0x05, 0x08, /* Usage page (leds) */
+ 0x05, 0x08, /* Usage page (leds) */
0x75, 0x01, /* Report size (1) */
0x95, 0x03, /* Report count (3) */
0x19, 0x01, /* Usage minimum (1) */
0x29, 0x03, /* Usage maximum (3) */
- 0x91, 0x02, /* Output (data, variable, absolute ) */
+ 0x91, 0x02, /* Output (data, variable, absolute ) */
0x75, 0x05, /* Report size (5) */
0x95, 0x01, /* Report count (1) */
- 0x91, 0x01, /* Output (constant ) */
-
- 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
- 0x09, 0x80, /* USAGE (System Control) */
-
- 0xA1, 0x01, /* COLLECTION (Application) */
- 0x75, 0x02, /* REPORT_SIZE (2) */
- 0x95, 0x01, /* REPORT_COUNT (1) */
- 0x15, 0x01, /* LOGICAL_MIN (1) */
- 0x25, 0x03, /* LOGICAL_MAX (3) */
- 0x09, 0x82, /* USAGE (System Sleep) */
- 0x09, 0x81, /* USAGE (System Power Down) */
- 0x09, 0x83, /* USAGE (System Wake Up) */
- 0x81, 0x60, /* INPUT (Data Ary Abs NPrf Null) */
- 0x75, 0x06, /* REPORT_SIZE (6) */
- 0x81, 0x03, /* INPUT (Cnst Var Abs) */
+ 0x91, 0x01, /* Output (constant ) */
+
+ 0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
+ 0x09, 0x80, /* USAGE (System Control) */
+
+ 0xA1, 0x01, /* COLLECTION (Application) */
+ 0x75, 0x02, /* REPORT_SIZE (2) */
+ 0x95, 0x01, /* REPORT_COUNT (1) */
+ 0x15, 0x01, /* LOGICAL_MIN (1) */
+ 0x25, 0x03, /* LOGICAL_MAX (3) */
+ 0x09, 0x82, /* USAGE (System Sleep) */
+ 0x09, 0x81, /* USAGE (System Power Down) */
+ 0x09, 0x83, /* USAGE (System Wake Up) */
+ 0x81, 0x60, /* INPUT (Data Ary Abs NPrf Null) */
+ 0x75, 0x06, /* REPORT_SIZE (6) */
+ 0x81, 0x03, /* INPUT (Cnst Var Abs) */
0xc0, /* END COLLECTION */
@@ -87,7 +87,7 @@ const struct usb_endpoint_descriptor keyboard_endpoint = {
.bEndpointAddress = KEYBOARD_EP,
.bmAttributes = USB_ENDPOINT_ATTR_INTERRUPT,
.wMaxPacketSize = 9,
- .bInterval = 0x1 //0x20,
+ .bInterval = 0x1 //0x20,
};
const struct usb_interface_descriptor keyboard_iface = {
@@ -117,26 +117,30 @@ keyboard_get_descriptor (uint8_t ** buf, uint16_t * len)
}
-
+
static void
-keyboard_send (uint8_t modifiers, uint8_t *key_list)
+keyboard_send (uint8_t modifiers, uint8_t * key_list)
{
/*Last byte is the power wakeup stuff that we don't yet support */
- uint8_t buf[KEYBOARD_EP_TXN_SIZE] = { modifiers, 0, key_list[0], key_list[1], key_list[2], key_list[3], key_list[4], key_list[5] ,0};
+ uint8_t buf[KEYBOARD_EP_TXN_SIZE] =
+ { modifiers, 0, key_list[0], key_list[1], key_list[2], key_list[3],
+key_list[4], key_list[5], 0 };
- usbd_ep_write_packet (usbd_dev, KEYBOARD_EP, buf, sizeof(buf));
+ usbd_ep_write_packet (usbd_dev, KEYBOARD_EP, buf, sizeof (buf));
}
-void keyboard_dispatch(int sc,int updown)
+void
+keyboard_dispatch (int sc, int updown)
{
-static uint8_t modifiers;
-static uint8_t key_list[KEY_LIST_LEN];
-int i;
+ static uint8_t modifiers;
+ static uint8_t key_list[KEY_LIST_LEN];
+ int i;
/*Windows needs the modifiers spliting out, so we do this as per our
* descriptor, others need them in the list so we do that as well */
-switch (sc) {
+ switch (sc)
+ {
case USB_K_SC_LEFTCTRL:
case USB_K_SC_LEFTSHIFT:
case USB_K_SC_LEFTALT:
@@ -145,70 +149,88 @@ switch (sc) {
case USB_K_SC_RIGHTSHIFT:
case USB_K_SC_RIGHTALT:
case USB_K_SC_RIGHTMETA:
- if (updown)
- modifiers |= 1 <<(sc-USB_K_SC_LEFTCTRL);
- else
- modifiers &= ~(1 <<(sc-USB_K_SC_LEFTCTRL));
-}
+ if (updown)
+ modifiers |= 1 << (sc - USB_K_SC_LEFTCTRL);
+ else
+ modifiers &= ~(1 << (sc - USB_K_SC_LEFTCTRL));
+ }
/* Some oses are picky and need these not to move about so we make
* a list of the down keys */
-if (updown) {
-for (i=0;i<KEY_LIST_LEN;++i) {
- if ((key_list[i]==0) ||(key_list[i]==sc)) {
- key_list[i]=sc;
- break;
- }
-}
-} else {
-for (i=0;i<KEY_LIST_LEN;++i) {
- if (key_list[i]==sc) {
- key_list[i]=0;
- break;
- }
-}
-}
+ if (updown)
+ {
+ for (i = 0; i < KEY_LIST_LEN; ++i)
+ {
+ if ((key_list[i] == 0) || (key_list[i] == sc))
+ {
+ key_list[i] = sc;
+ break;
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < KEY_LIST_LEN; ++i)
+ {
+ if (key_list[i] == sc)
+ {
+ key_list[i] = 0;
+ break;
+ }
+ }
+ }
#ifdef DEBUG
-printf("KBD> %02x %02x %02x %02x %02x %02x %02x\r\n",modifiers, key_list[0], key_list[1], key_list[2], key_list[3], key_list[4], key_list[5]);
+ printf ("KBD> %02x %02x %02x %02x %02x %02x %02x\r\n", modifiers,
+ key_list[0], key_list[1], key_list[2], key_list[3], key_list[4],
+ key_list[5]);
#endif
-keyboard_send(modifiers,key_list);
+ keyboard_send (modifiers, key_list);
}
-
-int keyboard_control_request(usbd_device * usbd_dev, struct usb_setup_data *req,
- uint8_t ** buf, uint16_t * len,
- void (**complete) (usbd_device * usbd_dev,
- struct usb_setup_data * req))
-{
-uint8_t at_leds=0;
-
- if (req->bmRequestType != (USB_REQ_TYPE_CLASS|USB_REQ_TYPE_INTERFACE)) return 0;
- if (req->bRequest!=USB_REQ_SET_CONFIGURATION) return 0;
- if (req->wValue!=0x200) return 0;
- if (req->wIndex) return 0;
- if (!len) return 0;
- if (*len!=1) return 0;
- if (!buf || !*buf) return 0;
-
- if (**buf & USB_LED_CAPS) at_leds|=AT_LED_CAPS;
- if (**buf & USB_LED_NUMLOCK) at_leds|=AT_LED_NUMLOCK;
- if (**buf & USB_LED_SCROLLLOCK) at_leds|=AT_LED_SCROLLLOCK;
+int
+keyboard_control_request (usbd_device * usbd_dev, struct usb_setup_data *req,
+ uint8_t ** buf, uint16_t * len,
+ void (**complete) (usbd_device * usbd_dev,
+ struct usb_setup_data * req))
+{
+ uint8_t at_leds = 0;
+
+ if (req->bmRequestType != (USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE))
+ return 0;
+ if (req->bRequest != USB_REQ_SET_CONFIGURATION)
+ return 0;
+ if (req->wValue != 0x200)
+ return 0;
+ if (req->wIndex)
+ return 0;
+ if (!len)
+ return 0;
+ if (*len != 1)
+ return 0;
+ if (!buf || !*buf)
+ return 0;
+
+
+ if (**buf & USB_LED_CAPS)
+ at_leds |= AT_LED_CAPS;
+ if (**buf & USB_LED_NUMLOCK)
+ at_leds |= AT_LED_NUMLOCK;
+ if (**buf & USB_LED_SCROLLLOCK)
+ at_leds |= AT_LED_SCROLLLOCK;
#ifdef DEBUG
- printf("LEDS> %x\r\n",at_leds);
+ printf ("LEDS> %x\r\n", at_leds);
#endif
atkbd_set_leds (at_leds);
- return 1;
+ return 1;
}
-
-
diff --git a/app/keymap.c b/app/keymap.c
index f6e529d..515e0f6 100644
--- a/app/keymap.c
+++ b/app/keymap.c
@@ -1,142 +1,142 @@
#include "project.h"
-static int at_to_usb_keyboard[AT_SC_MAX]={
- [ AT_SC_GRAVE ] = USB_K_SC_GRAVE,
- [ AT_SC_1 ] = USB_K_SC_1,
- [ AT_SC_2 ] = USB_K_SC_2,
- [ AT_SC_3 ] = USB_K_SC_3,
- [ AT_SC_4 ] = USB_K_SC_4,
- [ AT_SC_5 ] = USB_K_SC_5,
- [ AT_SC_6 ] = USB_K_SC_6,
- [ AT_SC_7 ] = USB_K_SC_7,
- [ AT_SC_8 ] = USB_K_SC_8,
- [ AT_SC_9 ] = USB_K_SC_9,
- [ AT_SC_0 ] = USB_K_SC_0,
- [ AT_SC_MINUS ] = USB_K_SC_MINUS,
- [ AT_SC_EQUAL ] = USB_K_SC_EQUAL,
- [ AT_SC_BACKSPACE ] = USB_K_SC_BACKSPACE,
- [ AT_SC_TAB ] = USB_K_SC_TAB,
- [ AT_SC_Q ] = USB_K_SC_Q,
- [ AT_SC_W ] = USB_K_SC_W,
- [ AT_SC_E ] = USB_K_SC_E,
- [ AT_SC_R ] = USB_K_SC_R,
- [ AT_SC_T ] = USB_K_SC_T,
- [ AT_SC_Y ] = USB_K_SC_Y,
- [ AT_SC_U ] = USB_K_SC_U,
- [ AT_SC_I ] = USB_K_SC_I,
- [ AT_SC_O ] = USB_K_SC_O,
- [ AT_SC_P ] = USB_K_SC_P,
- [ AT_SC_LEFTBRACE ] = USB_K_SC_LEFTBRACE,
- [ AT_SC_RIGHTBRACE ] = USB_K_SC_RIGHTBRACE,
- [ AT_SC_BACKSLASH ] = USB_K_SC_BACKSLASH,
- [ AT_SC_CAPSLOCK ] = USB_K_SC_CAPSLOCK,
- [ AT_SC_A ] = USB_K_SC_A,
- [ AT_SC_S ] = USB_K_SC_S,
- [ AT_SC_D ] = USB_K_SC_D,
- [ AT_SC_F ] = USB_K_SC_F,
- [ AT_SC_G ] = USB_K_SC_G,
- [ AT_SC_H ] = USB_K_SC_H,
- [ AT_SC_J ] = USB_K_SC_J,
- [ AT_SC_K ] = USB_K_SC_K,
- [ AT_SC_L ] = USB_K_SC_L,
- [ AT_SC_SEMICOLON ] = USB_K_SC_SEMICOLON,
- [ AT_SC_APOSTROPHE ] = USB_K_SC_APOSTROPHE,
- [ AT_SC_ENTER ] = USB_K_SC_ENTER,
- [ AT_SC_LEFTSHIFT ] = USB_K_SC_LEFTSHIFT,
- [ AT_SC_Z ] = USB_K_SC_Z,
- [ AT_SC_X ] = USB_K_SC_X,
- [ AT_SC_C ] = USB_K_SC_C,
- [ AT_SC_V ] = USB_K_SC_V,
- [ AT_SC_B ] = USB_K_SC_B,
- [ AT_SC_N ] = USB_K_SC_N,
- [ AT_SC_M ] = USB_K_SC_M,
- [ AT_SC_COMMA ] = USB_K_SC_COMMA,
- [ AT_SC_DOT ] = USB_K_SC_DOT,
- [ AT_SC_SLASH ] = USB_K_SC_SLASH,
- [ AT_SC_RIGHTSHIFT ] = USB_K_SC_RIGHTSHIFT,
- [ AT_SC_LEFTCTRL ] = USB_K_SC_LEFTCTRL,
- [ AT_SC_LEFTALT ] = USB_K_SC_LEFTALT,
- [ AT_SC_SPACE ] = USB_K_SC_SPACE,
- [ AT_SC_RIGHTALT ] = USB_K_SC_RIGHTALT,
- [ AT_SC_RIGHTCTRL ] = USB_K_SC_RIGHTCTRL,
- [ AT_SC_INSERT ] = USB_K_SC_INSERT,
- [ AT_SC_DELETE ] = USB_K_SC_DELETE,
- [ AT_SC_LEFT ] = USB_K_SC_LEFT,
- [ AT_SC_HOME ] = USB_K_SC_HOME,
- [ AT_SC_END ] = USB_K_SC_END,
- [ AT_SC_UP ] = USB_K_SC_UP,
- [ AT_SC_DOWN ] = USB_K_SC_DOWN,
- [ AT_SC_PAGEUP ] = USB_K_SC_PAGEUP,
- [ AT_SC_PAGEDOWN ] = USB_K_SC_PAGEDOWN,
- [ AT_SC_RIGHT ] = USB_K_SC_RIGHT,
- [ AT_SC_NUMLOCK ] = USB_K_SC_NUMLOCK,
- [ AT_SC_KP7 ] = USB_K_SC_KP7,
- [ AT_SC_KP4 ] = USB_K_SC_KP4,
- [ AT_SC_KP1 ] = USB_K_SC_KP1,
- [ AT_SC_KPSLASH ] = USB_K_SC_KPSLASH,
- [ AT_SC_KP8 ] = USB_K_SC_KP8,
- [ AT_SC_KP5 ] = USB_K_SC_KP5,
- [ AT_SC_KP2 ] = USB_K_SC_KP2,
- [ AT_SC_KP0 ] = USB_K_SC_KP0,
- [ AT_SC_KPASTERISK ] = USB_K_SC_KPASTERISK,
- [ AT_SC_KP9 ] = USB_K_SC_KP9,
- [ AT_SC_KP6 ] = USB_K_SC_KP6,
- [ AT_SC_KP3 ] = USB_K_SC_KP3,
- [ AT_SC_KPDOT ] = USB_K_SC_KPDOT,
- [ AT_SC_KPMINUS ] = USB_K_SC_KPMINUS,
- [ AT_SC_KPPLUS ] = USB_K_SC_KPPLUS,
- [ AT_SC_KPENTER ] = USB_K_SC_KPENTER,
- [ AT_SC_ESC ] = USB_K_SC_ESC,
- [ AT_SC_F1 ] = USB_K_SC_F1,
- [ AT_SC_F2 ] = USB_K_SC_F2,
- [ AT_SC_F3 ] = USB_K_SC_F3,
- [ AT_SC_F4 ] = USB_K_SC_F4,
- [ AT_SC_F5 ] = USB_K_SC_F5,
- [ AT_SC_F6 ] = USB_K_SC_F6,
- [ AT_SC_F7 ] = USB_K_SC_F7,
- [ AT_SC_F8 ] = USB_K_SC_F8,
- [ AT_SC_F9 ] = USB_K_SC_F9,
- [ AT_SC_F10 ] = USB_K_SC_F10,
- [ AT_SC_F11 ] = USB_K_SC_F11,
- [ AT_SC_F12 ] = USB_K_SC_F12,
- [ AT_SC_SYSRQ ] = USB_K_SC_SYSRQ,
- [ AT_SC_SCROLLLOCK ] = USB_K_SC_SCROLLLOCK,
- [ AT_SC_PAUSE ] = USB_K_SC_PAUSE,
- [ AT_SC_LEFTMETA ] = USB_K_SC_LEFTMETA,
- [ AT_SC_RIGHTMETA ] = USB_K_SC_RIGHTMETA,
- [ AT_SC_MENU ] = USB_K_SC_MENU,
- [ AT_SC_POWER ] = USB_K_SC_POWER,
- [ AT_SC_SLEEP ] = USB_K_SC_SLEEP,
-// [ AT_SC_WAKEUP ] = USB_K_SC_WAKEUP,
+static int at_to_usb_keyboard[AT_SC_MAX] = {
+ [AT_SC_GRAVE] = USB_K_SC_GRAVE,
+ [AT_SC_1] = USB_K_SC_1,
+ [AT_SC_2] = USB_K_SC_2,
+ [AT_SC_3] = USB_K_SC_3,
+ [AT_SC_4] = USB_K_SC_4,
+ [AT_SC_5] = USB_K_SC_5,
+ [AT_SC_6] = USB_K_SC_6,
+ [AT_SC_7] = USB_K_SC_7,
+ [AT_SC_8] = USB_K_SC_8,
+ [AT_SC_9] = USB_K_SC_9,
+ [AT_SC_0] = USB_K_SC_0,
+ [AT_SC_MINUS] = USB_K_SC_MINUS,
+ [AT_SC_EQUAL] = USB_K_SC_EQUAL,
+ [AT_SC_BACKSPACE] = USB_K_SC_BACKSPACE,
+ [AT_SC_TAB] = USB_K_SC_TAB,
+ [AT_SC_Q] = USB_K_SC_Q,
+ [AT_SC_W] = USB_K_SC_W,
+ [AT_SC_E] = USB_K_SC_E,
+ [AT_SC_R] = USB_K_SC_R,
+ [AT_SC_T] = USB_K_SC_T,
+ [AT_SC_Y] = USB_K_SC_Y,
+ [AT_SC_U] = USB_K_SC_U,
+ [AT_SC_I] = USB_K_SC_I,
+ [AT_SC_O] = USB_K_SC_O,
+ [AT_SC_P] = USB_K_SC_P,
+ [AT_SC_LEFTBRACE] = USB_K_SC_LEFTBRACE,
+ [AT_SC_RIGHTBRACE] = USB_K_SC_RIGHTBRACE,
+ [AT_SC_BACKSLASH] = USB_K_SC_BACKSLASH,
+ [AT_SC_CAPSLOCK] = USB_K_SC_CAPSLOCK,
+ [AT_SC_A] = USB_K_SC_A,
+ [AT_SC_S] = USB_K_SC_S,
+ [AT_SC_D] = USB_K_SC_D,
+ [AT_SC_F] = USB_K_SC_F,
+ [AT_SC_G] = USB_K_SC_G,
+ [AT_SC_H] = USB_K_SC_H,
+ [AT_SC_J] = USB_K_SC_J,
+ [AT_SC_K] = USB_K_SC_K,
+ [AT_SC_L] = USB_K_SC_L,
+ [AT_SC_SEMICOLON] = USB_K_SC_SEMICOLON,
+ [AT_SC_APOSTROPHE] = USB_K_SC_APOSTROPHE,
+ [AT_SC_ENTER] = USB_K_SC_ENTER,
+ [AT_SC_LEFTSHIFT] = USB_K_SC_LEFTSHIFT,
+ [AT_SC_Z] = USB_K_SC_Z,
+ [AT_SC_X] = USB_K_SC_X,
+ [AT_SC_C] = USB_K_SC_C,
+ [AT_SC_V] = USB_K_SC_V,
+ [AT_SC_B] = USB_K_SC_B,
+ [AT_SC_N] = USB_K_SC_N,
+ [AT_SC_M] = USB_K_SC_M,
+ [AT_SC_COMMA] = USB_K_SC_COMMA,
+ [AT_SC_DOT] = USB_K_SC_DOT,
+ [AT_SC_SLASH] = USB_K_SC_SLASH,
+ [AT_SC_RIGHTSHIFT] = USB_K_SC_RIGHTSHIFT,
+ [AT_SC_LEFTCTRL] = USB_K_SC_LEFTCTRL,
+ [AT_SC_LEFTALT] = USB_K_SC_LEFTALT,
+ [AT_SC_SPACE] = USB_K_SC_SPACE,
+ [AT_SC_RIGHTALT] = USB_K_SC_RIGHTALT,
+ [AT_SC_RIGHTCTRL] = USB_K_SC_RIGHTCTRL,
+ [AT_SC_INSERT] = USB_K_SC_INSERT,
+ [AT_SC_DELETE] = USB_K_SC_DELETE,
+ [AT_SC_LEFT] = USB_K_SC_LEFT,
+ [AT_SC_HOME] = USB_K_SC_HOME,
+ [AT_SC_END] = USB_K_SC_END,
+ [AT_SC_UP] = USB_K_SC_UP,
+ [AT_SC_DOWN] = USB_K_SC_DOWN,
+ [AT_SC_PAGEUP] = USB_K_SC_PAGEUP,
+ [AT_SC_PAGEDOWN] = USB_K_SC_PAGEDOWN,
+ [AT_SC_RIGHT] = USB_K_SC_RIGHT,
+ [AT_SC_NUMLOCK] = USB_K_SC_NUMLOCK,
+ [AT_SC_KP7] = USB_K_SC_KP7,
+ [AT_SC_KP4] = USB_K_SC_KP4,
+ [AT_SC_KP1] = USB_K_SC_KP1,
+ [AT_SC_KPSLASH] = USB_K_SC_KPSLASH,
+ [AT_SC_KP8] = USB_K_SC_KP8,
+ [AT_SC_KP5] = USB_K_SC_KP5,
+ [AT_SC_KP2] = USB_K_SC_KP2,
+ [AT_SC_KP0] = USB_K_SC_KP0,
+ [AT_SC_KPASTERISK] = USB_K_SC_KPASTERISK,
+ [AT_SC_KP9] = USB_K_SC_KP9,
+ [AT_SC_KP6] = USB_K_SC_KP6,
+ [AT_SC_KP3] = USB_K_SC_KP3,
+ [AT_SC_KPDOT] = USB_K_SC_KPDOT,
+ [AT_SC_KPMINUS] = USB_K_SC_KPMINUS,
+ [AT_SC_KPPLUS] = USB_K_SC_KPPLUS,
+ [AT_SC_KPENTER] = USB_K_SC_KPENTER,
+ [AT_SC_ESC] = USB_K_SC_ESC,
+ [AT_SC_F1] = USB_K_SC_F1,
+ [AT_SC_F2] = USB_K_SC_F2,
+ [AT_SC_F3] = USB_K_SC_F3,
+ [AT_SC_F4] = USB_K_SC_F4,
+ [AT_SC_F5] = USB_K_SC_F5,
+ [AT_SC_F6] = USB_K_SC_F6,
+ [AT_SC_F7] = USB_K_SC_F7,
+ [AT_SC_F8] = USB_K_SC_F8,
+ [AT_SC_F9] = USB_K_SC_F9,
+ [AT_SC_F10] = USB_K_SC_F10,
+ [AT_SC_F11] = USB_K_SC_F11,
+ [AT_SC_F12] = USB_K_SC_F12,
+ [AT_SC_SYSRQ] = USB_K_SC_SYSRQ,
+ [AT_SC_SCROLLLOCK] = USB_K_SC_SCROLLLOCK,
+ [AT_SC_PAUSE] = USB_K_SC_PAUSE,
+ [AT_SC_LEFTMETA] = USB_K_SC_LEFTMETA,
+ [AT_SC_RIGHTMETA] = USB_K_SC_RIGHTMETA,
+ [AT_SC_MENU] = USB_K_SC_MENU,
+ [AT_SC_POWER] = USB_K_SC_POWER,
+ [AT_SC_SLEEP] = USB_K_SC_SLEEP,
+// [ AT_SC_WAKEUP ] = USB_K_SC_WAKEUP,
// [ AT_SC_DBE_KATAKANA ] = USB_K_SC_DBE_KATAKANA,
// [ AT_SC_DBE_SBCSCHAR ] = USB_K_SC_DBE_SBCSCHAR,
-// [ AT_SC_CONVERT ] = USB_K_SC_CONVERT,
-// [ AT_SC_NONCONVERT ] = USB_K_SC_NONCONVERT,
+// [ AT_SC_CONVERT ] = USB_K_SC_CONVERT,
+// [ AT_SC_NONCONVERT ] = USB_K_SC_NONCONVERT,
};
-static int at_to_usb_consumer[AT_SC_MAX]={
- [ AT_SC_HOMEPAGE ] = USB_C_BF_HOMEPAGE,
- [ AT_SC_MUTE ] = USB_C_BF_MUTE,
- [ AT_SC_VOLUMEUP ] = USB_C_BF_VOLUMEUP,
- [ AT_SC_VOLUMEDOWN ] = USB_C_BF_VOLUMEDOWN,
- [ AT_SC_KEY_PREVIOUSSONG ] = USB_C_BF_PREVIOUSSONG,
- [ AT_SC_KEY_PLAYPAUSE ] = USB_C_BF_PLAYPAUSE,
- [ AT_SC_KEY_STOPCD ] = USB_C_BF_STOPCD,
- [ AT_SC_KEY_NEXTSONG ] = USB_C_BF_NEXTSONG,
+static int at_to_usb_consumer[AT_SC_MAX] = {
+ [AT_SC_HOMEPAGE] = USB_C_BF_HOMEPAGE,
+ [AT_SC_MUTE] = USB_C_BF_MUTE,
+ [AT_SC_VOLUMEUP] = USB_C_BF_VOLUMEUP,
+ [AT_SC_VOLUMEDOWN] = USB_C_BF_VOLUMEDOWN,
+ [AT_SC_KEY_PREVIOUSSONG] = USB_C_BF_PREVIOUSSONG,
+ [AT_SC_KEY_PLAYPAUSE] = USB_C_BF_PLAYPAUSE,
+ [AT_SC_KEY_STOPCD] = USB_C_BF_STOPCD,
+ [AT_SC_KEY_NEXTSONG] = USB_C_BF_NEXTSONG,
};
-void scancode_dispatch(int key,int updown)
+void
+scancode_dispatch (int key, int updown)
{
-if (at_to_usb_keyboard[key])
- keyboard_dispatch(at_to_usb_keyboard[key],updown);
+ if (at_to_usb_keyboard[key])
+ keyboard_dispatch (at_to_usb_keyboard[key], updown);
-if (at_to_usb_consumer[key])
- consumer_dispatch(at_to_usb_consumer[key],updown);
+ if (at_to_usb_consumer[key])
+ consumer_dispatch (at_to_usb_consumer[key], updown);
}
-
diff --git a/app/ring.c b/app/ring.c
index 8f13567..db9401a 100644
--- a/app/ring.c
+++ b/app/ring.c
@@ -54,13 +54,16 @@ ring_write (volatile ring_t * r, uint8_t * buf, size_t len, int blocking)
{
while (len--)
{
- if (blocking) {
- while (ring_write_byte (r, *buf));
- buf++;
- } else {
- if (ring_write_byte (r, *(buf++)))
- return -EAGAIN;
- }
+ if (blocking)
+ {
+ while (ring_write_byte (r, *buf));
+ buf++;
+ }
+ else
+ {
+ if (ring_write_byte (r, *(buf++)))
+ return -EAGAIN;
+ }
}
return 0;
diff --git a/app/stdio.c b/app/stdio.c
index b3fee4f..29c00a1 100644
--- a/app/stdio.c
+++ b/app/stdio.c
@@ -1,83 +1,76 @@
#include "project.h"
int
-_open (const char *name,
- int flags,
- int mode)
+_open (const char *name, int flags, int mode)
{
errno = ENOSYS;
return -1; /* Always fails */
-
-} /* _open () */
-
+
+} /* _open () */
+
int
-_close (int file)
+_close (int file)
{
errno = EBADF;
return -1; /* Always fails */
-
-} /* _close () */
-
+
+} /* _close () */
+
int
-_write (int file,
- char *buf,
- int nbytes)
+_write (int file, char *buf, int nbytes)
{
int ret;
- ret=usart1_write(buf,nbytes, 1);
-
- if (ret<0) {
- errno=-ret;
- return -1;
- }
+ ret = usart1_write (buf, nbytes, 1);
+
+ if (ret < 0)
+ {
+ errno = -ret;
+ return -1;
+ }
return ret;
-} /* _write () */
-
-
+} /* _write () */
+
+
int
-_read (int file,
- char *buf,
- int nbytes)
+_read (int file, char *buf, int nbytes)
{
-
- errno=-EAGAIN;
- return -1; /* EOF */
-
-} /* _read () */
-
+
+ errno = -EAGAIN;
+ return -1; /* EOF */
+
+} /* _read () */
+
#if 0
int
-_fstat (int file,
- struct stat *st)
+_fstat (int file, struct stat *st)
{
st->st_mode = S_IFCHR;
- return 0;
-
-} /* _fstat () */
+ return 0;
+
+} /* _fstat () */
#endif
-
+
int
-_lseek (int file,
- int offset,
- int whence)
+_lseek (int file, int offset, int whence)
{
- return 0;
-
-} /* _lseek () */
-
+ return 0;
+
+} /* _lseek () */
+
int
-isatty (int file)
+isatty (int file)
{
- return 1;
-
-} /* _isatty () */
+ return 1;
+
+} /* _isatty () */
-void stdio_drain(void)
+void
+stdio_drain (void)
{
-usart1_drain();
+ usart1_drain ();
}
diff --git a/app/ticker.c b/app/ticker.c
index 0f7d856..37884a6 100644
--- a/app/ticker.c
+++ b/app/ticker.c
@@ -3,7 +3,7 @@
static volatile uint32_t delay_ms_count;
volatile uint32_t ticks;
-static uint32_t scale=10;
+static uint32_t scale = 10;
void
delay_us (uint32_t d)
@@ -33,20 +33,23 @@ delay_ms (uint32_t d)
while (delay_ms_count);
}
-int timed_out(uint32_t then,unsigned int ms)
+int
+timed_out (uint32_t then, unsigned int ms)
{
-then=ticks-then;
+ then = ticks - then;
-if (then>ms) return 1;
-return 0;
+ if (then > ms)
+ return 1;
+ return 0;
}
-void ticker_init(void)
+void
+ticker_init (void)
{
- uint32_t v,w;
+ uint32_t v, w;
- /*Start periodic timer*/
+ /*Start periodic timer */
systick_set_clocksource (STK_CSR_CLKSOURCE_AHB_DIV8);
/* 48MHz / 8 = > 6Mhz */
@@ -72,5 +75,3 @@ void ticker_init(void)
}
-
-
diff --git a/app/tims_keyboard.c b/app/tims_keyboard.c
index 1b69d7b..c3c947b 100644
--- a/app/tims_keyboard.c
+++ b/app/tims_keyboard.c
@@ -9,32 +9,32 @@ main (void)
// rcc_clock_setup_in_hsi_out_48mhz ();
//nvic_set_priority_grouping(NVIC_PriorityGroup_4);
- /*set up pll*/
- rcc_clock_setup_in_hse_8mhz_out_72mhz();
+ /*set up pll */
+ rcc_clock_setup_in_hse_8mhz_out_72mhz ();
- /*turn on clocks to periferals*/
+ /*turn on clocks to periferals */
rcc_periph_clock_enable (RCC_GPIOA);
rcc_periph_clock_enable (RCC_GPIOB);
rcc_periph_clock_enable (RCC_GPIOC);
rcc_periph_clock_enable (RCC_AFIO);
rcc_periph_clock_enable (RCC_USART1);
rcc_periph_clock_enable (RCC_USART1);
- dwt_enable_cycle_counter();
+ dwt_enable_cycle_counter ();
/*Change interrupt priorities so that USART trumps Timer trumps ATKBD */
- nvic_set_priority(NVIC_USART1_IRQ, 0x40);
- nvic_set_priority(NVIC_SYSTICK_IRQ, 0x80);
- nvic_set_priority(NVIC_EXTI0_IRQ, 0xc0);
+ nvic_set_priority (NVIC_USART1_IRQ, 0x40);
+ nvic_set_priority (NVIC_SYSTICK_IRQ, 0x80);
+ nvic_set_priority (NVIC_EXTI0_IRQ, 0xc0);
- usart_init();
+ usart_init ();
- ticker_init();
+ ticker_init ();
#ifdef DEBUG
- printf("Hello world!\r\n");
+ printf ("Hello world!\r\n");
#endif
- atkbd_init();
+ atkbd_init ();
usb_init ();
diff --git a/app/usart.c b/app/usart.c
index 74e5383..1a97105 100644
--- a/app/usart.c
+++ b/app/usart.c
@@ -27,7 +27,7 @@ usart1_isr (void)
((USART_SR (USART1) & USART_SR_RXNE) != 0))
{
data = usart_recv (USART1);
- ring_write_byte(&rx1_ring,data);
+ ring_write_byte (&rx1_ring, data);
}
/* Check if we were called because of TXE. */
@@ -37,8 +37,8 @@ usart1_isr (void)
if (ring_read_byte (&tx1_ring, &data))
{
- /*No more data, Disable the TXE interrupt, it's no longer needed. */
- usart_disable_tx_interrupt(USART1);
+ /*No more data, Disable the TXE interrupt, it's no longer needed. */
+ usart_disable_tx_interrupt (USART1);
}
else
{
@@ -53,7 +53,7 @@ void
usart1_queue (uint8_t d)
{
ring_write_byte (&tx1_ring, d);
- usart_enable_tx_interrupt(USART1);
+ usart_enable_tx_interrupt (USART1);
}
void
@@ -64,13 +64,13 @@ usart1_drain (void)
int
-usart1_write (char *ptr, int len,int blocking)
+usart1_write (char *ptr, int len, int blocking)
{
int ret;
- ret = ring_write (&tx1_ring, (uint8_t *) ptr, len,blocking);
- usart_enable_tx_interrupt(USART1);
- return ret;
+ ret = ring_write (&tx1_ring, (uint8_t *) ptr, len, blocking);
+ usart_enable_tx_interrupt (USART1);
+ return ret;
}
@@ -83,8 +83,8 @@ usart_init (void)
nvic_enable_irq (NVIC_USART1_IRQ);
- MAP_AF(USART1_TX);
- MAP_AF_PU(USART1_RX);
+ MAP_AF (USART1_TX);
+ MAP_AF_PU (USART1_RX);
usart_set_baudrate (USART1, 38400);
diff --git a/app/usb.c b/app/usb.c
index 8dd38c6..767ad69 100644
--- a/app/usb.c
+++ b/app/usb.c
@@ -25,7 +25,7 @@ const struct usb_interface ifaces[] = {
{
.num_altsetting = 1,
.altsetting = &consumer_iface,
- },
+ },
{
.num_altsetting = 1,
.altsetting = &dfu_iface,
@@ -62,14 +62,16 @@ usbd_device *usbd_dev;
static int
usb_control_class_request (usbd_device * usbd_dev, struct usb_setup_data *req,
- uint8_t ** buf, uint16_t * len,
- void (**complete) (usbd_device * usbd_dev,
- struct usb_setup_data * req))
+ uint8_t ** buf, uint16_t * len,
+ void (**complete) (usbd_device * usbd_dev,
+ struct usb_setup_data * req))
{
- if (keyboard_control_request(usbd_dev,req,buf,len,complete)) return 1;
- if (dfu_control_request(usbd_dev,req,buf,len,complete)) return 1;
+ if (keyboard_control_request (usbd_dev, req, buf, len, complete))
+ return 1;
+ if (dfu_control_request (usbd_dev, req, buf, len, complete))
+ return 1;
-return 0;
+ return 0;
}
static int
@@ -90,9 +92,9 @@ usb_control_request (usbd_device * usbd_dev, struct usb_setup_data *req,
consumer_get_descriptor (buf, len);
return 1;
}
-
- *len = 0;
- return 0;
+
+ *len = 0;
+ return 0;
*len = 0;
@@ -106,11 +108,14 @@ usb_set_config (usbd_device * usbd_dev, uint16_t wValue)
(void) wValue;
(void) usbd_dev;
- usbd_ep_setup (usbd_dev, KEYBOARD_EP, USB_ENDPOINT_ATTR_INTERRUPT, KEYBOARD_EP_TXN_SIZE, NULL);
- usbd_ep_setup (usbd_dev, CONSUMER_EP, USB_ENDPOINT_ATTR_INTERRUPT, CONSUMER_EP_TXN_SIZE, NULL);
+ usbd_ep_setup (usbd_dev, KEYBOARD_EP, USB_ENDPOINT_ATTR_INTERRUPT,
+ KEYBOARD_EP_TXN_SIZE, NULL);
+ usbd_ep_setup (usbd_dev, CONSUMER_EP, USB_ENDPOINT_ATTR_INTERRUPT,
+ CONSUMER_EP_TXN_SIZE, NULL);
usbd_register_control_callback (usbd_dev,
- USB_REQ_TYPE_STANDARD | USB_REQ_TYPE_INTERFACE,
+ USB_REQ_TYPE_STANDARD |
+ USB_REQ_TYPE_INTERFACE,
USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT,
usb_control_request);