First upload. Untested software

This commit is contained in:
2026-04-08 17:02:29 +02:00
commit 9b83763318
11 changed files with 698 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
/* Baremetal Risc-V USB <=> Amiga Joystick/Mouse HID converter.
* March 2026 - Anders Holck
* This software has no license. If you choose to use, please include my name :)
*/
#ifndef PINMUX_H
#define PINMUX_H
#include "usb_dwc2.h"
#define PINMUX_BASE 0x03001000
/* Pinmux offsets for GPIOA 14-29 */
#define PINMUX_GPIOA14 0x050
#define PINMUX_GPIOA15 0x054
#define PINMUX_GPIOA16 0x058
#define PINMUX_GPIOA17 0x05C
#define PINMUX_GPIOA18 0x060
#define PINMUX_GPIOA19 0x064
#define PINMUX_GPIOA20 0x068
#define PINMUX_GPIOA21 0x06C
#define PINMUX_GPIOA22 0x070
#define PINMUX_GPIOA23 0x074
#define PINMUX_GPIOA24 0x078
#define PINMUX_GPIOA25 0x07C
#define PINMUX_GPIOA26 0x080
#define PINMUX_GPIOA27 0x084
#define PINMUX_GPIOA28 0x088
#define PINMUX_GPIOA29 0x08C
/* Function Mode for GPIO (usually Mode 0 or 3) */
#define MUX_MODE_GPIO 0
static inline void pinmux_config(uint32_t offset, uint32_t mode) {
write32(PINMUX_BASE + offset, mode);
}
static inline void pinmux_init_amiga() {
// Config GP0-GP15 as GPIO
pinmux_config(PINMUX_GPIOA28, MUX_MODE_GPIO); // GP0
pinmux_config(PINMUX_GPIOA29, MUX_MODE_GPIO); // GP1
pinmux_config(PINMUX_GPIOA14, MUX_MODE_GPIO); // GP2
pinmux_config(PINMUX_GPIOA15, MUX_MODE_GPIO); // GP3
pinmux_config(PINMUX_GPIOA16, MUX_MODE_GPIO); // GP4
pinmux_config(PINMUX_GPIOA17, MUX_MODE_GPIO); // GP5
pinmux_config(PINMUX_GPIOA18, MUX_MODE_GPIO); // GP6
pinmux_config(PINMUX_GPIOA19, MUX_MODE_GPIO); // GP7
pinmux_config(PINMUX_GPIOA20, MUX_MODE_GPIO); // GP8
pinmux_config(PINMUX_GPIOA21, MUX_MODE_GPIO); // GP9
pinmux_config(PINMUX_GPIOA22, MUX_MODE_GPIO); // GP10
pinmux_config(PINMUX_GPIOA23, MUX_MODE_GPIO); // GP11
pinmux_config(PINMUX_GPIOA24, MUX_MODE_GPIO); // GP12
pinmux_config(PINMUX_GPIOA25, MUX_MODE_GPIO); // GP13
pinmux_config(PINMUX_GPIOA26, MUX_MODE_GPIO); // GP14
pinmux_config(PINMUX_GPIOA27, MUX_MODE_GPIO); // GP15
}
#endif /* PINMUX_H */