RN42 driver: small cleanups (#18310)

* RN42 driver: small cleanups

* Include header

* Fix mouse report per RN42 UG

* Spacing for consistency
master
Ryan 2022-09-10 06:36:39 +10:00 committed by GitHub
parent a18aab4c3c
commit f20883fef1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 15 deletions

View File

@ -14,6 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "rn42.h"
#include "report.h" #include "report.h"
#include "uart.h" #include "uart.h"
@ -69,33 +71,35 @@ void rn42_send_keyboard(report_keyboard_t *report) {
uart_write(0xFD); uart_write(0xFD);
uart_write(0x09); uart_write(0x09);
uart_write(0x01); uart_write(0x01);
uart_write(report->mods); uart_write(report->mods);
uart_write(0x00); uart_write(0x00);
for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) { uart_write(report->keys[0]);
uart_write(report->keys[i]); uart_write(report->keys[1]);
} uart_write(report->keys[2]);
uart_write(report->keys[3]);
uart_write(report->keys[4]);
uart_write(report->keys[5]);
} }
void rn42_send_mouse(report_mouse_t *report) { void rn42_send_mouse(report_mouse_t *report) {
uart_write(0xFD); uart_write(0xFD);
uart_write(0x00); uart_write(0x05);
uart_write(0x03); uart_write(0x02);
uart_write(report->buttons); uart_write(report->buttons);
uart_write(report->x); uart_write(report->x);
uart_write(report->y); uart_write(report->y);
uart_write(report->v); // should try sending the wheel v here uart_write(report->v);
uart_write(report->h); // should try sending the wheel h here
uart_write(0x00);
} }
void rn42_send_consumer(uint16_t data) { void rn42_send_consumer(uint16_t usage) {
static uint16_t last_data = 0; uint16_t bitmap = rn42_consumer_usage_to_bitmap(usage);
if (data == last_data) return;
last_data = data;
uint16_t bitmap = rn42_consumer_usage_to_bitmap(data);
uart_write(0xFD); uart_write(0xFD);
uart_write(0x03); uart_write(0x03);
uart_write(0x03); uart_write(0x03);
uart_write(bitmap & 0xFF); uart_write(bitmap & 0xFF);
uart_write((bitmap >> 8) & 0xFF); uart_write(bitmap >> 8);
} }

View File

@ -14,6 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <stdint.h>
#include "report.h" #include "report.h"
void rn42_init(void); void rn42_init(void);
@ -22,4 +24,4 @@ void rn42_send_keyboard(report_keyboard_t *report);
void rn42_send_mouse(report_mouse_t *report); void rn42_send_mouse(report_mouse_t *report);
void rn42_send_consumer(uint16_t data); void rn42_send_consumer(uint16_t usage);