Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions Documentation/devicetree/bindings/arm/analog/adi,sc5xx.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/analog/adi,sc5xx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices SC59X 64-Bit ARM-based Processor Families

maintainers:
- Arturs Artamonovs <arturs.artamonovs@analog.com>
- Utsav Agarwal <Utsav.Agarwal@analog.com>

properties:
$nodename:
const: '/'
compatible:
description: SC59X 64-Bit Boards
items:
- enum:
- adi,sc598-som-ezkit # Analog Devices SC598 EZKit
- const: adi,sc59x-64

additionalProperties: true
64 changes: 64 additions & 0 deletions Documentation/devicetree/bindings/clock/adi,sc5xx-clocks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/clock/adi,sc5xx-clocks.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Clock Tree Drivers for Analog Devices ADSP-SC5XX Processors

maintainers:
- Arturs Artamonovs <arturs.artamonovs@analog.com>
- Utsav Agarwal <Utsav.Agarwal@analog.com>

description: |
These drivers read in the processors CDU (clock distribution unit)
and CGU (clock generation unit) values to determine various clock
rates

properties:
compatible:
oneOf:
- items:
- enum:
- adi,sc598-cgu0
- adi,sc598-cgu1
- adi,sc598-cdu
- adi,sc598-pll

'#clock-cells':
const: 1

reg:
maxItems: 1

clocks:
description:
Specifies the CLKIN0 and CLKIN1 reference clock(s) from which the
output frequencies are derived via CDU+CGU
minItems: 2
maxItems: 2

clock-names:
description:
String reference names for CLKIN0 and CLKIN1
minItems: 2
maxItems: 2

required:
- compatible
- reg
- clocks
- '#clock-cells'
- clock-names

additionalProperties: false

examples:
- |
clock-controller@3108d000 {
compatible = "adi,sc598-cgu0";
reg = <0x3108d000 0x1000>;
#clock-cells = <1>;
clocks = <&sys_clkin0>, <&sys_clkin1>;
clock-names = "sys_clkin0", "sys_clkin1";
};
82 changes: 82 additions & 0 deletions Documentation/devicetree/bindings/pinctrl/adi,sc5xx-pinctrl.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/adi,sc5xx-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices Pinmuxing Control for SC5XX Processor Family

maintainers:
- Arturs Artamonovs <arturs.artamonovs@analog.com>
- Utsav Agarwal <Utsav.Agarwal@analog.com>

description: |
Pinmuxing Control Driver for Configuring Processor Pins/Pads

properties:
compatible:
enum:
- adi,sc5xx-pinctrl
reg:
maxItems: 1

"#address-cells":
const: 1

"#size-cells":
const: 1

"adi,port-sizes":
$ref: /schemas/types.yaml#/definitions/uint32-array
maxItems: 9
description: Space delimited integer list denoting number of pins per port
Ports A-I exist, so this is up to 9 items long

"adi,no-drive-strength":
type: boolean
description: Indicate missing drive strength registers

"adi,no-pull-up-down":
type: boolean
description: Indicate missing pull up/down enable registers

patternProperties:
'-pins$':
type: object
additionalProperties: false

properties:
pins:
type: object
description: |
A pinctrl node should contain a pin property, specifying the actual
pins to use.

properties:
pinmux:
$ref: /schemas/types.yaml#/definitions/uint32-array
description: |
pinmux is used to specify which of the available functionalities
for a given pin are actually used.

additionalProperties: false

required:
- compatible
- reg
- "#address-cells"
- "#size-cells"
- adi,port-sizes

additionalProperties: false

examples:
- |
pinctrl@31004600 {
compatible = "adi,sc5xx-pinctrl";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x31004600 0x400>;
adi,port-sizes = <16 16 16 16 16 16 16 16 7>;
};

41 changes: 41 additions & 0 deletions Documentation/devicetree/bindings/reset/adi,sc5xx-reset.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/reset/adi,sc5xx-reset.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices Reset Controller for SC5XX processor family

description: SHARC and ARM core reset control unit for starting/stopping/resetting
processors

maintainers:
- Arturs Artamonovs <arturs.artamonovs@analog.com>
- Utsav Agarwal <Utsav.Agarwal@analog.com>

properties:
compatible:
enum:
- adi,sc5xx-reset

reg:
maxItems: 1

"#reset-cells":
const: 0

required:
- compatible
- reg
- "#reset-cells"

additionalProperties: false

examples:
- |
reset-controller@3108c000 {
compatible = "adi,sc5xx-reset";
reg = <0x3108c000 0x1000>;
#reset-cells = <0>;
};

74 changes: 74 additions & 0 deletions Documentation/devicetree/bindings/serial/adi,sc5xx-uart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/serial/adi,sc5xx-uart.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Analog Devices UART Driver for SC5XX-family processors

maintainers:
- Arturs Artamonovs <arturs.artamonovs@analog.com>
- Utsav Agarwal <Utsav.Agarwal@analog.com>

description: Analog Devices UART Driver for SC59X-family processors

properties:
compatible:
enum:
- adi,sc5xx-uart

reg:
maxItems: 1

clocks:
maxItems: 1

clock-names:
description: Clock name
items:
- const: sclk0

interrupt-names:
items:
- const: tx
- const: rx
- const: status

interrupts:
minItems: 3
maxItems: 3
description: GIC interrupt numbers

adi,use-edbo:
type: boolean
description: Increase by 16 incoming bit sampling rate for better
granularity and accuracy at high speed rates.

required:
- compatible
- reg
- clocks
- clock-names
- interrupt-names
- interrupts

additionalProperties: false

examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/adi-sc5xx-clock.h>

serial@31003000 {
compatible = "adi,sc5xx-uart";
reg = <0x31003000 0x40>;
clocks = <&clk ADSP_CLK_CGU0_SCLK0>;
clock-names = "sclk0";
interrupt-parent = <&gic>;
interrupt-names = "tx", "rx", "status";
interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
adi,use-edbo;
};
19 changes: 19 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -2016,6 +2016,25 @@ F: include/dt-bindings/reset/actions,*
F: include/linux/soc/actions/
N: owl

ARM/ADI SoC Support
M: Arturs Artamonovs <arturs.artamonovs@analog.com>
S: Maintained
F: Documentation/devicetree/bindings/arm/analog/adi,sc5xx.yaml
F: Documentation/devicetree/bindings/clock/adi,sc5xx-clocks.yaml
F: Documentation/devicetree/bindings/gpio/adi,sc5xx-gpio.yaml
F: Documentation/devicetree/bindings/i2c/adi,sc5xx-i2c.yaml
F: Documentation/devicetree/bindings/pinctrl/adi,sc5xx-pinctrl.yaml
F: Documentation/devicetree/bindings/reset/adi,sc5xx-reset.yaml
F: Documentation/devicetree/bindings/serial/adi,sc5xx-uart.yaml
F: Documentation/devicetree/bindings/soc/adi/*
F: arch/arm64/boot/dts/adi/*
F: drivers/clk/adi/*
F: drivers/gpio/gpio-sc5xx.c
F: drivers/i2c/busses/i2c-adi-sc5xx.c
F: drivers/pinctrl/pinctrl-sc5xx.c
F: drivers/soc/adi/*
F: drivers/tty/serial/adi_uart.c

ARM/AIROHA SOC SUPPORT
M: Matthias Brugger <matthias.bgg@gmail.com>
M: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Expand Down
10 changes: 10 additions & 0 deletions arch/arm64/Kconfig.platforms
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# SPDX-License-Identifier: GPL-2.0-only
menu "Platform selection"

Expand Down Expand Up @@ -292,6 +292,16 @@
This enables support for the ARMv8 based Rockchip chipsets,
like the RK3368.

config ARCH_SC59X_64

Check warning on line 295 in arch/arm64/Kconfig.platforms

View workflow job for this annotation

GitHub Actions / checks / checks

checkpatch: please write a help paragraph that fully describes the config symbol +config ARCH_SC59X_64 + bool "ADI 64-bit SC59X Platforms" + select TIMER_OF + select GPIOLIB + select PINCTRL + select COUNTER + help + This enables support for ARM64 based Analog Devices DSP SoCs, + including: ADSP-SC596, ADSP-SC598 +
bool "ADI 64-bit SC59X Platforms"
select TIMER_OF
select GPIOLIB
select PINCTRL
select COUNTER
help
This enables support for ARM64 based Analog Devices DSP SoCs,
including: ADSP-SC596, ADSP-SC598

config ARCH_SEATTLE
bool "AMD Seattle SoC Family"
help
Expand Down
1 change: 1 addition & 0 deletions arch/arm64/boot/dts/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
subdir-y += actions
subdir-y += adi
subdir-y += airoha
subdir-y += allwinner
subdir-y += altera
Expand Down
2 changes: 2 additions & 0 deletions arch/arm64/boot/dts/adi/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_SC59X_64) += sc598-som-ezkit.dtb
14 changes: 14 additions & 0 deletions arch/arm64/boot/dts/adi/sc598-som-ezkit.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright 2021-2024 - Analog Devices Inc.
* Author: Nathan Barrett-Morrison <nathan.morrison@timesys.com>
*/

/dts-v1/;

#include "sc598-som.dtsi"

/ {
model = "ADI 64-bit SC598 SOM EZ Kit";
compatible = "adi,sc598-som-ezkit", "adi,sc59x-64";
};
Loading
Loading