Our Open Source Journey: A 2025 Retrospective

As we enter 2026, it is a perfect opportunity to look back at 2025 and how we have been involved with and contributed to different open-source ecosystems and communities.

Over the past year, BayLibre has acted as an active contributor and maintainer within projects including the Linux kernel, Zephyr RTOS, the Yocto Project, the GNU Toolchain, Mbed-TLS, U-Boot, AOSP and many others.

While the highlights below capture some key milestones, they are not an exhaustive list of every achievement, as many daily contributions and maintenance tasks are not included.

We want to give kudos to the entire team making this happen, from those upstreaming daily patches to our official maintainers and conference speakers. Our involvement in these communities is a continuous journey intended to exchange ideas, contribute to the wider ecosystem, and help bring products to life with upstream software.

January – March: Bootflows and Subsystem maintenance

We began the year with technical experiments on Android bootflows, exploring U-Boot’s standard boot and the Generic Bootloader Library (GBL) on the BeaglePlay board.

In the Linux kernel, we were ranked among the top 20 contributing companies for the v6.13 release. Our work focused on the IIO and PWM subsystems, as well as introducing support for multiple system-wide low-power states for TI AM62x SoCs.

By March, we contributed to the Zephyr 4.1.0 release, specifically through optimizations to the ZMS storage subsystem and expanded support for the TI CC23x0 SoC family, and again to the Linux kernel v6.14 release (contributions to PM Domains, IIO, PWM, Kernel Infrastructure, IRQ Chip Support and misc).

April – June: Technical Case Studies and Community Events

In April, we shared our expertise in Yocto Project maintenance through a case study on the python3-numpy recipe and a guide on using the Automatic Recipe Upgrade Helper (AUH for build automation.

Our team also participated in the RISC-V Summit Europe, presenting a Compared Analysis of GCC Codegen for AArch64 and RISC-V and a Python Packaging Infrastructure for the RISCV64 Ecosystem.

May was a productive month as we served as the official organizer for Embedded Recipes 2025 in Nice. Among all the high quality talks, the event featured a technical talk on Zephyr’s cryptographic features from BayLibre and dedicated Yocto Project, labgrid, libcamera and Pipewire workshops.

During this quarter, we also delivered an updated Android 14 SDK for MediaTek Genio IoT chipsets, contributed to the Linux kernel v6.15 release (IIO, PWM, Kernel, Clock, GPIO and SPI Offloading infratructures, MediaTek and TI platforms support and other) and introduced the new SPI offloading framework for the Linux kernel during OSS North America.

July – September: Toolchains and the European Tour

The summer was highlighted by the releases of:

  • GCC 15, where our compiler team contributed 395 commits focusing on OpenMP and GPU offloading for high-performance computing and supercomputers. This work is vital for achieving computational capabilities within a sustainable power envelope.
  • The Linux kernel v6.16, where the team continued its work on IIO, PWM and SPI Offload, contributed as well to the VT/Console, RTC, Clock subsystems and provided support for ARM/OMAP and Mediatek platforms.
  • Zephyr 4.2.0 , with contributions on new hardware platform support, Kernel optimizations, Storage subsystem improvements, Power Management and Cryptography / Security enhancements.

In August, eight team members attended OSS Europe in Amsterdam delivering six technical talks:

  • Why Won’t My CPU Sleep? Debugging cpuidle Mysteries on ARM SoCs (Embedded Linux Conference)
  • Do It Faster: How We Supercharged Linux to Work with Blazing Fast ADCs for IIO (Embedded Linux Conference)
  • Powering Up Lab Automation with labgrid and CI (Embedded Linux Conference)
  • Cryptography Support in Zephyr: Recent Changes and Upcomings (Zephyr Developer Summit)
  • Running Zephyr in a Light Bulb (Zephyr Developer Summit)
  • ZMS: a New Lightweight Storage System (Zephyr Developer Summit)

In September, we sponsored the GNU Tools Cauldron in Porto, where our engineers presented and led discussions on:

  • Comparative Analysis of GCC Codegen for AArch64 and RISC-V
  • Parallel Computing, Offloading, OpenMP and OpenACC
  • Toolchain and Linux kernel
  • Quantifying Abstraction Costs in GCC
  • Reviewing refactoring goals and acceptable abstractions in GCC

We also participated in Kernel Recipes in Paris, focusing on the technical components and community of the GNU Compiler Collection.

The Linux kernel v6.17 was also released where we notably contributed across multiple subsystems, focusing on IIO drivers, PWM infrastructure, SPI offload support, and platform improvements. BayLibre was once again among the top 20 contributing companies and some top 10 individual contributors by number of changesets.

October – December: Global Collaboration and Year-End Releases

As the year concluded, we shared results on quantifying abstraction costs in GCC to identify compilation speed or memory consumption regressions.

In November, we hosted a community gathering at Embedded World North America to connect with partners and customers. We also contributed to the Zephyr 4.3.0 release, which included SoC-level power management and improved PSA Crypto API migration.

The year ended with our team traveling to Tokyo for OSSummit Japan and the Linux Plumbers Conference, where we presented on multiple system-wide low-power states.

We remained a significant contributor to the final kernel release of the year, Linux kernel v6.18, which included our work on IIO, PWM, Clock, and ARM subsystems, delivering improved ADC drivers, SPI offloading, and critical SoC support for Amlogic, TI, and Renesas platforms.

Looking Forward to 2026

Our journey continues into the new year as we maintain our efforts in the communities where we hold contribution and maintainership roles, still including Linux kernel, Zephyr RTOS, the Yocto Project, the GNU Toolchain, Mbed-TLS, U-Boot, AOSP and many others.

We are already preparing to host the next edition of Embedded Recipes in Nice on May 27-28, 2026 and our 2026 conference schedule is taking shape with confirmed speakers for several key events (and more to come):

  • SCA/HPC Asia in Osaka
  • FOSDEM in Brussels
  • RISC-V Summit in Bologna
  • OSS / ELC Europe and Linux Plumbers in Prague
  • GNU Tools Cauldron
  • IWOMP 2026 in Vienna
  • SC26 (Supercomputing) in Chicago

BayLibre open sources Copilot hardware to automate embedded software development workflows

We’re thrilled to announce that BayLibre has open-sourced Copilot!

Don’t worry, this Copilot has nothing to do with Microsoft or AI; it won’t write your code, but it will take care of your Device Under Test (DUT)’s power, serial communication, and GPIOs like a champ.

Originally developed internally at BayLibre, it simplifies embedded system testing and development. By making it publicly available, we hope to empower the embedded community and foster collaboration around practical hardware-software tools.

What is Copilot

Copilot is an open-hardware solution that lets you control a DUT through a single USB connection. It combines power management, serial communication, and GPIO control in one compact board, reducing setup complexity and enabling more efficient development and testing workflows.

Key Features

Single USB Port Management
Control DUT power on/off and serial communication via one USB connection, eliminating extra cables and simplifying test setups.

GPIO Control
Access configurable GPIO pins for signaling, triggering, or controlling other hardware. Automate tests, control LEDs or switches, and integrate Copilot into custom hardware workflows.

Ready-to-Use
No additional software required ; drivers and utilities are provided as part of all standard Linux distributions.

Open Source USB Expansion Board
Need more USB ports? No worries, we have also developed and released an open source USB expansion board!

Use Cases

  • Embedded system automation, testing and debugging
  • Power sequencing for prototypes
  • Serial communication with DUTs
  • GPIO-driven automation for hardware testing

Why Open-Source

At BayLibre, we believe in open collaboration and shared innovation. By releasing Copilot under the MIT license, developers can:

  • Contribute improvements – bug fixes, new features, or hardware extensions.
  • Customize for specific workflows – adapt Copilot to your embedded projects.
  • Share knowledge – learn from community enhancements and best practices.

Getting Started

You can access Copilot on GitHub: https://github.com/BayLibre/Copilot. The repository includes:

  • Complete installation and usage documentation
  • Hardware schematics and software examples
  • Contribution guidelines

We welcome feedback, contributions, and questions from the community. Let’s make embedded development smoother, more reliable, and more fun together.

BayLibre contributions to Yocto whinlatter (5.3)

Yocto Whinlatter (5.3) was released in December, it’s the current stable release following Walnascar (5.2). BayLibre contributed 35 authored commits across three Yocto repositories.

openembedded-core

Python Package Maintenance

Trevor Gamblin maintained and upgraded multiple Python packages in openembedded-core. He upgraded Python from 3.13.2 to 3.13.3 and from 3.13.4 to 3.13.5, running ptests and reproducibility checks to verify each upgrade.

The python3-setuptools upgrade from 78.1.0 to 80.8.0 brought notable changes including the removal of the easy_install module (replaced with a temporary compatibility stub) and a temporary LICENSE file removal that was restored in v80.8.0. Trevor also removed the NO_FETCH_BUILD variable from setuptools3 and setuptools3_legacy classes as it was no longer checked.

Multiple python3-numpy upgrades were performed by Trevor (2.2.4 -> 2.2.5 -> 2.2.6 and 2.3.1 -> 2.3.2 -> 2.3.3 -> 2.3.4). He fixed numpy ptests by adding meson and python3-unittest-automake-output to RDEPENDS, converting run-ptest to a shell script that sets PYTEST_DEBUG_TEMPROOT and invokes tests with pytest --automake, configuring IMAGE_ROOTFS_EXTRA_SPACE and QB_MEM settings in core-image-ptest.bb, and moving python3-numpy from PTESTS_PROBLEMS to PTESTS_SLOW.

Other Python packages received routine upgrades: python3-hypothesis (6.138.15 -> 6.139.2 -> 6.142.2), python3-pytest (8.3.5 -> 8.4.1), python3-dbusmock (0.33.0 -> 0.37.0), python3-cython (3.0.12 -> 3.1.0), python3-setuptools-scm (8.2.1 -> 8.3.1), python3-pyparsing (3.2.3 -> 3.2.4), python3-smartypants (2.0.0 -> 2.0.2), python3-referencing (0.36.2 -> 0.37.0), and python3-trove-classifiers (2025.9.8.13 -> 2025.9.11.17).

The python3-colorama recipe was added to openembedded-core by Trevor since pytest lists it as a dependency. He added himself to maintainers.inc for newly-unassigned Python recipes to enable automatic upgrade checking and sorted Python recipes alphabetically in the file.

Build System and Testing

Trevor doubled the gnome-desktop-testing-runner timeout in glib-2.0 run-ptest from 300s to 600s by passing -t 600. This addressed intermittent test failures on qemuriscv64 where codegen.py.test and gi-compile-repository.py.test could exceed the default timeout.

Recipe Utilities

Uwe Kleine-König modified get_recipe_upstream_version in recipeutils to pass ud.name instead of default to latest_revision implementations. While most fetchers ignore this parameter, default is not a valid name in general, and passing ud.name is the correct approach after bitbake commit 2515fbd10824 dropped multiple branch/revision support for single git urls.

In meta/lib/oe/recipeutils.py, Uwe added support for multi-repo recipes in upgrade checks. For recipes using multiple git repos (like linux-yocto with SRCREV_machine and SRCREV_meta), rd.getVar("SRCREV") yields INVALID. He used bb.fetch2‘s exposed revision information from ud instead of relying on a single SRCREV variable.

meta-openembedded

Trevor removed the distutils classes from meta-openembedded since distutils was removed from Python as of 3.12 and nothing in the layer was using these classes.

The python3-pychromecast recipe received a build fix for setuptools 80.x compatibility through backported patches that fixed pyproject.toml versions around setuptools. Trevor also removed the python3-colorama recipe from meta-openembedded and the meta-python packagegroup after moving it to openembedded-core.

meta-riscv

Trevor added a SECURITY.md file to meta-riscv and updated riscv-common.inc to use KERNEL_CLASSES ?= "kernel-fit-extra-artifacts" instead of KERNEL_CLASSES ?= "kernel-fitimage" and KERNEL_IMAGETYPE ?= "fitImage", reflecting the latest configuration in Yocto Project documentation.

Nezha Board Support

Trevor set KERNEL_IMAGETYPE to Image in nezha-common since KERNEL_IMAGETYPE defaults to zImage from ARCH_DEFAULT_KERNELIMAGETYPE for all architectures except x86, but building for nezha with this value resulted in “No rule to make target ‘zImage'” errors. He increased CONFIG_SPL_SYS_MALLOC_SIZE to 2MB in the nezha configuration to fix boot failures with “Could not get FIT buffer of 1074176 bytes” errors. He also added an Image + fdtcontroladdr boot step to tftp-mmc-boot.txt since nezha now uses the Image kernel format, relying on fdtcontroladdr holding the dtb location.

Trevor removed KERNEL_FEATURES_RISCV from linux-allwinnerd1-dev to eliminate build error messages about missing config fragments when the kernel version is not sufficiently new.

Summary

Type Count
Authored 35
Tested-by 2

BayLibre contributions to U-Boot v2026.01


U-Boot v2026.01 was released on January 5, 2026.

TI AM6x Board Support

Guillaume La Roque refactored board detection code for the TI AM6x family. He added two generic functions to board/ti/common/: do_board_detect_am6() and setup_serial_am6(). The do_board_detect_am6() function reads the on-board EEPROM at the configured address, with fallback logic to try CONFIG_EEPROM_CHIP_ADDRESS + 1 if the first read fails. The setup_serial_am6() function converts the serial number from EEPROM hexadecimal string format to 16-character hexadecimal representation and stores it in the serial# environment variable. Both functions are protected by CONFIG_IS_ENABLED(TI_I2C_BOARD_DETECT).

Guillaume then migrated three AM6x boards to use these generic functions. AM62x gained EEPROM reading support, storing board name and revision data at the end of SRAM, updating environment variables, and printing board info during boot. AM64x and AM65x replaced their board-specific do_board_detect() and setup_serial() implementations with calls to the generic functions.

A subsequent fix restored the do_board_detect wrapper functions for AM64x, AM62x, and AM65x that were accidentally removed during the refactoring, resolving a boot failure on AM64x EVM.

Markus Schneider-Pargmann fixed a configuration guard in the TI AM335x board code. The scale_vcores_generic() function calls functions implemented in tps65910.c, not tps65910_dm.c, so the guard was changed from CONFIG_DM_PMIC_TPS65910 to CONFIG_SPL_POWER_TPS65910.

Android Boot Standard

Nicolas Belin added support for the bootargs environment variable in Android bootflows. Previously, script-based bootflows used bootargs to customize the kernel commandline at boot time. The bootstandard Android implementation now concatenates the bootflow commandline with the contents of the bootargs environment variable to maintain this behavior.

Documentation

David Lechner fixed pytest documentation errors. He corrected environment variable names in hook script documentation from UBOOT_ prefix to U_BOOT_ prefix. He documented missing environment variables U_BOOT_BUILD_DIR_EXTRA and U_BOOT_RESULT_DIR_EXTRA that were added in a previous commit but left undocumented. He also fixed a typo in the hook script name from u-boot-test-flash1 to u-boot-test-flash.

David also removed duplicate documentation for the @parent field in struct mtk_composite in the MediaTek clock driver and fixed a spelling error in the field name.

Summary

Type Count
Authored 10
Signed-off-by 2

BayLibre contributions to Linux v6.18

Linus released Linux 6.18 on November 30, 2025. BayLibre contributed to this release across several subsystems. (** image generated by bots.  There may be mistakes. )

IIO

ADC Drivers

AD7124

David Lechner extended the AD7124 ADC driver with filter support, allowing selection of different filter types (sinc3, sinc4, and variants with post filters). The filter type influences the effective sampling frequency, with different factors for each filter type. The driver tracks the requested sampling frequency to maintain the closest possible value when switching filter types.

He added clock support, including both external clock input and internal clock output modes. The driver can enable the internal clock output if the #clock-cells devicetree property is present. External clock support was also implemented, with the driver checking for both clocks and #clock-names properties to avoid conflicts.

He implemented several fixes addressing issues with temperature channel measurements, multi-channel sampling rates, and fractional sampling frequencies. The driver now uses guard(mutex) to simplify return paths and implements read_avail() for scale_available. Additional cleanups include using clamp() for value clamping.

David Lechner fixed devicetree bindings by correcting the clocks properties for adi,ad7124 and adding the clock-output-names property for adi,axi-clkgen.

AD7173

David Lechner added SPI offload support to the AD7173 driver, enabling hardware-accelerated data acquisition with the ad411x_ad717x HDL project. The implementation uses 32-bit data words as per the HDL project specification. He also added filter type selection, with support for changing the filter type on individual channels.

Other ADC Work

David Lechner fixed ad7280_store_balance_timer() in the AD7280a driver and corrected the SPI offload trigger rate in the AD7380 driver. He refactored the ti-adc081c driver to use individual model structures instead of an array.

Proximity Sensors

David Lechner converted multiple proximity sensor drivers to use stack-allocated scan buffers instead of DMA-safe buffers in driver state structures. This change affects srf08, sx9500, vl53l0x-i2c, pulsedlight-lidar-lite-v2, and mb1232 drivers. Stack allocation is appropriate when buffers are used only within a single function and don’t require DMA safety.

IMU

Francesco Lavra fixed array sizing issues in the st_lsm6dsx driver. The decimator and batch fields of struct st_lsm6dsx_settings were corrected to use appropriate array sizes: decimator now uses ST_LSM6DSX_ID_MAX instead of ST_LSM6DSX_MAX_ID, and batch uses a fixed size of 2 since it applies only to accelerometer and gyroscope.

SPI and ADI AXI Infrastructure

David Lechner added a version check function adi_axi_pcore_ver_gteq() to adi-axi-common.h for checking ADI AXI IP core versions using semantic versioning. This enables drivers to check minor versions for backward-compatible feature enablement. The axi-spi-engine driver was updated to use this function.

Francesco Lavra removed the Kconfig dependency on TEGRA20_APB_DMA from the tegra114 SPI driver, as the driver supports Tegra SoCs without the Tegra20 APB DMA controller, such as Tegra234.

PCI: Non-Transparent Bridge

Jerome Brunet extended vNTB EPF driver to allow arbitrary BAR mapping instead of assuming incremental BAR numbers from MW1. This new support allows Renesas Rcar S4 to use vNTB for PCIe-to-PCIe links.

Clock: Amlogic

Jerome refactored the Amlogic clock driver infrastructure with probe helpers and composite clock macros. New macros help define simple composite clocks following the sel/div/gate pattern, reducing controller verbosity for recurring clock definitions. The meson-clkcee module was dropped and its syscon-based controller registration helper moved to clkc-utils with a more descriptive name.

Clocksource: ARM Global Timer

Markus Schneider-Pargmann added prescaler auto-detection for the ARM global timer driver to support CPU frequency scaling on am43xx. The am43xx clock tree has the global timer clock as an indirect child of the CPU clock, causing the hardcoded prescaler to reject frequency changes across CPU OPPs. The auto-detection calculates platform-specific prescaler values: 50 for am43xx (initial_freq/GCD of all OPP frequencies), 2 for zynq-7000, and 1 for other platforms. The Kconfig option defaults to 0 for auto-detection while allowing manual override.

Serial: 8250 OMAP

Markus Schneider-Pargmann added wakeup support to the 8250 OMAP driver for am62 suspend-to-RAM. When the device is wakeup-enabled, the driver selects the ‘wakeup’ pinctrl state on suspend and restores the default state on resume. The corresponding devicetree bindings were updated to include default and wakeup pinctrl states.

ASoC: Amlogic

Valerio Setti fixed bit clock polarity in the Meson AIU I2S encoder. According to I2S specs, audio data is sampled on the rising clock edge and changes on the falling edge. The Amlogic SoC behaves inversely in normal mode, requiring clock polarity inversion.

ARM64: Amlogic Devicetree

Valerio Setti removed UHS capability from the SD card node on gxbb-odroidc2 to fix reboot failures. The issue occurs because switching from HS to UHS mode requires reducing bus voltage from 3.3V to 1.8V via the vqmmc regulator. The ROM bootloader only supports HS mode (3.3V), and during reboot the voltage is not restored to 3.3V, causing the bootloader to hang. Removing UHS modes limits SD card speed to HS (25 MB/s) instead of UHS DDR50 (50 MB/s) but enables reliable reboots.

ARM: OMAP

As ARM OMAP maintainer, Kevin Hilman committed contributions from external developers including devicetree fixes for OMAP platforms, clock API migrations from round_rate() to determine_rate(), and UART compatible string corrections.

PWM

PCA9685

Uwe Kleine-König refactored the PCA9685 driver to prepare for waveform API conversion. GPIO support was temporarily dropped (to be restored via the PWM core’s optional GPIO chip for waveform API drivers). The driver was converted to use regmap register caching and bulk write operations for atomic register updates. The .free() callback no longer disables hardware state.

MediaTek

The MediaTek PWM driver gained a .get_state() callback implementation, enabling pwm_get_state_hw() and improving /sys/kernel/debug/pwm usefulness. Clock handling was reworked to lock and cache the clock rate. The driver now initializes clocks when hardware is enabled at probe time. Channel offset representation was simplified, and additional register defines were introduced. Various issues in the .apply() callback were fixed. Parameters for the clock helper function were reworked.

TI EHRPWM

Multiple fixes addressed calculation errors in the TI EHRPWM driver. Off-by-one errors in duty-cycle calculation were corrected for Up-Count Mode, where the period length is (TBPRD + 1) * T_TBCLK. The value written to TBPRD didn’t account for the +1 in that formula yielding slightly inexact output. Handling for 100% duty-cycle was fixed to account for potential overflow when TBPRD is 0xffff. Clock divisor calculation was corrected for corner cases. The driver no longer drops runtime PM references in .free().

PWM Core

Uwe Kleine-König added GPIO device support for waveform drivers in the PWM core. A PWM can function as an output-only GPIO when duty_length = period_length (active) or duty_length = 0 (inactive). The waveform abstraction allows tighter control about the hardware settings than the legacy .apply() callback. This ensures PWMs that cannot generate constant signals at both levels error out appropriately.

Debug checks were updated: polarity tests now check actual period and duty_cycle values, and PWM_DEBUG checks are disabled for disabled states.

Other PWM Work

The TIECAP driver received documentation for hardware disable behavior. The Renesas RZ-MTU3 devicetree bindings were updated to use #pwm-cells = <3>.

As PWM maintainer, Uwe Kleine-König committed contributions from external developers including fixes for ADP5585 register addressing, Samsung Exynos8890 bindings, NXP FSL FTM driver S32G support, and various other driver fixes.

Backlight

Uwe Kleine-König cleaned up the mp3309c backlight driver by initializing properties without memset() and dropping pwm_apply_args().

Summary

Type Count
Authored 80
Signed-off-by 1
Acked-by 7
Reviewed-by 45
Tested-by 10
Suggested-by 3

List of contributions

Hash Subject Role Person
3dcf44ab56e1 spi: tegra114: remove Kconfig dependency on TEGRA20_APB_DMA Author Francesco Lavra
3af0c1fb1cdc iio: imu: st_lsm6dsx: fix array size for st_lsm6dsx_settings fields Author Francesco Lavra
517d066dc080 MAINTAINERS: Add entry for TQ-Systems AM335 device trees Committer Kevin Hilman
74b84d1be022 driver core: fw_devlink: Don’t warn about sync_state() pending reviewed-by Kevin Hilman
1c4b87c921fb clocksource/drivers/arm_global_timer: Add auto-detection for initial prescaler values reviewed-by tested-by Kevin Hilman
bb676996ed58 ARM: OMAP2+: clock: convert from round_rate() to determine_rate() Committer Kevin Hilman
e2c0510935c5 ARM: OMAP1: clock: convert from round_rate() to determine_rate() Committer Kevin Hilman
0b5fe1c4ab3c pmdomain: ti-sci: Set PD on/off state according to the HW state reviewed-by tested-by Kevin Hilman
21e2e1abd432 arm: omap2: use string choices helper Committer Kevin Hilman
d8a97749bab7 clk: ti: fapll: convert from round_rate() to determine_rate() reviewed-by tested-by Kevin Hilman
48f8fb402a4f clk: ti: dra7-atl: convert from round_rate() to determine_rate() reviewed-by tested-by Kevin Hilman
7760b3e17298 clk: ti: divider: convert from round_rate() to determine_rate() reviewed-by tested-by Kevin Hilman
849804453d5a clk: ti: composite: convert from round_rate() to determine_rate() reviewed-by tested-by Kevin Hilman
e465ad7ef57a clk: ti: dpll: convert from round_rate() to determine_rate() reviewed-by tested-by Kevin Hilman
fa55aea3dcdb clk: ti: dpll: change error return from ~0 to -EINVAL reviewed-by tested-by Kevin Hilman
ec70154c8a5f clk: ti: dpll: remove round_rate() in favor of determine_rate() reviewed-by tested-by Kevin Hilman
74139a64e8ce ARM: OMAP2+: pm33xx-core: ix device node reference leaks in amx3_idle_init Committer Kevin Hilman
27322753c8b9 ARM: dts: omap: am335x-cm-t335: Remove unused mcasp num-serializer property Committer Kevin Hilman
5af5b85505bc ARM: dts: ti: omap: omap3-devkit8000-lcd: Fix ti,keep-vref-on property to use correct boolean syntax in DTS Committer Kevin Hilman
9658a92fad18 ARM: dts: ti: omap: am335x-baltos: Fix ti,en-ck32k-xtal property in DTS to use correct boolean syntax Committer Kevin Hilman
9df7366a2919 ARM: dts: omap: Minor whitespace cleanup Committer Kevin Hilman
7d7df1bc644a ARM: dts: omap: dm816x: Split ‘reg’ per entry Committer Kevin Hilman
46179394d4e4 ARM: dts: omap: dm814x: Split ‘reg’ per entry Committer Kevin Hilman
045e81d8d7e6 ARM: OMAP2+: use IS_ERR_OR_NULL() helper Committer Kevin Hilman
ca8be8fc2c30 ARM: dts: am33xx-l4: fix UART compatible Committer Kevin Hilman
8a6506e1ba0d ARM: AM33xx: Implement TI advisory 1.0.36 (EMU0/EMU1 pins state on reset) Committer Kevin Hilman
7c3e113ef09d ARM: dts: ti: omap4: Use generic “ethernet” as node name Committer Kevin Hilman
f84fd5bec502 pwm: adp5585: Correct mismatched pwm chip info Committer Uwe Kleine-König
e2cc390a6629 iio: adc: ad7124: fix temperature channel reviewed-by Uwe Kleine-König
8f2689f194b8 pwm: cros-ec: Avoid -Wflex-array-member-not-at-end warnings Committer Uwe Kleine-König
ebd524a3ac3a dt-bindings: pwm: samsung: add exynos8890 compatible Committer Uwe Kleine-König
d322a0e01d9e dt-bindings: pwm: apple,s5l-fpwm: Add t6020-fpwm compatible Committer Uwe Kleine-König
efedb508591e dt-bindings: pwm: nxp,lpc1850-sct-pwm: Minor whitespace cleanup in example Committer Uwe Kleine-König
ce1116446098 pwm: pca9586: Convert to waveform API Author Uwe Kleine-König
42f18ae36f3f pwm: pca9685: Drop GPIO support Author Uwe Kleine-König
3d4c42172380 pwm: pca9685: Make use of register caching in regmap Author Uwe Kleine-König
de5855613263 pwm: pca9685: Use bulk write to atomicially update registers Author Uwe Kleine-König
ca478d8a4b6d pwm: pca9685: Don’t disable hardware in .free() Author Uwe Kleine-König
d8af3812b1e8 pwm: Add the S32G support in the Freescale FTM driver Committer Uwe Kleine-König
3513752cfe6f dt-bindings: pwm: fsl,vf610-ftm-pwm: Add compatible for s32g2 and s32g3 Committer Uwe Kleine-König
ed5902a24648 pwm: mediatek: Lock and cache clock rate Author Uwe Kleine-König
849b064c1697 pwm: mediatek: Fix various issues in the .apply() callback Author Uwe Kleine-König
edd6a37e06f3 pwm: mediatek: Implement .get_state() callback Author Uwe Kleine-König
a911f15745fd pwm: mediatek: Initialize clks when the hardware is enabled at probe time Author Uwe Kleine-König
f43e1280731c pwm: mediatek: Rework parameters for clk helper function Author Uwe Kleine-König
88863c9d81bb pwm: mediatek: Introduce and use a few more register defines Author Uwe Kleine-König
c95ab56a7ad6 pwm: mediatek: Simplify representation of channel offsets Author Uwe Kleine-König
a2f77ae4778d pwm: tiecap: Document behaviour of hardware disable Author Uwe Kleine-König
e7c9b66b1069 pwm: Provide a gpio device for waveform drivers Author Uwe Kleine-König
b871d093f1ca pwm: Check actual period and duty_cycle for ignored polarity test Author Uwe Kleine-König
5364e70b013c pwm: Disable PWM_DEBUG check for disabled states Author Uwe Kleine-König
09cbe5468124 dt-bindings: timer: renesas,rz-mtu3: Use #pwm-cells = <3> Author Uwe Kleine-König
00f83f0e07e4 pwm: tiehrpwm: Fix corner case in clock divisor calculation Author Uwe Kleine-König
bc7ce5bfc504 pwm: tiehrpwm: Fix various off-by-one errors in duty-cycle calculation Author Uwe Kleine-König
878dbfc12cc5 pwm: tiehrpwm: Make code comment in .free() more useful Author Uwe Kleine-König
21a5e91fda50 pwm: tiehrpwm: Don’t drop runtime PM reference in .free() Author Uwe Kleine-König
afe872274edc pwm: Fix incorrect variable used in error message Committer Uwe Kleine-König
3a4b9d027e40 pwm: berlin: Fix wrong register in suspend/resume Committer Uwe Kleine-König
75604e9a5b60 pwm: loongson: Fix LOONGSON_PWM_FREQ_DEFAULT Committer Uwe Kleine-König
fe85a39d8402 backlight: mp3309c: Initialize backlight properties without memset Author Uwe Kleine-König
2720c87b7621 backlight: mp3309c: Drop pwm_apply_args() Author Uwe Kleine-König
e2cc390a6629 iio: adc: ad7124: fix temperature channel Author David Lechner
bd886cdcbf9e iio: adc: ad7280a: fix ad7280_store_balance_timer() Author David Lechner
3db847df994d iio: buffer-dmaengine: enable .get_dma_dev() reviewed-by David Lechner
f9c198c3ccaf iio: buffer-dma: support getting the DMA channel reviewed-by David Lechner
a514bb109ead iio: buffer: support getting dma channel from the buffer reviewed-by David Lechner
632757312d7e iio: adc: ad7380: fix SPI offload trigger rate Author David Lechner
9b45744bf09f iio: adc: rtq6056: Correct the sign bit index reviewed-by David Lechner
ffc74ad53913 iio: adc: ad4030: Fix _scale value for common-mode channels reviewed-by David Lechner
671b9b6d7f4f iio: pressure: bmp280: Use gpiod_set_value_cansleep() reviewed-by David Lechner
6233067494ae iio: pressure: bmp280: Remove noisy dev_info() reviewed-by David Lechner
bf99115eb2b8 iio: ABI: add filter types for ad7173 Author David Lechner
ff06b39be1a1 iio: adc: ad7173: support changing filter type Author David Lechner
27901cbc5bbc iio: adc: ad7173: rename odr field Author David Lechner
63cc48ea772e iio: adc: ad7173: rename ad7173_chan_spec_ext_info Author David Lechner
29cc0ac502a4 iio: ABI: document “sinc4+rej60” filter_type Author David Lechner
f1496949c75d iio: adc: ad7124: add filter support Author David Lechner
b2dbba2b9388 iio: adc: ad7124: support fractional sampling_frequency Author David Lechner
d904b8e6d4ef iio: adc: ad7124: use guard(mutex) to simplify return paths Author David Lechner
1b4956cac19b iio: adc: ad7124: use read_avail() for scale_available Author David Lechner
faf7f9e72a57 iio: adc: ad7124: use clamp() Author David Lechner
08a9e5f8bb1e iio: adc: ad7124: fix sample rate for multi-channel use Author David Lechner
f15bc37d8c33 iio: add IIO_ALTCURRENT channel type reviewed-by David Lechner
30db1b21fa37 spi: axi-spi-engine: use adi_axi_pcore_ver_gteq() Author David Lechner
67a529b7d3c5 include: adi-axi-common: add version check function Author David Lechner
661facba437e iio: imu: inv_icm42600: use guard() to release mutexes reviewed-by David Lechner
9fd569aa3d70 iio: imu: inv_icm42600: Use devm_regulator_get_enable() for vdd regulator reviewed-by David Lechner
dfbbee0907fb iio: adc: ad7124: add clock output support Author David Lechner
ed231e253ff2 iio: adc: ad7124: add external clock support Author David Lechner
aead8e4cc046 iio: adc: ad7124: do not require mclk Author David Lechner
a52bdee13ed7 dt-bindings: iio: adc: adi,ad7124: fix clocks properties Author David Lechner
c0d3f6969bb4 media: pci: mg4b: fix uninitialized iio scan data Author David Lechner
46809b9f43b4 iio: mcp9600: Add support for thermocouple-type reviewed-by David Lechner
5efd60c974a2 iio: mcp9600: Recognize chip id for mcp9601 reviewed-by David Lechner
74cae3eb72a0 iio: mcp9600: White space and fixed width cleanup reviewed-by David Lechner
f6a52403fd2c dt-bindings: iio: mcp9600: Add microchip,mcp9601 and add constraints reviewed-by David Lechner
d6d389646a35 dt-bindings: iio: mcp9600: Set default 3 for thermocouple-type reviewed-by David Lechner
086e410063be staging: iio: adc: ad7816: Drop unnecessary dev_set_drvdata() call reviewed-by David Lechner
788c57f4766b docs: iio: ad3552r: Fix malformed code-block directive reviewed-by David Lechner
4340feb4972e iio: adc: adc128s052: Support ROHM BD7910[0,1,2,3] reviewed-by David Lechner
9e9b0b97b0c7 iio: adc: adc128s052: Rename channel structs reviewed-by David Lechner
7fe5b83fbcef iio: adc: adc128s052: Simplify matching chip_data reviewed-by David Lechner
f1bbfc405e3d dt-bindings: iio: adc: Add BD7910[0,1,2,3] reviewed-by David Lechner
0056b4103557 spi: offload trigger: adi-util-sigma-delta: clean up imports Author David Lechner
07826c02eda9 MAINTAINERS: merge TRIGGER SOURCE sections Author David Lechner
35e3d0cd8e89 iio: imu: inv_icm42600: use min() to improve code reviewed-by David Lechner
8ffc13805971 iio: dac: ad5791: drop unused member of struct ad5791_state reviewed-by David Lechner
e819000c692a iio: iio_format_list() should set stride=1 for IIO_VAL_CHAR reviewed-by David Lechner
b515c701bbdf iio: adc: ad799x: add reference voltage to ad7994 reviewed-by David Lechner
ed187a201be1 iio: adc: ad799x: add reference voltage capability to chip_info reviewed-by David Lechner
33c52b2d85b7 iio: ABI: alphabetize filter types Author David Lechner
329cb8be1519 iio: adc: ad7173: add SPI offload support Author David Lechner
972b1d5dee9e iio: adc: ti-adc081c: use individual model structures instead of array Author David Lechner
97b262d24ae2 iio: accel: bma180: use stack allocated buffer for scan Author David Lechner
c9100ef6db6e iio: proximity: srf08: use stack allocated scan buffer Author David Lechner
5335f93d2814 iio: proximity: sx9500: use stack allocated struct for scan data Author David Lechner
b76c739c3d11 iio: fix iio_push_to_buffers_with_ts() typo Author David Lechner
ff2501ff5c32 iio: proximity: vl53l0x-i2c: use stack allocated scan struct Author David Lechner
8e7a21e103d7 iio: proximity: pulsedlight-lidar-lite-v2: use stack allocated scan struct Author David Lechner
f235ec59343b iio: proximity: mb1232: use stack allocated scan struct Author David Lechner
d75c7021c08e iio: adc: spear_adc: mask SPEAR_ADC_STATUS channel and avg sample before setting register reviewed-by David Lechner
6793ca9a43c8 dt-bindings: clock: adi,axi-clkgen: add clock-output-names property Author David Lechner
a9e30a22d6f2 can: m_can: fix CAN state in system PM reviewed-by Markus Schneider-Pargmann
4942c42fe184 can: m_can: m_can_chip_config(): bring up interface in correct state reviewed-by Markus Schneider-Pargmann
3d9db29b45f9 can: m_can: m_can_handle_state_errors(): fix CAN state transition to Error Active reviewed-by Markus Schneider-Pargmann
ba569fb07a7e can: m_can: m_can_plat_remove(): add missing pm_runtime_disable() reviewed-by Markus Schneider-Pargmann
1c4b87c921fb clocksource/drivers/arm_global_timer: Add auto-detection for initial prescaler values Author Markus Schneider-Pargmann
ed68411e879e serial: 8250: omap: Support wakeup pinctrl state on suspend Author Markus Schneider-Pargmann
49fce0730fd3 dt-bindings: serial: 8250_omap: Add wakeup pinctrl state Author Markus Schneider-Pargmann
4c4ed5e073a9 ASoC: meson: aiu-encoder-i2s: fix bit clock polarity Author Valerio Setti
663bfe77b6f7 arm64: dts: amlogic: gxbb-odroidc2: remove UHS capability for SD card Author Valerio Setti
4c4ed5e073a9 ASoC: meson: aiu-encoder-i2s: fix bit clock polarity reviewed-by tested-by Jerome Brunet
006824a1cb3b NTB: epf: Add Renesas rcar support Author Jerome Brunet
5ad865862a0f NTB: epf: Allow arbitrary BAR mapping Author Jerome Brunet
7e2e4e32cd47 clk: amlogic: fix recent code refactoring reviewed-by Jerome Brunet
663bfe77b6f7 arm64: dts: amlogic: gxbb-odroidc2: remove UHS capability for SD card reviewed-by Jerome Brunet
01f3a6d1d59b clk: amlogic: c3-peripherals: use helper for basic composite clocks Author Jerome Brunet
9bada5ff4bf7 clk: amlogic: align s4 and c3 pwm clock descriptions Author Jerome Brunet
955e18baeb93 clk: amlogic: add composite clock helpers Author Jerome Brunet
b7358d14f176 clk: amlogic: use the common pclk definition Author Jerome Brunet
aaee6f3bce3f clk: amlogic: introduce a common pclk definition Author Jerome Brunet
c3f369363a13 clk: amlogic: pclk explicitly use CLK_IGNORE_UNUSED Author Jerome Brunet
cf03071b7c3f clk: amlogic: drop CLK_SET_RATE_PARENT from peripheral clocks Author Jerome Brunet
32ee5475f7e3 clk: amlogic: move PCLK definition to clkc-utils Author Jerome Brunet
2aeeb649ead2 clk: amlogic: aoclk: use clkc-utils syscon probe Author Jerome Brunet
d7c001bd76b7 clk: amlogic: use probe helper in mmio based controllers Author Jerome Brunet
480197ceece7 clk: amlogic: add probe helper for mmio based controllers Author Jerome Brunet
e256a6602aa0 clk: amlogic: drop meson-clkcee Author Jerome Brunet
4c4e17f27013 clk: amlogic: naming consistency alignment Author Jerome Brunet
152a09361bb2 Documentation: PCI: endpoint: Document BAR assignment Author Jerome Brunet