zephyr/drivers
Tomasz Bursztyka 8d7bb8ffd8 device: Refactor device structures
When the device driver model got introduced, there were no concept of
SYS_INIT() which can be seen as software service. These were introduced
afterwards and reusing the device infrastructure for simplicity.
However, it meant to allocate a bit too much for something that only
required an initialization function to be called at right time.

Thus refactoring the devices structures relevantly:
- introducing struct init_entry which is a generic init end-point
- struct deviceconfig is removed and struct device owns everything now.
- SYS_INIT() generates only a struct init_entry via calling
  INIT_ENTRY_DEFINE()
- DEVICE_AND_API_INIT() generates a struct device and calls
  INIT_ENTRY_DEFINE()
- init objects sections are in ROM
- device objects sections are in RAM (but will end up in ROM once they
  will be 'constified')

It also generate a tiny memory gain on both ROM and RAM, which is nice.

Perhaps kernel/device.c could be renamed to something more relevant.

Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2020-05-08 23:07:44 +02:00
..
adc drivers: adc: stm32: add support for H7 series 2020-05-07 23:01:59 -05:00
audio drivers: audio: Port to the new timeout API 2020-05-07 11:01:55 +02:00
bluetooth bluetooth: hci_rpmsg: check SHM_SIZE against shared mem size using DT 2020-05-07 10:07:00 +02:00
can drivers: can: Fix use of DT_HAS_DRV_INST which does not exist 2020-05-07 07:49:16 -05:00
clock_control drivers/clock_control: stm32: msi: Enable MSI range config in PLL mode 2020-05-08 00:34:34 -05:00
console console: Add semihosting console 2020-05-07 23:33:38 -05:00
counter Bluetooth: controller: Remove legacy LL 2020-05-08 15:07:00 +02:00
crypto modules: mbedtls: Update mbedTLS commit and apply fixes 2020-05-07 23:46:08 -05:00
dac devicetree: Change DT_FOREACH_IMPL_ to not insert semicolon 2020-05-07 20:03:56 -05:00
debug tracing: cleanup and split segger/rtt configuration options 2020-02-07 15:58:05 -05:00
display drivers: ssd16xx: rework initialization of the controller memory 2020-05-08 15:11:10 +02:00
dma drivers: dma: sam_xdmac: Convert to devicetree 2020-05-07 22:24:58 -05:00
eeprom drivers: eeprom: at2x: Rename defines to remove DT_ prefix 2020-04-30 04:45:35 -05:00
entropy drivers: entropy_mcux_rng LPC entropy 2020-05-07 23:25:31 -05:00
espi drivers: espi: xec: Ensure OOB interrupts are not missed 2020-05-07 17:18:26 -07:00
ethernet dts: Rename DT_HAS_NODE macro to DT_HAS_NODE_STATUS_OKAY 2020-05-06 05:25:41 -05:00
flash device: Refactor device structures 2020-05-08 23:07:44 +02:00
gpio driver/gpio: stm32: Add STM32L5 support 2020-05-08 00:34:34 -05:00
hwinfo drivers: hwinfo: fix ESP32 implementation 2020-04-28 15:32:53 -04:00
i2c device: Refactor device structures 2020-05-08 23:07:44 +02:00
i2s drivers: i2s: i2s_sam_ssc: Convert to devicetree 2020-05-07 22:24:58 -05:00
ieee802154 drivers: ieee802154: add Decawave DW1000 driver 2020-05-07 23:30:58 -05:00
interrupt_controller drivers/exti: stm32: Add support for STM32L5 series 2020-05-08 00:34:34 -05:00
ipm intc: intc_cavs: Replace DT_CAVS_ICTL_BASE_ADDR with new macros 2020-04-22 04:59:22 -05:00
kscan drivers: kscan: Add debug logging output to ft5336 driver 2020-05-05 11:08:02 -05:00
led devicetree: replace DT_HAS_DRV_INST with DT_INST_FOREACH 2020-05-06 17:35:08 -05:00
led_strip devicetree: Change DT_FOREACH_IMPL_ to not insert semicolon 2020-05-07 20:03:56 -05:00
lora drivers: lora: Add a shell for LoRa testing 2020-05-07 14:49:06 +02:00
modem drivers: modem: ublox-sara-r4: automatic setting of APN 2020-05-07 23:36:10 -05:00
net net: ppp: Create own workqueue for PPP 2020-04-17 10:15:54 +03:00
neural_net soc: xtensa: rework DT_L2_SRAM and DT_L2_SRAM 2020-04-25 09:32:00 -05:00
pcie global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
peci drivers: microchip: Convert microchip drivers to new DT_INST macros 2020-03-26 16:31:52 -05:00
pinmux board: arm: Add Support For 96Boards Aerocore2 2020-05-08 07:33:43 -05:00
ps2 drivers: ps/2: Tune PS2 driver to support severval mice brands 2020-05-04 17:03:49 -05:00
ptp_clock kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
pwm devicetree: Change DT_FOREACH_IMPL_ to not insert semicolon 2020-05-07 20:03:56 -05:00
sensor device: Refactor device structures 2020-05-08 23:07:44 +02:00
serial serial: sam0: Complete port to the new timeout API 2020-05-07 22:00:39 -05:00
spi devicetree: Change DT_FOREACH_IMPL_ to not insert semicolon 2020-05-07 20:03:56 -05:00
timer util.h: Remove INLINE definition and user 2020-05-08 08:37:21 -04:00
usb usb: Sync receiving data from ISO OUT endpoint with SOF 2020-05-08 15:12:27 +02:00
video drivers: video: Remove legacy timeout use 2020-05-07 11:01:55 +02:00
watchdog devicetree: replace DT_HAS_DRV_INST with DT_INST_FOREACH 2020-05-06 17:35:08 -05:00
wifi coccinelle: run int_ms_to_timeout conversion semantic patch 2020-05-07 19:46:03 +02:00
CMakeLists.txt drivers: dac: Add API for DAC peripherals 2020-04-20 17:41:48 +02:00
Kconfig drivers: dac: Add API for DAC peripherals 2020-04-20 17:41:48 +02:00