1*61c4878aSAndroid Build Coastguard Worker.. TODO: b/331286149 - Rename this file 2*61c4878aSAndroid Build Coastguard Worker 3*61c4878aSAndroid Build Coastguard Worker.. _module-pw_i2c-impl: 4*61c4878aSAndroid Build Coastguard Worker 5*61c4878aSAndroid Build Coastguard Worker=============== 6*61c4878aSAndroid Build Coastguard WorkerImplementations 7*61c4878aSAndroid Build Coastguard Worker=============== 8*61c4878aSAndroid Build Coastguard Worker.. pigweed-module-subpage:: 9*61c4878aSAndroid Build Coastguard Worker :name: pw_i2c 10*61c4878aSAndroid Build Coastguard Worker 11*61c4878aSAndroid Build Coastguard WorkerTo use the ``pw_i2c`` API, you need to specify in your build system an 12*61c4878aSAndroid Build Coastguard Workerimplementation of the ``pw_i2c`` virtual interface. 13*61c4878aSAndroid Build Coastguard Worker 14*61c4878aSAndroid Build Coastguard Worker------------------------ 15*61c4878aSAndroid Build Coastguard WorkerExisting implementations 16*61c4878aSAndroid Build Coastguard Worker------------------------ 17*61c4878aSAndroid Build Coastguard WorkerThe following Pigweed modules are ready-made ``pw_i2c`` implementations that 18*61c4878aSAndroid Build Coastguard Workeryou can use in your projects: 19*61c4878aSAndroid Build Coastguard Worker 20*61c4878aSAndroid Build Coastguard Worker* :ref:`module-pw_i2c_linux` for Linux userspace. 21*61c4878aSAndroid Build Coastguard Worker* :ref:`module-pw_i2c_mcuxpresso` for the NXP MCUXpresso SDK. 22*61c4878aSAndroid Build Coastguard Worker* :ref:`module-pw_i2c_rp2040` for the Raspberry Pi Pico SDK. 23*61c4878aSAndroid Build Coastguard Worker 24*61c4878aSAndroid Build Coastguard WorkerSee :ref:`module-pw_i2c-quickstart` for build system configuration examples. 25*61c4878aSAndroid Build Coastguard Worker 26*61c4878aSAndroid Build Coastguard Worker------------------------------ 27*61c4878aSAndroid Build Coastguard WorkerCreate your own implementation 28*61c4878aSAndroid Build Coastguard Worker------------------------------ 29*61c4878aSAndroid Build Coastguard WorkerIf the available implementations don't meet your needs, you can create your 30*61c4878aSAndroid Build Coastguard Workerown: 31*61c4878aSAndroid Build Coastguard Worker 32*61c4878aSAndroid Build Coastguard Worker.. _common_pico.cc: https://pigweed.googlesource.com/pigweed/kudzu/+/refs/heads/main/applications/app_common_impl/common_pico.cc 33*61c4878aSAndroid Build Coastguard Worker 34*61c4878aSAndroid Build Coastguard Worker#. Implement the :cpp:class:`pw::i2c::Initiator` interface. See 35*61c4878aSAndroid Build Coastguard Worker :ref:`module-pw_i2c_rp2040` for an example Raspberry Pi Pico SDK 36*61c4878aSAndroid Build Coastguard Worker implementation and `common_pico.cc`_ for example usage of ``pw_i2c_rp2040``. 37*61c4878aSAndroid Build Coastguard Worker 38*61c4878aSAndroid Build Coastguard Worker#. In your build system, take a dependency on the ``pw_i2c`` API headers. See 39*61c4878aSAndroid Build Coastguard Worker :ref:`module-pw_i2c-quickstart` for build system configuration examples. 40*61c4878aSAndroid Build Coastguard Worker 41*61c4878aSAndroid Build Coastguard Worker.. toctree:: 42*61c4878aSAndroid Build Coastguard Worker :maxdepth: 1 43*61c4878aSAndroid Build Coastguard Worker :hidden: 44*61c4878aSAndroid Build Coastguard Worker 45*61c4878aSAndroid Build Coastguard Worker Linux <../pw_i2c_linux/docs> 46*61c4878aSAndroid Build Coastguard Worker MCUXpresso <../pw_i2c_mcuxpresso/docs> 47*61c4878aSAndroid Build Coastguard Worker Pico SDK <../pw_i2c_rp2040/docs> 48