Message ID | 1543843974-4054-5-git-send-email-qii.wang@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | add i2c support for mt7629 and mt8183 | expand |
On Mon, Dec 3, 2018 at 5:34 AM <qii.wang@mediatek.com> wrote: > > From: qii wang <qii.wang@mediatek.com> > > Add MT8183 i2c binding to binding file. Compare to 2712 i2c > controller, MT8183 has different registers, offsets, clock, > and multi-user function. > > Signed-off-by: qii wang <qii.wang@mediatek.com> > --- > Documentation/devicetree/bindings/i2c/i2c-mtk.txt | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/i2c/i2c-mtk.txt b/Documentation/devicetree/bindings/i2c/i2c-mtk.txt > index 7729e57..dfde624 100644 > --- a/Documentation/devicetree/bindings/i2c/i2c-mtk.txt > +++ b/Documentation/devicetree/bindings/i2c/i2c-mtk.txt > @@ -12,14 +12,15 @@ Required properties: > "mediatek,mt7623-i2c", "mediatek,mt6577-i2c": for MediaTek MT7623 > "mediatek,mt7629-i2c", "mediatek,mt2712-i2c": for MediaTek mt7629 > "mediatek,mt8173-i2c": for MediaTek MT8173 > + "mediatek,mt8183-i2c": for MediaTek MT8183 > - reg: physical base address of the controller and dma base, length of memory > mapped region. > - interrupts: interrupt number to the cpu. > - clock-div: the fixed value for frequency divider of clock source in i2c > module. Each IC may be different. > - clocks: clock name from clock manager > - - clock-names: Must include "main" and "dma", if enable have-pmic need include > - "pmic" extra. > + - clock-names: Must include "main" and "dma", "arb" is optional, if enable if arb is optional, the multi-user function still can work? arb seems like the clock fed to arbitrating bus when multiple users are accessing at the same time. > + have-pmic need include "pmic" extra. > > Optional properties: > - clock-frequency: Frequency in Hz of the bus when transfer, the default value > @@ -27,6 +28,8 @@ Optional properties: > - mediatek,have-pmic: platform can control i2c form special pmic side. > Only mt6589 and mt8135 support this feature. > - mediatek,use-push-pull: IO config use push-pull mode. > + - ch-offset: base reg offset for multi-user. add a vendor prefix if the property is vendor-specific one. > + - mediatek,share-i3c: i3c controller can share i2c function. > > Example: > > -- > 1.7.9.5 > > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek
> + - ch-offset: base reg offset for multi-user. What is "multi-user"? Why can't you add this offset to the reg-property directly? > + - mediatek,share-i3c: i3c controller can share i2c function. Please explain in more detail? Is this an I3C controller?
On Tue, 2018-12-11 at 21:29 +0100, Wolfram Sang wrote: > > + - ch-offset: base reg offset for multi-user. > > What is "multi-user"? Why can't you add this offset to the reg-property > directly? > Thanks for your comment. There are 3 channel in one MT8183 I3C controller, and every channel can be used as an I2C controller. Take the following diagram as example: If use I3C channels as I2C bus, 1. CH-A/B/C offset are different; 2. If use CH-B or CH-A as I2C, they must config registers which's address are in CH-A. ____________________________________ | ________ | | | |<--- offset:0x00 | | | CH-A | | | |________| | | | |<--- offset:0x100 | | | CH-B | | | |________| | | | |<--- offset:0x200 | | | CH-C | | | |________| | |____________________________________| one I3C controller Because of CH-B/CH-C depend on CH-A's register, it can't add offset to reg-property directly. MT8183 doesn't need to support muti-user according to the latest project information, and I'll remove this feature from patches. > > + - mediatek,share-i3c: i3c controller can share i2c function. > > Please explain in more detail? Is this an I3C controller? > Yes, it is a i3c controller, and it is compatible with i2c. I only use the feature of i2c, so I need a flag to do some extra settings.
> > What is "multi-user"? Why can't you add this offset to the reg-property > > directly? ... > MT8183 doesn't need to support muti-user according to the latest project > information, and I'll remove this feature from patches. Okay. It will be dropped then, thanks for the heads up! > > > + - mediatek,share-i3c: i3c controller can share i2c function. > > > > Please explain in more detail? Is this an I3C controller? > > Yes, it is a i3c controller, and it is compatible with i2c. I only use > the feature of i2c, so I need a flag to do some extra settings. Can't you derive this from the compatible? If it is "mediatek,mt8183-i2c", then you know you need these extra settings?
On Tue, 2018-12-18 at 00:06 +0100, Wolfram Sang wrote: > > > What is "multi-user"? Why can't you add this offset to the reg-property > > > directly? > > ... > > > MT8183 doesn't need to support muti-user according to the latest project > > information, and I'll remove this feature from patches. > > Okay. It will be dropped then, thanks for the heads up! > > > > > + - mediatek,share-i3c: i3c controller can share i2c function. > > > > > > Please explain in more detail? Is this an I3C controller? > > > > Yes, it is a i3c controller, and it is compatible with i2c. I only use > > the feature of i2c, so I need a flag to do some extra settings. > > Can't you derive this from the compatible? If it is > "mediatek,mt8183-i2c", then you know you need these extra settings? > Not all channels are i3c controllers in MT8183. only i3c controller need some extra settings.
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mtk.txt b/Documentation/devicetree/bindings/i2c/i2c-mtk.txt index 7729e57..dfde624 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mtk.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mtk.txt @@ -12,14 +12,15 @@ Required properties: "mediatek,mt7623-i2c", "mediatek,mt6577-i2c": for MediaTek MT7623 "mediatek,mt7629-i2c", "mediatek,mt2712-i2c": for MediaTek mt7629 "mediatek,mt8173-i2c": for MediaTek MT8173 + "mediatek,mt8183-i2c": for MediaTek MT8183 - reg: physical base address of the controller and dma base, length of memory mapped region. - interrupts: interrupt number to the cpu. - clock-div: the fixed value for frequency divider of clock source in i2c module. Each IC may be different. - clocks: clock name from clock manager - - clock-names: Must include "main" and "dma", if enable have-pmic need include - "pmic" extra. + - clock-names: Must include "main" and "dma", "arb" is optional, if enable + have-pmic need include "pmic" extra. Optional properties: - clock-frequency: Frequency in Hz of the bus when transfer, the default value @@ -27,6 +28,8 @@ Optional properties: - mediatek,have-pmic: platform can control i2c form special pmic side. Only mt6589 and mt8135 support this feature. - mediatek,use-push-pull: IO config use push-pull mode. + - ch-offset: base reg offset for multi-user. + - mediatek,share-i3c: i3c controller can share i2c function. Example: