Kernel for Galaxy S24, rebased on CLO sources (WIP)
Go to file
Mario Tesi 9cd00ee4c2 drivers:iio:stm:accel: add support to h3lis331dl STMEMS accel sensor
Add support to the h3lis331dl STMEMS accel sensor with the
following basic features:
 - Accel raw data read
 - Buffered data read
 - Trigger support

h3lis331dl driver include support for H3LIS331DL and LIS331DLH
STMEMS accel sensor devices.

Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: Ic8553294d1e646aa048b3f4be294d8d6d3916035
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/296337
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Matteo DAMENO <matteo.dameno@st.com>
2023-11-15 23:09:08 +01:00
Documentation/devicetree/bindings/iio/stm drivers:iio:stm:accel: add support to h3lis331dl STMEMS accel sensor 2023-11-15 23:09:08 +01:00
drivers/iio/stm drivers:iio:stm:accel: add support to h3lis331dl STMEMS accel sensor 2023-11-15 23:09:08 +01:00
include/linux/platform_data/stm include:linux:p_d:stm: add missing platform data file for ism303dac driver 2022-05-17 10:26:14 -07:00
stm_iio_configs drivers:iio:stm:accel: add support to h3lis331dl STMEMS accel sensor 2023-11-15 23:09:08 +01:00
stm_iio_patches stm: move kernel 6.1.y stm patches out of WIP stage 2023-10-12 18:09:37 +02:00
README.md stm: Removed support for LTS kernel (4.9) EOL 2023-09-14 20:15:40 +02:00

Introduction

This repository contains STMicroelectronics MEMS IIO drivers for the following LTS Linux/Android kernels:

  • 4.9 (EOL)
  • 4.14
  • 4.19
  • 5.4
  • 5.10
  • 5.15
  • 6.1 (WIP)

For EOL kernel the maintenance has been discontinued and is strongly discouraged from using it for new developments.

Source code integration

From your kernel source code directory add the git remote (i.e. stmems_iio_github) for this repository:

git remote add stmems_iio_github \
               https://github.com/STMicroelectronics/st-mems-android-linux-drivers-iio.git

Fetch the just added remote:

git fetch stmems_iio_github

There are now two ways to integrate the drivers code into the kernel target branch:

  • merge (suggested strategy)
  • rebase

merge

Merge the stmems_iio_github/master with your target kernel source branch (i.e branch linux-5.4.y):

git merge --allow-unrelated-histories \
          linux-5.4.y \
          stmems_iio_github/master

rebase

Rebase the stmems_iio_github/master on top of your target kernel source branch (i.e branch linux-5.4.y):

git rebase --no-fork-point \
           linux-5.4.y \
           stmems_iio_github/master

Note: older git versions (i.e.: 2.7.4) would require to use sligthly different options:

git merge --no-fork-point \
          linux-5.4.y \
          stmems_iio_github/master
git rebase -Xno-renames \
           --no-fork-point \
           linux-5.4.y \
           stmems_iio_github/master

Apply patches

Now that drivers code has been added to the target kernel branch, few patches needs to be added in order to:

  • add STM drivers into Kconfig & Makefile systems
  • patch IIO framework with custom events with custom events, channels and devices

Apply the patches available in the just added repository (i.e branch linux-5.4.y):

git am stm_iio_patches/5.4.y/*-stm-*.patch

Configuration

A folder named stm_iio_configs should now be available with the default configs for the supported drivers.

Modify target defconfig

Sensors defconfig can be appended to the board defconfig (i.e. if your current configuration file is arch/arm/configs/stm32_defconfig):

cat stm_iio_configs/lsm6dsm_defconfig >> arch/arm/configs/stm32_defconfig

Alternatively, it can be done at build time without altering the board config file, as follow.

Merge configuration

Driver config can be merged into current target pre-configured kernel using a script available in the kernel itself:

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnu-
scripts/kconfig/merge_config.sh -n .config stm_iio_configs/lsm6dsm_defconfig