NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-evbppc/60304: Wii - add generic char driver for gba / other joybus devices



>Number:         60304
>Category:       port-evbppc
>Synopsis:       Wii - add generic char driver for gba / other joybus devices
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    port-evbppc-maintainer
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Mon Jun 01 18:00:00 +0000 2026
>Originator:     Zac
>Release:        11.0
>Organization:
>Environment:
NetBSD wii 11.99.6 NetBSD 11.99.6 (NINTENDO) #20; Sun May 31 14:21:40 EDT 2026 user@devkitpro:/home/user/obj/sys/arch/evbppc/compile/NINTENDO evbppc
>Description:
I have been working on a generic char driver to support additional types of input on the Nintendo Wii's 4 gamecube ports and wanted to share the work in hope of contributing to src/

The change adds the `/dev/gcport[0-3]` device files which are matched by using the Joybus RESET/IDENTIFY commands to get the id of the plugged in device.

Currently the new char driver supports a single ioctl call to perform a transaction over the Wii's SI IO Buffer.

It will continue to use uhid for any gamecube controllers to preserve backwards compatibility.

summary of changes

- moves register definitions from si.c into si.h
- implements the data transfer over the SI IO Buffer
- queries the device id in the parent driver. continues to use uhid for a gamecube controller
- adds the new gcport_si.c char driver

the diff may most easily be seen here
https://github.com/NetBSD/src/pull/81/changes
>How-To-Repeat:
Working example of the new driver can be seen here
https://github.com/gummybuns/NetBSD-Wii-Joybus

1. Install netbsd on a wii
2. Compile the kernel from [my forked NetBSD-src](https://github.com/gummybuns/NetBSD-src/tree/wii-identify)
3. Plug a gameboy advance into one of the controller ports
4. boot up and run
>Fix:




Home | Main Index | Thread Index | Old Index