From: Xudong Chen <xudong.chen@mediatek.com>
To: Mark Rutland <mark.rutland@arm.com>,
arm@kernel.org, Matthias Brugger <matthias.bgg@gmail.com>,
Wolfram Sang <wsa@the-dreams.de>
Cc: Xudong Chen <xudong.chen@mediatek.com>,
devicetree@vger.kernel.org, Russell King <linux@arm.linux.org.uk>,
srv_heupstream@mediatek.com, Pawel Moll <pawel.moll@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
YH Chen <yh.chen@mediatek.com>,
linux-kernel@vger.kernel.org,
Nathan Chung <nathan.chung@mediatek.com>,
Rob Herring <robh+dt@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
linux-arm-kernel@lists.infradead.org,
Sascha Hauer <kernel@pengutronix.de>,
Kumar Gala <galak@codeaurora.org>,
Grant Likely <grant.likely@linaro.org>,
Yingjoe Chen <yingjoe.chen@mediatek.com>,
Eddie Huang <eddie.huang@mediatek.com>,
Jean Delvare <jdelvare@suse.de>,
linux-i2c@vger.kernel.org
Subject: [PATCH 0/3] ARM: mediatek: Add driver for Mediatek I2C controller
Date: Wed, 29 Oct 2014 13:37:35 +0800 [thread overview]
Message-ID: <1414561058-23803-1-git-send-email-xudong.chen@mediatek.com> (raw)
This driver is based on 3.18-rc1 & Hongzhou's gpio patch.
MTK I2C HW has some limitation.
1. If the i2c_msg number is more than one, STOP will be issued instead of
RS(Repeat Start) between each message.
Such as: "START + ADDR + DATA_n + STOP + START + ADDR + DATA_n + STOP ..."
2. Mediatek I2C controller support WRRD(write then read) mode, in WRRD
mode the Repeat Start will be issued between 2 messages.
In this driver if 2 messages is first write then read, the driver will
combine 2 messages using Write-Read mode so the RS will be issued between
the 2 messages.
Ex: W/R/R, driver will combine first W/R and then R.
The data series will be:
"START + WriteADDR + DATA + RS + ReadADDR + DATA + STOP + START + ReadADDR +
DATA + STOP".
3. Due to HW limitation, in this version the max transfer data length is 255
in one message. If want to transfer more than 255 bytes, HW needs the SW
driver to split the data. Take 600 bytes for example, the data need to be
divided into 3 parts 255 + 255 + 90. The data series will be:
"START + ADDR + DATA_255 + RS + ADDR + DATA_255 + RS + ADDR + DATA_90 + STOP"
instead of "START + ADDR + DATA_900 + STOP".
We haven't implement this yet, we will do this in the separate patch.
MT8135 can control I2C pins on PMIC(MT6397) by setting the i2c registers in
MT8135 side. In this case, driver should set OFFSET_PATH_DIR bit first, the
operation on other registers are still the same.
Xudong Chen (3):
dt-bindings: Add I2C bindings for mt65xx/mt81xx.
ARM: mediatek: Add I2C node for mt8135 and mt8127
I2C: mediatek: Add driver for MediaTek I2C controller
.../devicetree/bindings/i2c/i2c-mt6577.txt | 37 ++
arch/arm/boot/dts/mt8127.dtsi | 27 +
arch/arm/boot/dts/mt8135.dtsi | 51 ++
drivers/i2c/busses/Kconfig | 9 +
drivers/i2c/busses/Makefile | 1 +
drivers/i2c/busses/i2c-mt65xx.c | 728 +++++++++++++++++++++
6 files changed, 853 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mt6577.txt
create mode 100644 drivers/i2c/busses/i2c-mt65xx.c
--
1.8.1.1.dirty
next reply other threads:[~2014-10-29 5:37 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-29 5:37 Xudong Chen [this message]
2014-10-29 5:37 ` [PATCH 1/3] dt-bindings: Add I2C bindings for mt65xx/mt81xx Xudong Chen
2014-10-30 12:38 ` Matthias Brugger
2014-10-31 1:38 ` xudong chen
2014-10-31 10:50 ` Matthias Brugger
2014-10-29 5:37 ` [PATCH 2/3] ARM: mediatek: Add I2C node for mt8135 and mt8127 Xudong Chen
2014-10-29 5:37 ` [PATCH 3/3] I2C: mediatek: Add driver for MediaTek I2C controller Xudong Chen
[not found] ` <1414561058-23803-4-git-send-email-xudong.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2014-10-30 13:16 ` Matthias Brugger
2014-10-30 13:25 ` Wolfram Sang
2014-10-30 14:49 ` Yingjoe Chen
[not found] ` <CABuKBe+RXboBEZD7Bu_kSbVwiapJJcAuuw_wo=xw67osJWJ20w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-10-31 6:31 ` xudong chen
2014-10-31 10:48 ` Matthias Brugger
[not found] ` <CABuKBeK1O2q37RMVE0Yjp2=QgkzXZfh=vxXiZrw-JMiYMxb-QQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-10-31 14:38 ` Yingjoe Chen
2014-10-31 16:10 ` Matthias Brugger
[not found] ` <CABuKBeJ2NxcVn=yapcvNs1xLU+eye4JWESBwdcWoeqO=-vMBKw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-03 5:44 ` xudong chen
2014-11-03 8:11 ` Sascha Hauer
[not found] ` <1414561058-23803-1-git-send-email-xudong.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2014-10-29 6:26 ` [PATCH 0/3] ARM: mediatek: Add driver for Mediatek " xudong chen
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=1414561058-23803-1-git-send-email-xudong.chen@mediatek.com \
--to=xudong.chen@mediatek.com \
--cc=arm@kernel.org \
--cc=arnd@arndb.de \
--cc=devicetree@vger.kernel.org \
--cc=eddie.huang@mediatek.com \
--cc=galak@codeaurora.org \
--cc=grant.likely@linaro.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=jdelvare@suse.de \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mark.rutland@arm.com \
--cc=matthias.bgg@gmail.com \
--cc=nathan.chung@mediatek.com \
--cc=pawel.moll@arm.com \
--cc=robh+dt@kernel.org \
--cc=srv_heupstream@mediatek.com \
--cc=wsa@the-dreams.de \
--cc=yh.chen@mediatek.com \
--cc=yingjoe.chen@mediatek.com \
/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).