From 02897ae9a58e8b57639d452c734a6aff03114d0f Mon Sep 17 00:00:00 2001 From: Dhruv Menon Date: Wed, 6 Nov 2024 01:05:15 +0530 Subject: [PATCH] boards: beagle: Enable I2C6 on BeagleBone AI64 board Provide I2C Support to BeagleBone AI64 board. Signed-off-by: Dhruv Menon --- ...lebone_ai64_j721e_main_r5f0_0-pinctrl.dtsi | 8 ++ .../beaglebone_ai64_j721e_main_r5f0_0.dts | 6 ++ .../beaglebone_ai64_j721e_main_r5f0_0.yaml | 1 + ...eaglebone_ai64_j721e_main_r5f0_0_defconfig | 3 + boards/beagle/beaglebone_ai64/doc/index.rst | 4 +- dts/arm/ti/j721e_main_r5.dtsi | 77 +++++++++++++++++++ 6 files changed, 98 insertions(+), 1 deletion(-) diff --git a/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0-pinctrl.dtsi b/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0-pinctrl.dtsi index dfc744b72e4a126..9cf1363ba226f5a 100644 --- a/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0-pinctrl.dtsi +++ b/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0-pinctrl.dtsi @@ -18,4 +18,12 @@ /* 0x14 is address of padconfig register of p8.22 and 14 is mux mode */ pinmux = ; }; + i2c6_scl_default: i2c6_scl_default { + /* 0x1e0 is the address of padconfig register of p9.17 and 2 is mux mode */ + pinmux = ; + }; + i2c6_sda_default: i2c6_sda_default { + /* 0x1dc is the address of padconfig register of p9.18 and 2 is mux mode */ + pinmux = ; + }; }; diff --git a/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0.dts b/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0.dts index 8c4c8f0e8e4c949..804abfd95660a8c 100644 --- a/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0.dts +++ b/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0.dts @@ -45,6 +45,12 @@ }; }; +&i2c6 { + status = "okay"; + pinctrl-0 = <&i2c6_scl_default &i2c6_sda_default>; + pinctrl-names = "default"; +}; + &uart2 { status = "okay"; pinctrl-0 = <&uart2_tx_default &uart2_rx_default>; diff --git a/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0.yaml b/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0.yaml index 0adaeddf82f47d4..cecfa78f603d585 100644 --- a/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0.yaml +++ b/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0.yaml @@ -14,4 +14,5 @@ toolchain: - xtools supported: - uart + - i2c vendor: beagle diff --git a/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0_defconfig b/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0_defconfig index 244755fe3c965ff..4a2022de2a5436d 100644 --- a/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0_defconfig +++ b/boards/beagle/beaglebone_ai64/beaglebone_ai64_j721e_main_r5f0_0_defconfig @@ -13,3 +13,6 @@ CONFIG_UART_INTERRUPT_DRIVEN=y # Enable Console CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y + +# Enable I2C +CONFIG_I2C=y diff --git a/boards/beagle/beaglebone_ai64/doc/index.rst b/boards/beagle/beaglebone_ai64/doc/index.rst index d54775011dbd561..3e62a1ad54a7aa7 100644 --- a/boards/beagle/beaglebone_ai64/doc/index.rst +++ b/boards/beagle/beaglebone_ai64/doc/index.rst @@ -44,9 +44,11 @@ The board configuration supports, +-----------+------------+-----------------------+ | Interface | Controller | Driver/Component | +===========+============+=======================+ -| UART | on-chip | serial port-polling | +| UART | on-chip | serial port-polling, | | | | serial port-interrupt | +-----------+------------+-----------------------+ +| I2C | on-chip | i2c-polling | ++-----------+------------+-----------------------+ Other hardwares features are currently not supported. diff --git a/dts/arm/ti/j721e_main_r5.dtsi b/dts/arm/ti/j721e_main_r5.dtsi index 7b8f72ba5aed137..e088321e9664d35 100644 --- a/dts/arm/ti/j721e_main_r5.dtsi +++ b/dts/arm/ti/j721e_main_r5.dtsi @@ -55,6 +55,83 @@ status = "okay"; }; + i2c0: i2c0@2000000 { + compatible = "ti,omap-i2c"; + reg = <0x02000000 0x1000>; + interrupts = <0 150 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>; + interrupt-parent = <&vim>; + clock-frequency = <100000>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c1: i2c1@2010000 { + compatible = "ti,omap-i2c"; + reg = <0x02010000 0x1000>; + interrupts = <0 151 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>; + interrupt-parent = <&vim>; + clock-frequency = <100000>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c2: i2c2@2020000 { + compatible = "ti,omap-i2c"; + reg = <0x02020000 0x1000>; + interrupts = <0 183 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>; + interrupt-parent = <&vim>; + clock-frequency = <100000>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c3: i2c3@2030000 { + compatible = "ti,omap-i2c"; + reg = <0x02030000 0x1000>; + interrupts = <0 184 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>; + interrupt-parent = <&vim>; + clock-frequency = <100000>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c4: i2c4@2040000 { + compatible = "ti,omap-i2c"; + reg = <0x02040000 0x1000>; + interrupts = <0 185 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>; + interrupt-parent = <&vim>; + clock-frequency = <100000>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c5: i2c5@2050000 { + compatible = "ti,omap-i2c"; + reg = <0x02050000 0x1000>; + interrupts = <0 186 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>; + interrupt-parent = <&vim>; + clock-frequency = <100000>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c6: i2c@2060000 { + compatible = "ti,omap-i2c"; + reg = <0x02060000 0x1000>; + interrupts = <0 187 IRQ_TYPE_LEVEL IRQ_DEFAULT_PRIORITY>; + interrupt-parent = <&vim>; + clock-frequency = <100000>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + uart1: uart@2810000 { compatible = "ns16550"; reg = <0x02810000 0x100>;