1*61c4878aSAndroid Build Coastguard Worker.. _module-pw_i2c: 2*61c4878aSAndroid Build Coastguard Worker 3*61c4878aSAndroid Build Coastguard Worker====== 4*61c4878aSAndroid Build Coastguard Workerpw_i2c 5*61c4878aSAndroid Build Coastguard Worker====== 6*61c4878aSAndroid Build Coastguard Worker.. pigweed-module:: 7*61c4878aSAndroid Build Coastguard Worker :name: pw_i2c 8*61c4878aSAndroid Build Coastguard Worker 9*61c4878aSAndroid Build Coastguard Worker.. tab-set:: 10*61c4878aSAndroid Build Coastguard Worker 11*61c4878aSAndroid Build Coastguard Worker .. tab-item:: app.cpp 12*61c4878aSAndroid Build Coastguard Worker 13*61c4878aSAndroid Build Coastguard Worker .. include:: ../pw_i2c_rp2040/docs.rst 14*61c4878aSAndroid Build Coastguard Worker :start-after: .. pw_i2c_rp2040-example-start 15*61c4878aSAndroid Build Coastguard Worker :end-before: .. pw_i2c_rp2040-example-end 16*61c4878aSAndroid Build Coastguard Worker 17*61c4878aSAndroid Build Coastguard Worker .. tab-item:: BUILD.bazel 18*61c4878aSAndroid Build Coastguard Worker 19*61c4878aSAndroid Build Coastguard Worker .. code-block:: py 20*61c4878aSAndroid Build Coastguard Worker 21*61c4878aSAndroid Build Coastguard Worker cc_library( 22*61c4878aSAndroid Build Coastguard Worker # ... 23*61c4878aSAndroid Build Coastguard Worker deps = [ 24*61c4878aSAndroid Build Coastguard Worker # ... 25*61c4878aSAndroid Build Coastguard Worker "@pigweed//pw_i2c:address", 26*61c4878aSAndroid Build Coastguard Worker "@pigweed//pw_i2c:device", 27*61c4878aSAndroid Build Coastguard Worker # ... 28*61c4878aSAndroid Build Coastguard Worker ] + select({ 29*61c4878aSAndroid Build Coastguard Worker "@platforms//os:freertos": [ 30*61c4878aSAndroid Build Coastguard Worker "@pigweed//pw_i2c_rp2040:initiator", 31*61c4878aSAndroid Build Coastguard Worker ], 32*61c4878aSAndroid Build Coastguard Worker "//conditions:default": [ 33*61c4878aSAndroid Build Coastguard Worker # Fake example of a custom implementation. 34*61c4878aSAndroid Build Coastguard Worker "//lib/pw_i2c_my_device:initiator", 35*61c4878aSAndroid Build Coastguard Worker ], 36*61c4878aSAndroid Build Coastguard Worker }), 37*61c4878aSAndroid Build Coastguard Worker ) 38*61c4878aSAndroid Build Coastguard Worker 39*61c4878aSAndroid Build Coastguard Worker``pw_i2c`` provides C++ libraries and helpers for interacting with I2C 40*61c4878aSAndroid Build Coastguard Workerdevices. 41*61c4878aSAndroid Build Coastguard Worker 42*61c4878aSAndroid Build Coastguard Worker.. grid:: 2 43*61c4878aSAndroid Build Coastguard Worker 44*61c4878aSAndroid Build Coastguard Worker .. grid-item-card:: :octicon:`rocket` Quickstart 45*61c4878aSAndroid Build Coastguard Worker :link: module-pw_i2c-quickstart 46*61c4878aSAndroid Build Coastguard Worker :link-type: ref 47*61c4878aSAndroid Build Coastguard Worker :class-item: sales-pitch-cta-primary 48*61c4878aSAndroid Build Coastguard Worker 49*61c4878aSAndroid Build Coastguard Worker How to set up ``pw_i2c`` in your build system 50*61c4878aSAndroid Build Coastguard Worker and interact with an I2C device via the C++ API. 51*61c4878aSAndroid Build Coastguard Worker 52*61c4878aSAndroid Build Coastguard Worker .. grid-item-card:: :octicon:`list-unordered` Guides 53*61c4878aSAndroid Build Coastguard Worker :link: module-pw_i2c-guides 54*61c4878aSAndroid Build Coastguard Worker :link-type: ref 55*61c4878aSAndroid Build Coastguard Worker :class-item: sales-pitch-cta-secondary 56*61c4878aSAndroid Build Coastguard Worker 57*61c4878aSAndroid Build Coastguard Worker How to mock up I2C transactions, configure and read from a device's 58*61c4878aSAndroid Build Coastguard Worker register, communicate with an I2C device over RPC, and more. 59*61c4878aSAndroid Build Coastguard Worker 60*61c4878aSAndroid Build Coastguard Worker.. grid:: 2 61*61c4878aSAndroid Build Coastguard Worker 62*61c4878aSAndroid Build Coastguard Worker .. grid-item-card:: :octicon:`code-square` Reference 63*61c4878aSAndroid Build Coastguard Worker :link: module-pw_i2c-reference 64*61c4878aSAndroid Build Coastguard Worker :link-type: ref 65*61c4878aSAndroid Build Coastguard Worker :class-item: sales-pitch-cta-secondary 66*61c4878aSAndroid Build Coastguard Worker 67*61c4878aSAndroid Build Coastguard Worker API references for ``pw::i2c::Initiator``, ``pw::i2c::Address``, 68*61c4878aSAndroid Build Coastguard Worker ``pw::i2c::Device``, and more. 69*61c4878aSAndroid Build Coastguard Worker 70*61c4878aSAndroid Build Coastguard Worker .. grid-item-card:: :octicon:`stack` Implementations 71*61c4878aSAndroid Build Coastguard Worker :link: module-pw_i2c-impl 72*61c4878aSAndroid Build Coastguard Worker :link-type: ref 73*61c4878aSAndroid Build Coastguard Worker :class-item: sales-pitch-cta-secondary 74*61c4878aSAndroid Build Coastguard Worker 75*61c4878aSAndroid Build Coastguard Worker A summary of the existing ``pw_i2c`` implementations and a guide 76*61c4878aSAndroid Build Coastguard Worker on how to create your own. 77*61c4878aSAndroid Build Coastguard Worker 78*61c4878aSAndroid Build Coastguard Worker.. toctree:: 79*61c4878aSAndroid Build Coastguard Worker :hidden: 80*61c4878aSAndroid Build Coastguard Worker :maxdepth: 1 81*61c4878aSAndroid Build Coastguard Worker 82*61c4878aSAndroid Build Coastguard Worker guides 83*61c4878aSAndroid Build Coastguard Worker reference 84*61c4878aSAndroid Build Coastguard Worker backends 85