Skip to content

edge: Analog IO DTS Support - #15

Draft
AkshayChandra-IFX wants to merge 24 commits into
edge-mainfrom
zephyr_analogio
Draft

AkshayChandra-IFX wants to merge 24 commits into
edge-mainfrom
zephyr_analogio

Conversation

@AkshayChandra-IFX

Copy link
Copy Markdown

By creating this pull request you agree to the terms in CONTRIBUTING.md.
https://github.com/Infineon/.github/blob/master/CONTRIBUTING.md
--- DO NOT DELETE ANYTHING ABOVE THIS LINE ---

CONTRIBUTING.md also tells you what to expect in the PR process.

Description
Enable initial Arduino analog IO support for the KIT-PSE84-AI variant.

This PR enables ADC/PWM support in the variant configuration and adds an initial devicetree mapping for Arduino analog input pins A0-A7 using the PSE84 AutAnalog SAR ADC.

Related Issue
N/A

Context
Note:

  • A0-A7 are mapped in this initial change.
  • A8-A15 are not mapped yet because they need confirmation from the generated Zephyr devicetree / board analog routing.

@AkshayChandra-IFX AkshayChandra-IFX changed the title Analog IO DTS Support edge: Analog IO DTS Support Sep 22, 2026
The job runs in a container, where GitHub Actions defaults run: steps
to sh instead of bash. The step uses <<< here-strings (bash-only),
which sh rejects with 'Syntax error: redirection unexpected'.
…reachable

git describe was picking up windows_toolchain_1.0.1 (created by
repackage_toolchain_windows.yml) as the closest tag, since the
existing --exclude '*/*' only filters tags containing a slash. The
resulting non-semver describe output made the script's regex match
fail and exit 1, breaking build-env on any branch reachable from that
tag.

Excluding it uncovers a second issue on edge-main/control-main: no
semver tag is reachable at all from their rebuilt history (0.0.1/0.0.2
are on the old pre-branch-split history). Fall back to 9.9.9-0 in that
case, same as the existing no-git-history fallback path.
Matches the codebase convention of putting CI logic in extra/*.sh
scripts rather than inlining it in workflow YAML (get_core_version.sh,
get_board_details.sh, package_core.sh, etc.).

Invoking it as 'bash <script>' also sidesteps the sh-vs-bash
default-shell issue at the source, instead of relying on an explicit
shell: bash override on the step.

Also installs jq on demand if missing, since
zephyrprojectrtos/ci-base:latest doesn't ship it.
Direct pushes to edge-main/control-main only need to build/package that
family's own feature boards; PRs still validate the full board matrix
before merge. package_core.sh now respects a pre-filtered ALL_BOARD_DATA
if the caller sets it, falling back to the full board set otherwise.
… opted in

A direct push to a branch with zero feature_board=true boards (e.g.
control-main today) previously filtered ALL_BOARD_DATA down to an empty
array, causing build-board to produce zero binaries and package-core to
crash with a confusing 'tar: Cannot open: No such file or directory'
instead of a clear error.

Only apply the feature-board filter if it leaves at least one board, so
branches with no board opted in yet keep building/packaging their full
board set exactly as before this mechanism existed.
Previously only direct pushes were limited to a board family's own
feature_board boards; PRs always ran the full board matrix as a
pre-merge safety net. Per request, apply the same filtering to PRs as
well, so both events only build/test the branch's own boards (still
falling back to the full set if none are opted in).

Note: this trades away full-matrix pre-merge validation on PRs against
edge-main/control-main - a PR touching shared CI/build logic will no
longer be checked against unrelated boards (giga, portenta, etc.)
before merge.
hal_infineon's pse84_metadata.cmake attempts to pip-install imgtool's
Python dependencies (cryptography, cbor2, click, intelhex, Pillow) at
CMake-configure time, but only emits a message(WARNING ...) if that
fails rather than aborting the build. In our CI this silently no-ops,
and the failure resurfaces later as a confusing
ModuleNotFoundError: No module named 'cryptography' from imgtool.py
during the post-build signing step.

Pre-install the same packages explicitly in this workflow, scoped to
kit_pse84_ai only, so the existing HAL-level install attempt becomes
a harmless no-op regardless of whether/why it fails in CI.
jaenrig-ifx and others added 8 commits September 25, 2026 13:01
Signed-off-by: jaenrig-ifx <enriquezgarcia.external@infineon.com>
Adds kit_pse84_ai.build.release_group=pse84 plus the matching package
index template, so the release-group workflow (added on ifx-main)
publishes a standalone Edge package/index in addition to the umbrella
zephyr_contrib artifact.
Marks kit_pse84_ai as a feature_board so direct pushes to edge-main
only build/package this board, rather than the full board matrix
(requires the generic filtering mechanism from ifx-filter-feature-boards).
Sets ci_native_samples so ifx_build.yml's feature-board step actually
builds blinky_arduino, hello_arduino and threads_arduino for kit_pse84_ai
as a fast native sanity check, matching pre-branch-split-main.
Signed-off-by: AkshayChandra-IFX <akshaychandra.nagzarkar@infineon.com>
Signed-off-by: AkshayChandra-IFX <akshaychandra.nagzarkar@infineon.com>
Signed-off-by: AkshayChandra-IFX <akshaychandra.nagzarkar@infineon.com>
Signed-off-by: AkshayChandra-IFX <akshaychandra.nagzarkar@infineon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants