Skip to content

Conversation

artursartamonovsadi
Copy link

Minimal patch set to boot into ADSP-SC598-SOM with initramfs to UART Linux shell.
Based on v1 sent to kernel mailinglist. Tested with ADSP-SC598-SOM RevC

PR Type

  • Bug fix (a change that fixes an issue)
  • [x ] New feature (a change that adds new functionality)
  • Breaking change (a change that affects other repos or cause CIs to fail)

PR Checklist

  • [x ] I have conducted a self-review of my own code changes
  • [x ] I have tested the changes on the relevant hardware
  • [x ] I have updated the documentation outside this repo accordingly (if there is the case)

@pamolloy
Copy link
Collaborator

Thanks so much for posting this! @UtsavAgarwalADI and I were chatting about the sign off section for an earlier set of patches. It is probably easier to just discuss it in person, but also take a look at https://www.kernel.org/doc/html/latest/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by. The two examples at the end of the section are especially helpful.

@pamolloy pamolloy added this to ADSP Aug 26, 2025
@pamolloy pamolloy moved this to In Development in ADSP Aug 26, 2025
@pamolloy
Copy link
Collaborator

It would be good to link to the original mailing list review in the description:

https://lore.kernel.org/lkml/20240912-test-v1-0-458fa57c8ccf@analog.com/

@pamolloy pamolloy force-pushed the adsp-6.12.38-y-patchset branch from 9fe49f3 to 1231b43 Compare September 24, 2025 10:04
@pamolloy
Copy link
Collaborator

pamolloy commented Sep 24, 2025

  • Add SC5xx to the mainline arch/arm64/configs/defconfig using menuconfig

@pamolloy pamolloy force-pushed the adsp-6.12.38-y-patchset branch from b079d72 to c82036f Compare September 25, 2025 09:00
@pamolloy
Copy link
Collaborator

pamolloy commented Sep 25, 2025

Before I squash the above fixup commits I have pushed a branch with all the fixups to https://github.com/pamolloy/linux/commits/lkml/20240912-test-v1-0-458fa57c8ccf%40analog.com/cicd-clean-up/ so it is easier to see what changed. Then I'll clean-up the commit messages, which requires rebasing

@pamolloy pamolloy force-pushed the adsp-6.12.38-y-patchset branch from cf02f09 to 01bf2bc Compare September 25, 2025 11:17
Add headers for GPIO port management, RCU and general system
configuration

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Co-developed-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Signed-off-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Co-developed-by: Arturs Artamonovs <arturs.artamonovs@analog.com>
Signed-off-by: Arturs Artamonovs <arturs.artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
@pamolloy pamolloy force-pushed the adsp-6.12.38-y-patchset branch 2 times, most recently from 79aa263 to b825d4e Compare September 25, 2025 13:42
@pamolloy pamolloy requested a review from gastmaier September 25, 2025 13:45
@pamolloy
Copy link
Collaborator

@artursartamonovsadi tested it and it was able to boot. We may need to revert the I2C driver, but I'll figure that out as I rebase adsp-main-6.12 onto these patches. This is just the first round of clean-up so it doesn't need to be perfect.

Copy link
Author

@artursartamonovsadi artursartamonovsadi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Went trough mailinglist comments and added if those wheren't addressed, so possible to track those here.

struct clk *sclk;
};

static void adi_twi_handle_interrupt(struct adi_twi_iface *i2c,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change name from adi_twi to match driver to adi_i2c

/ {
chosen {
stdout-path = &uart1;
bootargs = "earlycon=adi_uart,0x31003000 console=ttySC0,115200 mem=224M";

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment from the mailinglist:

You should not need the mem= and earlycon= arguments, as that data
is already part of the stdout-path property and the memory node.

Second comment:
Drop entire bootargs. Look how other SoCs do it, if you need port speed.

serial0 = &uart0;
serial2 = &uart2;
serial3 = &uart3;
};

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments from mailinglist:

The aliases are board specific, please only list the ones
that are actually enabled and wired on on a particular
board, and make the aliases match the labels on the board
rather than the internal components of hte chip.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move to board DTS

reg = <0x0 0x0>;
enable-method = "spin-table";
cpu-release-addr = <0x0 0xdeadbeef>;
clocks = <&clk_cgu0 ADSP_CLK_ARM>, <&clk_cgu0 ADSP_CLK_DDR>;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments from mailinglist:

Is that the actual address? It looks like some placeholder
that should not have been here.

#clock-cells = <1>;
clocks = <&sys_clkin0>, <&sys_clkin1>;
clock-names = "sys_clkin0", "sys_clkin1";
status = "okay";

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove status

clock-output-names = "sys_clkin0";
};

sys_clkin1: oscillator@2 {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment from mailinglist:

How are these properties of the SoC? Where are they located physically?
See DTS coding style.

status = "okay";
};

scb: scb-bus {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment from mailinglist:

What is scb-bus?

See DTS coding style or any other SoC. This is supposed to be just sco@
with proper unit address.

status = "disabled";
};

i2c0: twi@31001400 {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment from mailinglist:

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation


Completely wrong order of properties. Please follow DTS coding style.

#address-cells = <1>;
#size-cells = <0>;
compatible = "adi,sc5xx-i2c";
reg = <0x31001400 0xFF>;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lowe case hex?

gpio-ranges = <&pinctrl0 0 96 16>;
};

gph: gport@31004380 {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment:
Node names should be generic

artursartamonovsadi and others added 18 commits September 29, 2025 16:57
Support custom GPIO pin configuration for non-GPIO functions

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Co-developed-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Signed-off-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Co-developed-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Support triggering a software reset

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Co-developed-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Signed-off-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Co-developed-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add bindings for the reset controller in ADI ADSP-SC5xx SoCs

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Co-developed-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Signed-off-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add bindings for ADI evaluation boards using ADSP-SC59x SoCs

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Co-developed-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Signed-off-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Co-developed-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Implement the clock tree without dynamic PLL rate change

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add ADSP-SC5xx clock driver

Co-developed-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Co-developed-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Signed-off-by: Utsav Agarwal <Utsav.Agarwal@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add device tree bindings for the ADSP-SC5xx clock distribution unit
(CDU) and clock generation unit (CGU)

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
- Support all GPIO ports
- Each gpio support seperate PINT interrupt controller

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add bindings for ADSP-SC5xx general-purpose ports, pin multiplexing,
general-purpose input/output (GPIO) functionality, and pin interrupts.

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Support switching GPIO pin functions

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add bindings for the ADSP-SC5xx pinmux control

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add I2C support on ADSP-SC5xx SoCs

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add bindings for ADSP-SC5xx I2C/TWI

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
- Support FIFO mode
- Support earlyprintk
- Support Enable Divide By One support, for higher clock resolutions.

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add bindings for the ADSP-SC5xx UART

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add support for the ADSP-SC59x SoC, EV-SC598-SOM and EV-SOMCRR-EZKIT

Co-developed-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Signed-off-by: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
Co-developed-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Greg Malysa <malysagreg@gmail.com>
Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add Arturs Artamonov as the maintainer of ADSP-SC5xx SoCs

Signed-off-by: Arturs Artamonovs <Arturs.Artamonovs@analog.com>
Signed-off-by: Philip Molloy <philip.molloy@analog.com>
Add initial support for the ADSP-SC598

Signed-off-by: Philip Molloy <philip@philipmolloy.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Development
Development

Successfully merging this pull request may close these issues.

4 participants