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
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -631,6 +631,7 @@ F: arch/arm/dts/sc5*
F: arch/arm/include/asm/arch-adi/
F: arch/arm/mach-sc5xx/
F: board/adi/
F: configs/sc5*
F: doc/device-tree-bindings/arm/adi/adi,sc5xx.yaml
F: doc/device-tree-bindings/clock/adi,sc5xx-clocks.yaml
F: doc/device-tree-bindings/pinctrl/adi,adsp-pinctrl.yaml
Expand Down
4 changes: 0 additions & 4 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -1412,10 +1412,6 @@ Low Level (hardware related) configuration options:
VPL. Code that needs phase-specific behaviour can check this,
or (where possible) use xpl_phase() instead.

Note that CONFIG_XPL_BUILD *is* always defined when either
of CONFIG_TPL_BUILD / CONFIG_VPL_BUILD is defined. This can be
counter-intuitive and should perhaps be changed.

- CONFIG_TPL_BUILD
Set when the currently running compilation is for an artifact
that will end up in the TPL build (as opposed to SPL, VPL or
Expand Down
227 changes: 227 additions & 0 deletions arch/arm/dts/sc573-ezkit.dts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,236 @@

/dts-v1/;

#include "sc5xx.dtsi"
#include "sc57x.dtsi"

/ {
model = "ADI SC573-EZKIT";
compatible = "adi,sc573-ezkit", "adi,sc57x";
};

&i2c0 {
gpio_expander1: mcp23017@21 {
compatible = "microchip,mcp23017";
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
bootph-pre-ram;

eeprom {
gpio-hog;
gpios = <0 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~eeprom-en";
bootph-pre-ram;
};

uart0-flow-en {
gpio-hog;
gpios = <1 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~uart0-flow-en";
bootph-pre-ram;
};

mlb {
gpio-hog;
gpios = <5 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~mlb-en";
bootph-pre-ram;
};

can0 {
gpio-hog;
gpios = <6 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~can0-en";
bootph-pre-ram;
};

can1 {
gpio-hog;
gpios = <7 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~can1-en";
bootph-pre-ram;
};

adau1962 {
gpio-hog;
gpios = <8 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "~adau1962-en";
bootph-pre-ram;
};

adau1979 {
gpio-hog;
gpios = <9 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "~adau1979-en";
bootph-pre-ram;
};

sd-wp-en {
gpio-hog;
gpios = <11 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~sd-wp-en";
bootph-pre-ram;
};

spi2flash-cs {
gpio-hog;
gpios = <12 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "~spi2flash-cs";
bootph-pre-ram;
};

spi2d2-d3 {
gpio-hog;
gpios = <13 GPIO_ACTIVE_HIGH>;
output-low;
line-name = "~spi2d2-d3-en";
bootph-pre-ram;
};

spdif-opt {
gpio-hog;
gpios = <14 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~spdif-optical-en";
bootph-pre-ram;
};

spdif-dig {
gpio-hog;
gpios = <15 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~spdif-digital-en";
bootph-pre-ram;
};
};

gpio_expander2: mcp23017@22 {
compatible = "microchip,mcp23017";
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
bootph-pre-ram;

pushbutton3 {
gpio-hog;
gpios = <0 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~pushbutton3-en";
bootph-pre-ram;
};

pushbutton2 {
gpio-hog;
gpios = <1 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~pushbutton2-en";
bootph-pre-ram;
};

pushbutton1 {
gpio-hog;
gpios = <2 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~pushbutton1-en";
bootph-pre-ram;
};

leds {
gpio-hog;
gpios = <3 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~leds-en";
bootph-pre-ram;
};

flg0 {
gpio-hog;
gpios = <4 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~flg0_loop";
bootph-pre-ram;
};

flg1 {
gpio-hog;
gpios = <5 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~flg1_loop";
bootph-pre-ram;
};

flg2 {
gpio-hog;
gpios = <6 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~flg2_loop";
bootph-pre-ram;
};

flg3 {
gpio-hog;
gpios = <7 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~flg3_loop";
bootph-pre-ram;
};

adau1977 {
gpio-hog;
gpios = <8 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~adau1977_en";
bootph-pre-ram;
};

adau1977_fault_rst {
gpio-hog;
gpios = <9 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~adau1977_fault_rst_en";
bootph-pre-ram;
};

thumbwheel {
gpio-hog;
gpios = <10 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~thumbwheel_oe";
bootph-pre-ram;
};

engine_rpm {
gpio-hog;
gpios = <11 GPIO_ACTIVE_HIGH>;
output-high;
line-name = "~engine_rpm_oe";
bootph-pre-ram;
};
};
};

&eth0 {
snps,reset-gpio = <&gpio0 ADI_ADSP_PIN('A', 5) GPIO_ACTIVE_LOW>;
};

&gpio0 {
emac0_phy_pwdn {
gpio-hog;
output-high;
gpios = <ADI_ADSP_PIN('A', 4) GPIO_ACTIVE_HIGH>;
};
};

&mmc {
status = "okay";
};
123 changes: 119 additions & 4 deletions arch/arm/dts/sc57x.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,134 @@
* (C) Copyright 2024 - Analog Devices, Inc.
*/

#include "sc5xx.dtsi"

/ {
gic: interrupt-controller@310b2000 {
compatible = "arm,cortex-a5-gic";
gic: interrupt-controller@310B2000 {
compatible = "arm,cortex-a5-gic", "arm,cortex-a9-gic";
#interrupt-cells = <3>;
#address-cells = <0>;
interrupt-controller;
reg = <0x310B2000 0x1000>,
<0x310B4000 0x100>;
};

soc {
mmc: mmc0@31010000 {
compatible = "snps,dw-mshc";
reg = <0x31010000 0x400>;
pinctrl-names = "default";
pinctrl-0 = <&mmc_default>;
bus-width = <4>;
fifo-depth = <128>;
clock-names = "biu", "ciu";
max-frequency = <52000000>;
status = "disabled";
};

usb0: musb@310c1000 {
compatible = "adi,sc5xx-musb";
reg = <0x310c1000 0x390>;
interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mc", "dma";
status = "okay";
};

};
};

&timer0 {
clocks = <&clk ADSP_SC57X_CLK_CGU0_SCLK0>;
};

&pinctrl0 {
mmc_default: mmc_pins {
adi,pins = <ADI_ADSP_PIN('E', 12) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('E', 13) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('E', 14) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('E', 15) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('F', 0) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('F', 1) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('F', 2) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('F', 3) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('F', 4) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('F', 7) ADI_ADSP_PINFUNC_ALT2>,
<ADI_ADSP_PIN('C', 12) ADI_ADSP_PINFUNC_ALT1>;
};

eth0_default: eth0_pins {
adi,pins = <ADI_ADSP_PIN('B', 7) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 8) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 6) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 5) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('A', 13) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('A', 12) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('A', 14) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('A', 15) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 9) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 4) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 0) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 2) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('A', 10) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('A', 11) ADI_ADSP_PINFUNC_ALT0>;
};

uart0_default: uart0_pins {
bootph-pre-ram;
adi,pins = <ADI_ADSP_PIN('F', 8) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('F', 9) ADI_ADSP_PINFUNC_ALT0>;
};

spi2_default: spi2_pins {
adi,pins = <ADI_ADSP_PIN('B', 14) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 10) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 11) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 12) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 13) ADI_ADSP_PINFUNC_ALT0>,
<ADI_ADSP_PIN('B', 15) ADI_ADSP_PINFUNC_ALT0>;
};
};

&pinctrl0 {
adi,npins = <92>;
};

&gpio0 {
adi,ngpios = <92>;
};

&clk{
compatible = "adi,sc57x-clocks";
};

&uart0{
clocks = <&clk ADSP_SC57X_CLK_CGU0_SCLK0>;
};

&spi2{
clocks = <&clk ADSP_SC57X_CLK_CGU0_SCLK1>;
reg = <0x31044000 0x1000>;
};

&wdog{
clocks = <&clk ADSP_SC57X_CLK_CGU0_SCLK0>;
};

&eth0{
reg = <0x3100C000 0x1000>;
};

&mmc{
clocks = <&dummy>, <&clk ADSP_SC57X_CLK_CGU0_SCLK0>;
};

&i2c0{
clocks = <&clk ADSP_SC57X_CLK_CGU0_SCLK0>;
};

&i2c1{
clocks = <&clk ADSP_SC57X_CLK_CGU0_SCLK0>;
};

&i2c2{
clocks = <&clk ADSP_SC57X_CLK_CGU0_SCLK0>;
};
Loading