First upload. Untested software
This commit is contained in:
@@ -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 */
|
||||
Reference in New Issue
Block a user