pw_i2c_mcuxpresso: Add new i3c driver layer

Adding a driver layer to allow the initiator to use one of several modes
such as interrupt, DMA, or a user-defined driver (e.g. smartDMA).

Bug: 448097025

Change-Id: Ib12ab3f0f17081815f910e6daebca67499fc184d
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/406192
12 files changed
tree: f88fe89d350ffcd205c76bf9012e16d3ee05bfa8
  1. .agents/
  2. .allstar/
  3. .gemini/
  4. .github/
  5. .vscode/
  6. build_overrides/
  7. docker/
  8. docs/
  9. kudzu/
  10. pw_alignment/
  11. pw_allocator/
  12. pw_allocator_zephyr/
  13. pw_analog/
  14. pw_android_toolchain/
  15. pw_arduino_build/
  16. pw_assert/
  17. pw_assert_basic/
  18. pw_assert_fuchsia/
  19. pw_assert_log/
  20. pw_assert_tokenized/
  21. pw_assert_trap/
  22. pw_assert_zephyr/
  23. pw_async/
  24. pw_async2/
  25. pw_async_basic/
  26. pw_async_fuchsia/
  27. pw_atomic/
  28. pw_base64/
  29. pw_bloat/
  30. pw_blob_store/
  31. pw_bluetooth/
  32. pw_bluetooth_hci/
  33. pw_bluetooth_profiles/
  34. pw_bluetooth_proxy/
  35. pw_bluetooth_sapphire/
  36. pw_boot/
  37. pw_boot_cortex_m/
  38. pw_build/
  39. pw_build_android/
  40. pw_build_info/
  41. pw_build_mcuxpresso/
  42. pw_bytes/
  43. pw_change/
  44. pw_channel/
  45. pw_checksum/
  46. pw_chre/
  47. pw_chrono/
  48. pw_chrono_embos/
  49. pw_chrono_freertos/
  50. pw_chrono_rp2040/
  51. pw_chrono_stl/
  52. pw_chrono_threadx/
  53. pw_chrono_zephyr/
  54. pw_cli/
  55. pw_cli_analytics/
  56. pw_clock_tree/
  57. pw_clock_tree_mcuxpresso/
  58. pw_compilation_testing/
  59. pw_config_loader/
  60. pw_console/
  61. pw_containers/
  62. pw_cpu_exception/
  63. pw_cpu_exception_cortex_m/
  64. pw_cpu_exception_risc_v/
  65. pw_crypto/
  66. pw_digital_io/
  67. pw_digital_io_linux/
  68. pw_digital_io_mcuxpresso/
  69. pw_digital_io_rp2040/
  70. pw_digital_io_zephyr/
  71. pw_display/
  72. pw_dma_mcuxpresso/
  73. pw_docgen/
  74. pw_doctor/
  75. pw_elf/
  76. pw_emu/
  77. pw_enum/
  78. pw_env_setup/
  79. pw_env_setup_zephyr/
  80. pw_file/
  81. pw_flatbuffers/
  82. pw_format/
  83. pw_function/
  84. pw_fuzzer/
  85. pw_grpc/
  86. pw_hdlc/
  87. pw_hex_dump/
  88. pw_i2c/
  89. pw_i2c_linux/
  90. pw_i2c_mcuxpresso/
  91. pw_i2c_rp2040/
  92. pw_i2c_zephyr/
  93. pw_ide/
  94. pw_interrupt/
  95. pw_interrupt_cortex_m/
  96. pw_interrupt_freertos/
  97. pw_interrupt_zephyr/
  98. pw_intrusive_ptr/
  99. pw_json/
  100. pw_kernel/
  101. pw_kvs/
  102. pw_libc/
  103. pw_libcxx/
  104. pw_log/
  105. pw_log_android/
  106. pw_log_basic/
  107. pw_log_fuchsia/
  108. pw_log_null/
  109. pw_log_rpc/
  110. pw_log_string/
  111. pw_log_tokenized/
  112. pw_log_zephyr/
  113. pw_malloc/
  114. pw_malloc_freelist/
  115. pw_malloc_freertos/
  116. pw_memory/
  117. pw_metric/
  118. pw_module/
  119. pw_multibuf/
  120. pw_multisink/
  121. pw_numeric/
  122. pw_package/
  123. pw_perf_test/
  124. pw_persistent_ram/
  125. pw_polyfill/
  126. pw_preprocessor/
  127. pw_presubmit/
  128. pw_protobuf/
  129. pw_protobuf_compiler/
  130. pw_random/
  131. pw_random_fuchsia/
  132. pw_result/
  133. pw_ring_buffer/
  134. pw_router/
  135. pw_rpc/
  136. pw_rpc_transport/
  137. pw_rust/
  138. pw_sensor/
  139. pw_snapshot/
  140. pw_software_update/
  141. pw_span/
  142. pw_spi/
  143. pw_spi_linux/
  144. pw_spi_mcuxpresso/
  145. pw_spi_rp2040/
  146. pw_spi_zephyr/
  147. pw_status/
  148. pw_stm32cube_build/
  149. pw_stream/
  150. pw_stream_uart_linux/
  151. pw_stream_uart_mcuxpresso/
  152. pw_string/
  153. pw_symbolizer/
  154. pw_sync/
  155. pw_sync_baremetal/
  156. pw_sync_embos/
  157. pw_sync_freertos/
  158. pw_sync_stl/
  159. pw_sync_threadx/
  160. pw_sync_zephyr/
  161. pw_sys_io/
  162. pw_sys_io_ambiq_sdk/
  163. pw_sys_io_arduino/
  164. pw_sys_io_baremetal_lm3s6965evb/
  165. pw_sys_io_baremetal_stm32f429/
  166. pw_sys_io_emcraft_sf2/
  167. pw_sys_io_mcuxpresso/
  168. pw_sys_io_rp2040/
  169. pw_sys_io_stdio/
  170. pw_sys_io_stm32cube/
  171. pw_sys_io_zephyr/
  172. pw_system/
  173. pw_target_runner/
  174. pw_thread/
  175. pw_thread_embos/
  176. pw_thread_freertos/
  177. pw_thread_stl/
  178. pw_thread_threadx/
  179. pw_thread_zephyr/
  180. pw_tls_client/
  181. pw_tls_client_boringssl/
  182. pw_tls_client_mbedtls/
  183. pw_tokenizer/
  184. pw_toolchain/
  185. pw_trace/
  186. pw_trace_tokenized/
  187. pw_transfer/
  188. pw_uart/
  189. pw_uart_mcuxpresso/
  190. pw_unit_test/
  191. pw_uuid/
  192. pw_varint/
  193. pw_watch/
  194. pw_web/
  195. pw_work_queue/
  196. seed/
  197. targets/
  198. third_party/
  199. zephyr/
  200. .bazelignore
  201. .bazelrc
  202. .bazelversion
  203. .black.toml
  204. .clang-format
  205. .clang-tidy
  206. .git-blame-ignore-revs
  207. .gitattributes
  208. .gitignore
  209. .gn
  210. .mypy.ini
  211. .prettierignore
  212. .prettierrc.cjs
  213. .pw_ide.yaml
  214. .pylintrc
  215. .ruff.toml
  216. activate.bat
  217. Android.bp
  218. AUTHORS
  219. bootstrap.bat
  220. bootstrap.fish
  221. bootstrap.sh
  222. BUILD.bazel
  223. BUILD.gn
  224. BUILDCONFIG.gn
  225. CMakeLists.txt
  226. GEMINI.md
  227. go.mod
  228. go.sum
  229. Kconfig.zephyr
  230. LICENSE
  231. MODULE.bazel
  232. MODULE.bazel.lock
  233. modules.gni
  234. OWNERS
  235. package.json
  236. pigweed.json
  237. PIGWEED_MODULES
  238. pw
  239. README.md
  240. REPO.bazel
  241. rustfmt.toml
  242. tsconfig.json
  243. workflows.json
  244. WORKSPACE_OWNERS
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/.

Links