[PATCH RTEMS-docs] user/bsps/arm/beagle: Update i2c initialization instructions

G S Niteesh Babu niteesh.gs at gmail.com
Sat Apr 10 19:15:25 UTC 2021


The new i2c driver in the beagle BSP uses FDT based initialization.
This updates the documentation of the BSP about the same.
---
 user/bsps/arm/beagle.rst | 41 +++++++++++++++++++++++++++-------------
 1 file changed, 28 insertions(+), 13 deletions(-)

diff --git a/user/bsps/arm/beagle.rst b/user/bsps/arm/beagle.rst
index ac49b1c..d20942e 100644
--- a/user/bsps/arm/beagle.rst
+++ b/user/bsps/arm/beagle.rst
@@ -67,23 +67,38 @@ Add the following to a file named uEnv.txt:
 I2C Driver
 ----------
 
-The Beagle has the `i2c-0` device registered at initialization. For registering
-`i2c-1` and `i2c-2` ``bbb_register_i2c_1()`` and
-``bbb_register_i2c_2()`` wrapper functions are respectively used.
+The Beagle i2c initialization is based on the device tree. To initialize a i2c
+device, the user has to enable the respective node in the device tree using
+overlays.
 
-For registering an I2C device with a custom path (say `/dev/i2c-3`) the
-function ``am335x_i2c_bus_register()`` has to be used.
+For registering an I2C device with a custom path (say `/dev/i2c-eeprom`) an
+overlay has to be provided. The overlay must add an additional attribute
+`rtems,path` with the custom path as value to the respective i2c node.
 
-The function prototype is given below:
+For example,
 
-.. code-block:: C
+.. code-block::
+     /dts-v1/;
+
+     / {
+        compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
+
+        fragment at 0 {
+           target = <0xffffffff>;
+
+           __overlay__ {
+              compatible = "rtems,bsp-i2c", "ti,omap4-i2c";
+              status = "okay";
+              rtems,path = "/dev/i2c-eeprom";
+           };
+        };
+
+        __fixups__ {
+           i2c0 = "/fragment at 0:target:0";
+        };
+     };
 
-   int am335x_i2c_bus_register(
-   const char         *bus_path,
-   uintptr_t           register_base,
-   uint32_t            input_clock,
-   rtems_vector_number irq
-   );
+The above example registers a custom path `/dev/i2c-eeprom` for i2c0.
 
 SPI Driver
 ----------
-- 
2.17.1



More information about the devel mailing list