On Fri, Oct 08, 2021 at 06:35:21PM +0200, Sven Peter wrote: > Hi, > > v1: https://lore.kernel.org/linux-i2c/20210926095847.38261-1-sven@xxxxxxxxxxxxx/ > > Changes for v2: > - Added reviewed-by/acks > - Switched from ioport_map to pci_iomap as suggested by Arnd Bergmann > - Renamed i2c-pasemi-apple.c to i2c-pasemi-platform.c as suggested by > Wolfram Sang > - Replaced the ioport number in the adapter name with dev_name to be > able to identify separate busses in e.g. i2cdetect. > > I still don't have access to any old PASemi hardware but the changes from > v1 are pretty small and I expect them to still work. Would still be nice > if someone with access to such hardware could give this a quick test. > > > And for those who didn't see v1 the (almost) unchanged original cover letter: > > This series adds support for the I2C controller found on Apple Silicon Macs > which has quite a bit of history: > > Apple bought P.A. Semi in 2008 and it looks like a part of its legacy continues > to live on in the M1. This controller has actually been used since at least the > iPhone 4S and hasn't changed much since then. > Essentially, there are only a few differences that matter: > > - The controller no longer is a PCI device > - Starting at some iPhone an additional bit in one register > must be set in order to start transmissions. > - The reference clock and hence the clock dividers are different > > In order to add support for a platform device I first replaced PCI-specific > bits and split out the PCI driver to its own file. Then I added support > to make the clock divider configurable and converted the driver to use > managed device resources to make it a bit simpler. > > The Apple and PASemi driver will never be compiled in the same kernel > since the Apple one will run on arm64 while the original PASemi driver > will only be useful on powerpc. > I've thus followed the octeon (mips)/thunderx(arm64) approach to do the > split: I created a -core.c file which contains the shared logic and just > compile that one for both the PASemi and the new Apple driver. > > > Best, > > Sven > > Sven Peter (11): > dt-bindings: i2c: Add Apple I2C controller bindings > i2c: pasemi: Use io{read,write}32 > i2c: pasemi: Use dev_name instead of port number > i2c: pasemi: Remove usage of pci_dev > i2c: pasemi: Split off common probing code > i2c: pasemi: Split pci driver to its own file > i2c: pasemi: Move common reset code to own function > i2c: pasemi: Allow to configure bus frequency > i2c: pasemi: Refactor _probe to use devm_* > i2c: pasemi: Add Apple platform driver > i2c: pasemi: Set enable bit for Apple variant > > .../devicetree/bindings/i2c/apple,i2c.yaml | 61 +++++++++ > MAINTAINERS | 2 + > drivers/i2c/busses/Kconfig | 11 ++ > drivers/i2c/busses/Makefile | 3 + Applied to for-next with MAINTAINER bits dropped and added tags from Olof and Christian, thanks!
Attachment:
signature.asc
Description: PGP signature