[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YWQMSG0U1Ae4pTCD@kunai>
Date: Mon, 11 Oct 2021 12:04:56 +0200
From: Wolfram Sang <wsa@...nel.org>
To: Sven Peter <sven@...npeter.dev>
Cc: Michael Ellerman <mpe@...erman.id.au>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>,
Olof Johansson <olof@...om.net>,
Christian Zigotzky <chzigotzky@...osoft.de>,
Arnd Bergmann <arnd@...db.de>,
Hector Martin <marcan@...can.st>,
Mohamed Mediouni <mohamed.mediouni@...amail.com>,
Stan Skowronek <stan@...ellium.com>,
Mark Kettenis <mark.kettenis@...all.nl>,
Alyssa Rosenzweig <alyssa@...enzweig.io>,
linux-arm-kernel@...ts.infradead.org,
linuxppc-dev@...ts.ozlabs.org, linux-i2c@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 00/11] Add Apple M1 support to PASemi i2c driver
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@svenpeter.dev/
>
> 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!
Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)
Powered by blists - more mailing lists