From: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
boris-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org,
Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: I2C adapters protocol deviation
Date: Thu, 3 Apr 2014 16:55:28 +0200 [thread overview]
Message-ID: <20140403145528.GA6199@lukather> (raw)
[-- Attachment #1: Type: text/plain, Size: 1781 bytes --]
Hi Wolfram,
On the Allwinner A31, the PMIC communicates with the SoC through a bus
looking quite similar to I2C, while being pretty different.
The communication starts with the PMIC through the regular I2C
protocol, but it's only used to initialize the PMIC, and switch to a
mode called "Push/Pull 2 Wire Interface".
That bus is using SDA and SCL, with the start and stop conditions
exactly like I2C does, but:
- Once the start condition has been issued, the address isn't sent,
only a direction bit. Hence, it does not support multiple devices
anymore.
- Once that direction bit has been sent, the master sends the
register it wants to read from/write to, over 8 bits, followed by
one parity bit.
- Whenever you're writing, the master then sends the data over 8
bits, followed once again by a parity bit. Then, and only then, an
ACK is issued by the slave.
- Whenever you're reading, the master then clocks SDL and the slave
drives SDA for 8 bits plus 1 parity bit. If there was some kind of
error, the slave will pull SDA up for 9 cycles, resulting in a
parity error. Like with I2C though, since it is the only and last
byte it's receiving, the master won't issue an ACK.
Obviously, to go ahead with the PMIC support, we need to support this
controller and bus first. I can't really decide whether it's within
the scope of the allowed protocol deviations of I2C or if we should
create a whole new bus for it.
Since it's quite similar to and starts as an I2C bus, I'd go for the
former, but I'm really not definitive about it, and wanted to have
your feedback.
Thanks,
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next reply other threads:[~2014-04-03 14:55 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-03 14:55 Maxime Ripard [this message]
2014-04-03 15:30 ` I2C adapters protocol deviation Hans de Goede
[not found] ` <533D7E81.4050900-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-04-04 11:49 ` Maxime Ripard
2014-04-04 12:26 ` Wolfram Sang
2014-04-06 14:01 ` Hans de Goede
[not found] ` <53415E50.9000402-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-04-06 15:37 ` Wolfram Sang
2014-04-06 17:18 ` Hans de Goede
[not found] ` <53418C61.6020604-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-04-07 7:49 ` Boris BREZILLON
[not found] ` <5342589B.5000600-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-04-07 12:06 ` Hans de Goede
2014-04-07 8:15 ` Maxime Ripard
2014-04-07 12:07 ` Hans de Goede
2014-04-07 8:01 ` Maxime Ripard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140403145528.GA6199@lukather \
--to=maxime.ripard-wi1+55scjutkeb57/3fjtnbpr1lh4cv8@public.gmane.org \
--cc=boris-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).