diff options
| author | Greg Malysa <[email protected]> | 2025-12-11 03:03:59 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-01-23 14:20:59 -0600 |
| commit | e382cb2be4ef6f205b6f3231801ee2d7d24d2906 (patch) | |
| tree | ec85c1f055e61a3458fae35c74d54c9fd2523c83 /arch | |
| parent | 34d41f8da617ad9ca4527fac7764671159463b4f (diff) | |
board: adi: Add support for SC589 boards
This adds support for the Analog Devices SC589-EZKIT and SC589-mini.
Signed-off-by: Vasileios Bimpikas <[email protected]>
Signed-off-by: Utsav Agarwal <[email protected]>
Signed-off-by: Arturs Artamonovs <[email protected]>
Signed-off-by: Nathan Barrett-Morrison <[email protected]>
Signed-off-by: Caleb Ethridge <[email protected]>
Signed-off-by: Philip Molloy <[email protected]>
Signed-off-by: Greg Malysa <[email protected]>
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/dts/sc589-ezkit.dts | 198 | ||||
| -rw-r--r-- | arch/arm/dts/sc589-mini.dts | 18 | ||||
| -rw-r--r-- | arch/arm/dts/sc58x.dtsi | 164 |
3 files changed, 376 insertions, 4 deletions
diff --git a/arch/arm/dts/sc589-ezkit.dts b/arch/arm/dts/sc589-ezkit.dts index 8a1c0ce0862..39ac7a4fd6e 100644 --- a/arch/arm/dts/sc589-ezkit.dts +++ b/arch/arm/dts/sc589-ezkit.dts @@ -8,6 +8,204 @@ #include "sc58x.dtsi" / { + #address-cells = <1>; + #size-cells = <1>; model = "ADI SC589-EZKIT"; compatible = "adi,sc589-ezkit", "adi,sc58x"; }; + +&i2c0 { + #address-cells = <1>; + #size-cells = <0>; + gpio_expander1: mcp23017@21 { + compatible = "microchip,mcp23017"; + reg = <0x21>; + gpio-controller; + #gpio-cells = <2>; + bootph-pre-ram; + + eeprom { + gpio-hog; + gpios = <0 GPIO_ACTIVE_LOW>; + output-low; + line-name = "eeprom-en"; + bootph-pre-ram; + }; + + uart0-flow-en { + gpio-hog; + gpios = <1 GPIO_ACTIVE_LOW>; + output-low; + line-name = "uart0-flow-en"; + bootph-pre-ram; + }; + + uart0-en { + gpio-hog; + gpios = <2 GPIO_ACTIVE_LOW>; + output-high; + line-name = "uart0-en"; + bootph-pre-ram; + }; + + eth0 { + gpio-hog; + gpios = <3 GPIO_ACTIVE_LOW>; + output-high; + line-name = "eth0-en"; + bootph-pre-ram; + }; + + eth1 { + gpio-hog; + gpios = <4 GPIO_ACTIVE_LOW>; + output-high; + line-name = "eth1-en"; + bootph-pre-ram; + }; + + mlb { + gpio-hog; + gpios = <5 GPIO_ACTIVE_LOW>; + output-low; + line-name = "mlb-en"; + bootph-pre-ram; + }; + + can0 { + gpio-hog; + gpios = <6 GPIO_ACTIVE_LOW>; + output-low; + line-name = "can0-en"; + bootph-pre-ram; + }; + + can1 { + gpio-hog; + gpios = <7 GPIO_ACTIVE_LOW>; + output-low; + line-name = "can1-en"; + bootph-pre-ram; + }; + + adau1962 { + gpio-hog; + gpios = <8 GPIO_ACTIVE_LOW>; + output-high; + line-name = "adau1962-en"; + bootph-pre-ram; + }; + + adau1979 { + gpio-hog; + gpios = <9 GPIO_ACTIVE_LOW>; + output-high; + line-name = "adau1979-en"; + bootph-pre-ram; + }; + + sd_wp { + gpio-hog; + gpios = <11 GPIO_ACTIVE_LOW>; + output-low; + line-name = "sd-wp-en"; + bootph-pre-ram; + }; + + spi2d2-d3 { + gpio-hog; + gpios = <12 GPIO_ACTIVE_LOW>; + output-high; + line-name = "spi2d2-d3-en"; + bootph-pre-ram; + }; + + spi2flash-cs { + gpio-hog; + gpios = <13 GPIO_ACTIVE_LOW>; + output-high; + line-name = "spi2flash-cs"; + bootph-pre-ram; + }; + + spdif-opt { + gpio-hog; + gpios = <14 GPIO_ACTIVE_LOW>; + output-low; + line-name = "spdif-optical-en"; + bootph-pre-ram; + }; + + spdif-dig { + gpio-hog; + gpios = <15 GPIO_ACTIVE_LOW>; + output-low; + 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; + + pushbutton1 { + gpio-hog; + gpios = <0 GPIO_ACTIVE_LOW>; + output-high; + line-name = "pushbutton1-en"; + bootph-pre-ram; + }; + + pushbutton2 { + gpio-hog; + gpios = <1 GPIO_ACTIVE_LOW>; + output-high; + line-name = "pushbutton2-en"; + bootph-pre-ram; + }; + + led10 { + gpio-hog; + gpios = <2 GPIO_ACTIVE_LOW>; + output-high; + line-name = "led10-en"; + bootph-pre-ram; + }; + + led11 { + gpio-hog; + gpios = <3 GPIO_ACTIVE_LOW>; + output-high; + line-name = "led11-en"; + bootph-pre-ram; + }; + + led12 { + gpio-hog; + gpios = <4 GPIO_ACTIVE_LOW>; + output-high; + line-name = "led12-en"; + bootph-pre-ram; + }; + }; +}; + +ð0 { + snps,reset-gpio = <&gpio0 ADI_ADSP_PIN('B', 14) GPIO_ACTIVE_LOW>; +}; + +&gpio0 { + emac0_phy_pwdn { + gpio-hog; + output-high; + gpios = <ADI_ADSP_PIN('C', 15) GPIO_ACTIVE_HIGH>; + }; +}; + +&mmc { + status = "okay"; +}; diff --git a/arch/arm/dts/sc589-mini.dts b/arch/arm/dts/sc589-mini.dts index 605f7a17bfc..a7650bae12c 100644 --- a/arch/arm/dts/sc589-mini.dts +++ b/arch/arm/dts/sc589-mini.dts @@ -8,6 +8,22 @@ #include "sc58x.dtsi" / { - model = "ADI SC598-MINI"; + model = "ADI SC589-MINI"; compatible = "adi,sc589-mini", "adi,sc58x"; }; + +ð0 { + snps,reset-gpio = <&gpio0 ADI_ADSP_PIN('B', 7) GPIO_ACTIVE_LOW>; +}; + +&gpio0 { + emac0_phy_pwdn { + gpio-hog; + output-high; + gpios = <ADI_ADSP_PIN('F', 6) GPIO_ACTIVE_HIGH>; + }; +}; + +&mmc { + status = "okay"; +}; diff --git a/arch/arm/dts/sc58x.dtsi b/arch/arm/dts/sc58x.dtsi index 66145315ab7..7b07589de47 100644 --- a/arch/arm/dts/sc58x.dtsi +++ b/arch/arm/dts/sc58x.dtsi @@ -6,18 +6,176 @@ #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 { + rcu: rcu@0x3108B000 { + compatible = "adi,reset-controller"; + reg = <0x3108B000 0x1000>; + adi,sharc-min = <1>; + adi,sharc-max = <2>; + adi,enable-reboot; + status = "disabled"; + }; + + 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 132 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "mc", "dma"; + status = "okay"; + }; + + usb1: musb@310c2000 { + compatible = "adi,sc5xx-musb"; + reg = <0x310c2000 0x390>; + interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "mc", "dma"; + status = "disabled"; + }; + + sharc1: sharc@0x28240000 { + compatible = "adi,sc5xx-rproc"; + reg = <0x28240000 0x100>; + coreid = <1>; + adi,rcu = <&rcu>; + status = "disabled"; + }; + + sharc2: sharc@0x28a40000 { + compatible = "adi,sc5xx-rproc"; + reg = <0x28a40000 0x100>; + coreid = <2>; + adi,rcu = <&rcu>; + status = "disabled"; + }; + }; }; &timer0 { reg = <0x31001004 0x100>, - <0x31001060 0x100>; + <0x31001060 0x100>; + clocks = <&clk ADSP_SC58X_CLK_CGU0_SCLK0>; +}; + +&pinctrl0 { + mmc_default: mmc_pins { + bootph-pre-ram; + adi,pins = <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', 5) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('F', 10) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('F', 11) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('F', 12) ADI_ADSP_PINFUNC_ALT0>; + }; + + eth0_default: eth0_pins { + adi,pins = <ADI_ADSP_PIN('A', 0) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 1) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 2) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 3) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 4) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 5) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 6) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 7) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 8) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 9) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 10) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 11) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 12) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('A', 13) ADI_ADSP_PINFUNC_ALT0>; + }; + + uart0_default: uart0_pins { + bootph-pre-ram; + adi,pins = <ADI_ADSP_PIN('C', 13) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 14) ADI_ADSP_PINFUNC_ALT0>; + }; + + spi2_default: spi2_pins { + adi,pins = <ADI_ADSP_PIN('C', 1) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 2) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 3) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 4) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 5) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 6) ADI_ADSP_PINFUNC_ALT0>; + }; +}; + +&pinctrl0 { + adi,npins = <102>; +}; + +&gpio0 { + adi,ngpios = <102>; +}; + +&clk { + compatible = "adi,sc58x-clocks"; +}; + +&uart0 { + clocks = <&clk ADSP_SC58X_CLK_CGU0_SCLK0>; +}; + +&spi2 { + clocks = <&clk ADSP_SC58X_CLK_CGU0_SCLK1>; + reg = <0x31044000 0x1000>; + + flash1: is25lp512@1 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor", "is25lp512"; + reg = <1>; + spi-tx-bus-width = <4>; + spi-rx-bus-width = <4>; + spi-max-frequency = <10000000>; + bootph-pre-ram; + }; +}; + +&wdog { + clocks = <&clk ADSP_SC58X_CLK_CGU0_SCLK0>; +}; + +ð0 { + reg = <0x3100C000 0x1000>; +}; + +&mmc { + clocks = <&dummy>, <&clk ADSP_SC58X_CLK_CGU0_SCLK0>; +}; + +&i2c0 { + clocks = <&clk ADSP_SC58X_CLK_CGU0_SCLK0>; +}; + +&i2c1 { + clocks = <&clk ADSP_SC58X_CLK_CGU0_SCLK0>; +}; + +&i2c2 { clocks = <&clk ADSP_SC58X_CLK_CGU0_SCLK0>; }; |
