Find a file
Kumar Gala df81fef944 drivers: sensor: Convert Kconfig bus 'depends on' to 'select'
This change in pattern is meant to address a misconfiguration issue
that can occur for sensors that support being on multiple busses
like I2C & SPI.

For example, you can have a configuration in which such a sensor is
on the I2C bus in the devicetree and the sensor is enabled.  However
the application configuration enables CONFIG_SPI=y and CONFIG_I2C=n
and this will cause the sensor driver to be built by default, however
since we don't have the I2C bus enabled the driver will not compile
correctly.

Previously we had been adding to board Kconfig.defconfig something
like:

	config I2C
		default y if SENSOR

This pattern doesn't scale well and may differ from what an application
specific need/use is.

So instead move to a pattern in which we leave the default enablement
up to the devicetree "status" property for the sensor.  We then have
the Kconfig move from 'depends on <BUS>' to 'select <BUS>' and in
the case of drivers that support multiple busses we have the Kconfig
be: 'select <BUS> if $(dt_compat_on_bus,$(<DT_COMPAT>),<BUS>) for
each bus type the sensor supports.

This removes the need to add Kconfig logic to each board and enables
the bus subsystem and bus controller driver if the sensor requires
it by default in the build system.

Fixes: #48518

Signed-off-by: Kumar Gala <galak@kernel.org>
2022-08-08 06:58:18 +01:00
.github scripts: Upgrade to junitparser v2+ 2022-08-03 14:04:36 -04:00
arch arch: x86: Fix wrong identation 2022-08-07 14:27:56 +01:00
boards boards: fvp_baser_aemv8r_aarch32: Fix the board type 2022-08-07 14:28:42 +01:00
cmake cmake: Use cmake var not env for sdk 2022-08-05 14:03:15 +02:00
doc net: lwm2m: Try to reuse registration in case of a network error 2022-08-08 06:55:49 +01:00
drivers drivers: sensor: Convert Kconfig bus 'depends on' to 'select' 2022-08-08 06:58:18 +01:00
dts drivers: spi: Add default char to mcux flexcomm spi driver 2022-08-05 09:28:39 -05:00
include/zephyr net: lwm2m: separate closing context from closing socket 2022-08-08 06:55:49 +01:00
kernel kernel: Init the base.slice_ticks for dummy_thread 2022-08-04 19:44:24 -04:00
lib lib: os: spsc_pbuf: Fix free space calculation 2022-08-02 08:13:31 -04:00
misc misc: generated: update configs.c template with <zephyr/...> prefix 2022-05-09 12:45:29 -04:00
modules modules: openthread: Fix building with picolibc 2022-08-04 13:46:08 +02:00
samples drivers: eeprom: Fix format strings 2022-08-07 14:29:36 +01:00
scripts scripts: gen_handles: Sort the device handles 2022-08-05 13:00:35 +02:00
share cmake: sysbuild: signing support 2022-08-03 16:05:07 +02:00
soc kconfig: remove redundant IEEE 802.15.4 defaults or selections 2022-08-05 12:56:47 +02:00
submanifests west.yml: allow users to easily add more modules 2021-10-07 13:45:42 +02:00
subsys net: lwm2m: Try to reuse registration in case of a network error 2022-08-08 06:55:49 +01:00
tests ztest: mock: migrate openthread tests to FFF and new ztest API 2022-08-08 06:56:43 +01:00
.checkpatch.conf checkpatch: Ignore IS_ENABLED_CONFIG warnings 2021-10-18 08:28:01 -04:00
.clang-format clang-format: do not merge blocks/functions into single line 2022-07-15 19:18:28 -04:00
.codecov.yml
.editorconfig editorconfig: Improve verbosity 2022-04-28 08:55:39 -04:00
.gitattributes gitattributes: consider SVG files generated 2021-10-14 12:42:44 -04:00
.gitignore .gitignore: exempt scripts/build from ignore 2022-07-30 08:29:29 -05:00
.gitlint gitlint: Stop ignoring merge, revert, fixup and squash commits 2022-01-10 08:13:36 -05:00
.mailmap mailmap: update mailmap file with some stray emails 2021-06-17 14:15:41 -04:00
CMakeLists.txt scripts: gen_handles: output dependency graph 2022-07-30 08:29:29 -05:00
CODE_OF_CONDUCT.md
CODEOWNERS cmake: initial sysbuild / multi image support 2022-08-03 16:05:07 +02:00
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr Kconfig: flag LEGACY_INCLUDE_PATH as deprecated 2022-08-05 13:03:54 +02:00
LICENSE
MAINTAINERS.yml maintainers: riscv: Add myself as collaborator 2022-08-03 02:48:22 -05:00
README.rst readme: Update stale documentation links 2022-06-06 12:07:12 +02:00
VERSION version: Fix the EXTRAVERSION field 2022-06-05 20:11:17 +02:00
version.h.in cmake: version.h generation performed at build time 2022-02-08 07:50:24 -05:00
west.yml west.yml: Update NXP HAL to get the latest SDK 2022-08-04 10:47:16 -05:00
zephyr-env.cmd
zephyr-env.sh everywhere: fix typos 2022-03-18 13:24:08 -04:00

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <img src="doc/_static/images/logo-readme.svg">
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a
   href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain">
   <img
   src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM (Cortex-A,
Cortex-R, Cortex-M), Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V,
SPARC, MIPS, and a large number of `supported boards`_.

.. below included in doc/introduction/introduction.rst


Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

.. start_include_here

Community Support
*****************

Community support is provided via mailing lists and Discord; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

* **Help**: `Asking for Help Tips`_
* **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_)
* **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main
  repository; https://elixir.bootlin.com/zephyr/latest/source contains a
  searchable index
* **Releases**: https://github.com/zephyrproject-rtos/zephyr/releases
* **Samples and example code**: see `Sample and Demo Code Examples`_
* **Mailing Lists**: users@lists.zephyrproject.org and
  devel@lists.zephyrproject.org are the main user and developer mailing lists,
  respectively. You can join the developer's list and search its archives at
  `Zephyr Development mailing list`_. The other `Zephyr mailing list
  subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
  The builds@lists.zephyrproject.org mailing list archives the CI nightly build results.
* **Chat**: Real-time chat happens in Zephyr's Discord Server. Use
  this `Discord Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_
* **Wiki**: `Zephyr GitHub wiki`_
* **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues
* **Security Issues**: Email vulnerabilities@zephyrproject.org to report
  security issues; also see our `Security`_ documentation. Security issues are
  tracked separately at https://zephyrprojectsec.atlassian.net.
* **Zephyr Project Website**: https://zephyrproject.org

.. _Discord Invite: https://chat.zephyrproject.org
.. _supported boards: http://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.html
.. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel
.. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups
.. _Sample and Demo Code Examples: http://docs.zephyrproject.org/latest/samples/index.html
.. _Security: http://docs.zephyrproject.org/latest/security/index.html
.. _Asking for Help Tips: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help