* [PATCH v3 0/2] Add MediaTek MT8365 I2C support
@ 2023-03-06 13:47 Alexandre Mergnat
2023-03-06 13:47 ` [PATCH v3 1/2] arm64: dts: mediatek: add i2c support for mt8365 SoC Alexandre Mergnat
2023-03-06 13:47 ` [PATCH v3 2/2] arm64: dts: mediatek: enable i2c0 for mt8365-evk board Alexandre Mergnat
0 siblings, 2 replies; 5+ messages in thread
From: Alexandre Mergnat @ 2023-03-06 13:47 UTC (permalink / raw)
To: Qii Wang, Matthias Brugger, Krzysztof Kozlowski, Rob Herring
Cc: linux-kernel, linux-arm-kernel, linux-i2c, Fabien Parent,
devicetree, AngeloGioacchino Del Regno, Alexandre Mergnat,
Rob Herring, linux-mediatek
Hi,
This patch series adds I2C support for MT8365-EVK board.
The I2C-0 is enabled, it can be used through the board pin header,
as described directly on the PCB.
This series depends to another one which add support for
MT8365 SoC and EVK board. Link [1]
One patch has been cherry-picked from [2], so I've addressed the comment
and kept the trailer.
Regards,
Alex
[1]: https://lore.kernel.org/linux-mediatek/20230101220149.3035048-1-bero@baylibre.com/
[2]: https://lore.kernel.org/all/20220531135026.238475-2-fparent@baylibre.com/
To: Qii Wang <qii.wang@mediatek.com>
To: Rob Herring <robh+dt@kernel.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
To: Matthias Brugger <matthias.bgg@gmail.com>
Cc: linux-i2c@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-mediatek@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: Fabien Parent <fparent@baylibre.com>
Cc: Rob Herring <robh@kernel.org>
Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
Changes in v3:
- Rebased to v6.3-rc1.
- Move i2c3 node to be consistent with the SoC address order.
- Link to v2: https://lore.kernel.org/r/20221122-mt8365-i2c-support-v2-0-e4c7c514e781@baylibre.com
Changes in v2:
- Drop the patch which do useless change in i2c-mt65xx.c driver.
- Change 2 lines compatible/reg in oneline.
- Link to v1: https://lore.kernel.org/r/20221122-mt8365-i2c-support-v1-0-4aeb7c54c67b@baylibre.com
---
Alexandre Mergnat (2):
arm64: dts: mediatek: add i2c support for mt8365 SoC
arm64: dts: mediatek: enable i2c0 for mt8365-evk board
arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 19 +++++++++++
arch/arm64/boot/dts/mediatek/mt8365.dtsi | 52 +++++++++++++++++++++++++++++
2 files changed, 71 insertions(+)
---
base-commit: 5c6b974d24c21a6aa5d8b524067d7d9bc7fcc4f2
change-id: 20221122-mt8365-i2c-support-fc048da261ea
Best regards,
--
Alexandre Mergnat <amergnat@baylibre.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 1/2] arm64: dts: mediatek: add i2c support for mt8365 SoC
2023-03-06 13:47 [PATCH v3 0/2] Add MediaTek MT8365 I2C support Alexandre Mergnat
@ 2023-03-06 13:47 ` Alexandre Mergnat
2023-03-07 9:43 ` AngeloGioacchino Del Regno
2023-03-06 13:47 ` [PATCH v3 2/2] arm64: dts: mediatek: enable i2c0 for mt8365-evk board Alexandre Mergnat
1 sibling, 1 reply; 5+ messages in thread
From: Alexandre Mergnat @ 2023-03-06 13:47 UTC (permalink / raw)
To: Qii Wang, Matthias Brugger, Krzysztof Kozlowski, Rob Herring
Cc: linux-kernel, linux-arm-kernel, linux-i2c, Fabien Parent,
devicetree, AngeloGioacchino Del Regno, Alexandre Mergnat,
Rob Herring, linux-mediatek
There are four I2C master channels in MT8365 with a same HW architecture.
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
arch/arm64/boot/dts/mediatek/mt8365.dtsi | 52 ++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8365.dtsi b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
index 15ac4c1f0966..553c7516406a 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
@@ -282,6 +282,45 @@ pwm: pwm@11006000 {
clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
};
+ i2c0: i2c@11007000 {
+ compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c";
+ reg = <0 0x11007000 0 0xa0>, <0 0x11000080 0 0x80>;
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_LOW>;
+ clock-div = <1>;
+ clocks = <&infracfg CLK_IFR_I2C0_AXI>,
+ <&infracfg CLK_IFR_AP_DMA>;
+ clock-names = "main", "dma";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ i2c1: i2c@11008000 {
+ compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c";
+ reg = <0 0x11008000 0 0xa0>, <0 0x11000100 0 0x80>;
+ interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_LOW>;
+ clock-div = <1>;
+ clocks = <&infracfg CLK_IFR_I2C1_AXI>,
+ <&infracfg CLK_IFR_AP_DMA>;
+ clock-names = "main", "dma";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
+ i2c2: i2c@11009000 {
+ compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c";
+ reg = <0 0x11009000 0 0xa0>, <0 0x11000180 0 0x80>;
+ interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_LOW>;
+ clock-div = <1>;
+ clocks = <&infracfg CLK_IFR_I2C2_AXI>,
+ <&infracfg CLK_IFR_AP_DMA>;
+ clock-names = "main", "dma";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
spi: spi@1100a000 {
compatible = "mediatek,mt8365-spi", "mediatek,mt7622-spi";
reg = <0 0x1100a000 0 0x100>;
@@ -295,6 +334,19 @@ spi: spi@1100a000 {
status = "disabled";
};
+ i2c3: i2c@1100f000 {
+ compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c";
+ reg = <0 0x1100f000 0 0xa0>, <0 0x11000200 0 0x80>;
+ interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_LOW>;
+ clock-div = <1>;
+ clocks = <&infracfg CLK_IFR_I2C3_AXI>,
+ <&infracfg CLK_IFR_AP_DMA>;
+ clock-names = "main", "dma";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
ssusb: usb@11201000 {
compatible = "mediatek,mt8365-mtu3", "mediatek,mtu3";
reg = <0 0x11201000 0 0x2e00>, <0 0x11203e00 0 0x0100>;
--
b4 0.10.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v3 2/2] arm64: dts: mediatek: enable i2c0 for mt8365-evk board
2023-03-06 13:47 [PATCH v3 0/2] Add MediaTek MT8365 I2C support Alexandre Mergnat
2023-03-06 13:47 ` [PATCH v3 1/2] arm64: dts: mediatek: add i2c support for mt8365 SoC Alexandre Mergnat
@ 2023-03-06 13:47 ` Alexandre Mergnat
2023-03-07 9:46 ` AngeloGioacchino Del Regno
1 sibling, 1 reply; 5+ messages in thread
From: Alexandre Mergnat @ 2023-03-06 13:47 UTC (permalink / raw)
To: Qii Wang, Matthias Brugger, Krzysztof Kozlowski, Rob Herring
Cc: linux-kernel, linux-arm-kernel, linux-i2c, Fabien Parent,
devicetree, AngeloGioacchino Del Regno, Alexandre Mergnat,
Rob Herring, linux-mediatek
Enable the I2C0 bus provides communication with:
- The integrated RT9466 Switching Battery Charger.
- The integrated MT6691 LP4X buck for VDDQ.
- The integrated MT6691 LP4X buck for VDD2.
- The pin header, to plug external I2C devices.
Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
---
arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
index 4683704ea235..b68aee8f229f 100644
--- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
@@ -87,6 +87,15 @@ optee_reserved: optee@43200000 {
};
};
+&i2c0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&i2c0_pins>;
+ clock-frequency = <100000>;
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+};
+
&pio {
gpio_keys: gpio-keys-pins {
pins {
@@ -96,6 +105,16 @@ pins {
};
};
+ i2c0_pins: i2c0-pins {
+ pins {
+ pinmux = <MT8365_PIN_57_SDA0__FUNC_SDA0_0>,
+ <MT8365_PIN_58_SCL0__FUNC_SCL0_0>;
+ mediatek,pull-up-adv = <3>;
+ mediatek,drive-strength-adv = <00>;
+ bias-pull-up;
+ };
+ };
+
uart0_pins: uart0-pins {
pins {
pinmux = <MT8365_PIN_35_URXD0__FUNC_URXD0>,
--
b4 0.10.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/2] arm64: dts: mediatek: add i2c support for mt8365 SoC
2023-03-06 13:47 ` [PATCH v3 1/2] arm64: dts: mediatek: add i2c support for mt8365 SoC Alexandre Mergnat
@ 2023-03-07 9:43 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 5+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-03-07 9:43 UTC (permalink / raw)
To: Alexandre Mergnat, Qii Wang, Matthias Brugger,
Krzysztof Kozlowski, Rob Herring
Cc: linux-kernel, linux-arm-kernel, linux-i2c, Fabien Parent,
devicetree, Rob Herring, linux-mediatek
Il 06/03/23 14:47, Alexandre Mergnat ha scritto:
> There are four I2C master channels in MT8365 with a same HW architecture.
>
> Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
> ---
> arch/arm64/boot/dts/mediatek/mt8365.dtsi | 52 ++++++++++++++++++++++++++++++++
> 1 file changed, 52 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/mediatek/mt8365.dtsi b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> index 15ac4c1f0966..553c7516406a 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/mt8365.dtsi
> @@ -282,6 +282,45 @@ pwm: pwm@11006000 {
> clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
> };
>
> + i2c0: i2c@11007000 {
> + compatible = "mediatek,mt8365-i2c", "mediatek,mt8168-i2c";
> + reg = <0 0x11007000 0 0xa0>, <0 0x11000080 0 0x80>;
> + interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_LOW>;
> + clock-div = <1>;
> + clocks = <&infracfg CLK_IFR_I2C0_AXI>,
> + <&infracfg CLK_IFR_AP_DMA>;
You can compress the clocks to one single line, reaching 91 columns, on all of the
new i2c nodes that you're introducing. Please do that.
With that done:
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Regards,
Angelo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: mediatek: enable i2c0 for mt8365-evk board
2023-03-06 13:47 ` [PATCH v3 2/2] arm64: dts: mediatek: enable i2c0 for mt8365-evk board Alexandre Mergnat
@ 2023-03-07 9:46 ` AngeloGioacchino Del Regno
0 siblings, 0 replies; 5+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-03-07 9:46 UTC (permalink / raw)
To: Alexandre Mergnat, Qii Wang, Matthias Brugger,
Krzysztof Kozlowski, Rob Herring
Cc: linux-kernel, linux-arm-kernel, linux-i2c, Fabien Parent,
devicetree, Rob Herring, linux-mediatek
Il 06/03/23 14:47, Alexandre Mergnat ha scritto:
> Enable the I2C0 bus provides communication with:
> - The integrated RT9466 Switching Battery Charger.
> - The integrated MT6691 LP4X buck for VDDQ.
> - The integrated MT6691 LP4X buck for VDD2.
> - The pin header, to plug external I2C devices.
>
> Signed-off-by: Alexandre Mergnat <amergnat@baylibre.com>
> ---
> arch/arm64/boot/dts/mediatek/mt8365-evk.dts | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> index 4683704ea235..b68aee8f229f 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> +++ b/arch/arm64/boot/dts/mediatek/mt8365-evk.dts
> @@ -87,6 +87,15 @@ optee_reserved: optee@43200000 {
> };
> };
>
> +&i2c0 {
> + pinctrl-names = "default";
> + pinctrl-0 = <&i2c0_pins>;
> + clock-frequency = <100000>;
> + status = "okay";
> + #address-cells = <1>;
> + #size-cells = <0>;
Address and size cells are useless if there's no subnode of i2c0...
besides that, please keep the properties ordered by name.
clock-frequency
pinctrl-0
pinctrl-names
status
> +};
> +
> &pio {
> gpio_keys: gpio-keys-pins {
> pins {
> @@ -96,6 +105,16 @@ pins {
> };
> };
>
> + i2c0_pins: i2c0-pins {
> + pins {
> + pinmux = <MT8365_PIN_57_SDA0__FUNC_SDA0_0>,
> + <MT8365_PIN_58_SCL0__FUNC_SCL0_0>;
> + mediatek,pull-up-adv = <3>;
> + mediatek,drive-strength-adv = <00>;
bias-pull-up;
mediatek,d...
mediatek,p....
Also, "00" is the same as "0", being this not a string... so write it as 0.
Thanks,
Angelo
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-03-07 9:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-06 13:47 [PATCH v3 0/2] Add MediaTek MT8365 I2C support Alexandre Mergnat
2023-03-06 13:47 ` [PATCH v3 1/2] arm64: dts: mediatek: add i2c support for mt8365 SoC Alexandre Mergnat
2023-03-07 9:43 ` AngeloGioacchino Del Regno
2023-03-06 13:47 ` [PATCH v3 2/2] arm64: dts: mediatek: enable i2c0 for mt8365-evk board Alexandre Mergnat
2023-03-07 9:46 ` AngeloGioacchino Del Regno
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®