cb22 / macbook12-spi-driver

WIP input driver for the SPI touchpad / keyboard found in the 12" MacBook (MacBook8,1 + MacBook9,1)
GNU General Public License v2.0
298 stars 103 forks source link

Use GPIO and write a HID driver #55

Closed joelkraehemann closed 6 years ago

joelkraehemann commented 6 years ago

Hi, I am not happy with your driver. The driver does generate newlines during boot and modprobe -rv applespi && modprobe -v applespi Further there are GPIOs available. Might be you can use it to do a HID driver.

I have not much experience doing kernel drivers. However here are some thoughts done so far: https://github.com/joelkraehemann/apple-spi/blob/master/gpio_applehidkbd.c

roadrunner2 commented 6 years ago

Can you elaborate on "does generate newlines..."? Sorry, but I don't really know what you're talking about here.

Regarding GPIO's - how is that supposed to work? Are you sure the SPI bus is running over some GPIO pins? And wouldn't that entail re-implementing the SPI protocol in the driver? Sorry, I'm just a bit confused.

l1k commented 6 years ago

@joelkraehemann:

As stated in spi-gpio.c (which you're including):

This bitbanging SPI master driver should help make systems usable when a native hardware SPI engine is not available, perhaps because its driver isn't yet working or because the I/O pins it requires are used for other purposes.

However in this case, an SPI master driver is readily available and supported by the Intel folks, so there's no need to reimplement or duplicate its functionality and a driver doing so wouldn't seem to be acceptable for mainline.

Moreover, so far there's only a single slave attached to the master, but what if Apple adds further slaves in future machines? Bitbanging would seem fragile in that case.