pw_i2c_linux: Add Linux I2C backend

Add pw_i2c backend using Linux userspace i2c-dev driver.

Note that pw_i2c isn't part of CMake build, so neither is this backend.

Change-Id: I6e5f8670e04f55db736cab41244b44573004018e
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/134731
Commit-Queue: Anton Markov <amarkov@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Erik Gilling <konkers@google.com>
10 files changed
tree: e2f95d0fa5831d91db64bf05226decf49ee2ad57
  1. .allstar/
  2. .vscode/
  3. build_overrides/
  4. docker/
  5. docs/
  6. pw_alignment/
  7. pw_allocator/
  8. pw_analog/
  9. pw_android_toolchain/
  10. pw_arduino_build/
  11. pw_assert/
  12. pw_assert_basic/
  13. pw_assert_log/
  14. pw_assert_tokenized/
  15. pw_assert_zephyr/
  16. pw_async/
  17. pw_async_basic/
  18. pw_base64/
  19. pw_bloat/
  20. pw_blob_store/
  21. pw_bluetooth/
  22. pw_bluetooth_hci/
  23. pw_bluetooth_profiles/
  24. pw_boot/
  25. pw_boot_cortex_m/
  26. pw_build/
  27. pw_build_info/
  28. pw_build_mcuxpresso/
  29. pw_bytes/
  30. pw_checksum/
  31. pw_chrono/
  32. pw_chrono_embos/
  33. pw_chrono_freertos/
  34. pw_chrono_stl/
  35. pw_chrono_threadx/
  36. pw_chrono_zephyr/
  37. pw_cli/
  38. pw_compilation_testing/
  39. pw_console/
  40. pw_containers/
  41. pw_cpu_exception/
  42. pw_cpu_exception_cortex_m/
  43. pw_crypto/
  44. pw_digital_io/
  45. pw_docgen/
  46. pw_doctor/
  47. pw_env_setup/
  48. pw_file/
  49. pw_function/
  50. pw_fuzzer/
  51. pw_hdlc/
  52. pw_hex_dump/
  53. pw_i2c/
  54. pw_i2c_linux/
  55. pw_i2c_mcuxpresso/
  56. pw_ide/
  57. pw_interrupt/
  58. pw_interrupt_cortex_m/
  59. pw_interrupt_zephyr/
  60. pw_intrusive_ptr/
  61. pw_kvs/
  62. pw_libc/
  63. pw_log/
  64. pw_log_android/
  65. pw_log_basic/
  66. pw_log_null/
  67. pw_log_rpc/
  68. pw_log_string/
  69. pw_log_tokenized/
  70. pw_log_zephyr/
  71. pw_malloc/
  72. pw_malloc_freelist/
  73. pw_metric/
  74. pw_minimal_cpp_stdlib/
  75. pw_module/
  76. pw_multisink/
  77. pw_package/
  78. pw_perf_test/
  79. pw_persistent_ram/
  80. pw_polyfill/
  81. pw_preprocessor/
  82. pw_presubmit/
  83. pw_protobuf/
  84. pw_protobuf_compiler/
  85. pw_random/
  86. pw_result/
  87. pw_ring_buffer/
  88. pw_router/
  89. pw_rpc/
  90. pw_rpc_transport/
  91. pw_rust/
  92. pw_snapshot/
  93. pw_software_update/
  94. pw_span/
  95. pw_spi/
  96. pw_status/
  97. pw_stm32cube_build/
  98. pw_stream/
  99. pw_string/
  100. pw_symbolizer/
  101. pw_sync/
  102. pw_sync_baremetal/
  103. pw_sync_embos/
  104. pw_sync_freertos/
  105. pw_sync_stl/
  106. pw_sync_threadx/
  107. pw_sync_zephyr/
  108. pw_sys_io/
  109. pw_sys_io_arduino/
  110. pw_sys_io_baremetal_lm3s6965evb/
  111. pw_sys_io_baremetal_stm32f429/
  112. pw_sys_io_emcraft_sf2/
  113. pw_sys_io_mcuxpresso/
  114. pw_sys_io_pico/
  115. pw_sys_io_stdio/
  116. pw_sys_io_stm32cube/
  117. pw_sys_io_zephyr/
  118. pw_system/
  119. pw_target_runner/
  120. pw_thread/
  121. pw_thread_embos/
  122. pw_thread_freertos/
  123. pw_thread_stl/
  124. pw_thread_threadx/
  125. pw_thread_zephyr/
  126. pw_tls_client/
  127. pw_tls_client_boringssl/
  128. pw_tls_client_mbedtls/
  129. pw_tokenizer/
  130. pw_tool/
  131. pw_toolchain/
  132. pw_trace/
  133. pw_trace_tokenized/
  134. pw_transfer/
  135. pw_unit_test/
  136. pw_unit_test_zephyr/
  137. pw_varint/
  138. pw_watch/
  139. pw_web/
  140. pw_work_queue/
  141. seed/
  142. targets/
  143. third_party/
  144. ts/
  145. zephyr/
  146. .bazelignore
  147. .bazelrc
  148. .black.toml
  149. .clang-format
  150. .clang-tidy
  151. .eslintrc.json
  152. .git-blame-ignore-revs
  153. .gitattributes
  154. .gitignore
  155. .gn
  156. .mypy.ini
  157. .prettierrc.js
  158. .pw_ide.yaml
  159. .pylintrc
  160. activate.bat
  161. Android.bp
  162. AUTHORS
  163. bootstrap.bat
  164. bootstrap.sh
  165. BUILD.bazel
  166. BUILD.gn
  167. BUILDCONFIG.gn
  168. CMakeLists.txt
  169. jest.config.ts
  170. Kconfig.zephyr
  171. LICENSE
  172. modules.gni
  173. OWNERS
  174. package-lock.json
  175. package.json
  176. pigweed.json
  177. PIGWEED_MODULES
  178. README.md
  179. rollup.config.js
  180. tsconfig.json
  181. WORKSPACE
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