diff options
| author | Greg Malysa <[email protected]> | 2025-12-11 03:04:02 -0500 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-01-23 14:20:59 -0600 |
| commit | be7937847b7ca0e1ac44a1982c58343a3a8ad0f3 (patch) | |
| tree | d890e74b3d189e0e1f19cb18f701685368378b91 /arch | |
| parent | c9e893d6266dc83dd053998cdf73957b623e2eb5 (diff) | |
board: adi: Add support for SC594
This adds support for the Analog Devices SC594 SOM and configurations
for using it with both the SOMCRR-EZKIT and SOMCRR-EZLITE.
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/sc594-som-ezkit.dts | 126 | ||||
| -rw-r--r-- | arch/arm/dts/sc594-som-ezlite.dts | 83 | ||||
| -rw-r--r-- | arch/arm/dts/sc594-som.dtsi | 193 |
3 files changed, 399 insertions, 3 deletions
diff --git a/arch/arm/dts/sc594-som-ezkit.dts b/arch/arm/dts/sc594-som-ezkit.dts index e744a3a4edb..c8a01fba527 100644 --- a/arch/arm/dts/sc594-som-ezkit.dts +++ b/arch/arm/dts/sc594-som-ezkit.dts @@ -11,3 +11,129 @@ model = "ADI SC594-SOM-EZKIT"; compatible = "adi,sc594-som-ezkit", "adi,sc59x"; }; + +&i2c2 { + gpio_expander2: mcp23017@22 { + compatible = "microchip,mcp23017"; + reg = <0x22>; + gpio-controller; + #gpio-cells = <2>; + bootph-pre-ram; + + eeprom { + gpio-hog; + gpios = <0 GPIO_ACTIVE_HIGH>; + output-low; + line-name = "eeprom-en"; + bootph-pre-ram; + }; + + pushbutton { + gpio-hog; + gpios = <1 GPIO_ACTIVE_HIGH>; + output-low; + line-name = "pushbutton-en"; + bootph-pre-ram; + }; + + microsd { + gpio-hog; + gpios = <2 GPIO_ACTIVE_LOW>; + output-low; + line-name = "microsd-spi"; + bootph-pre-ram; + }; + + adau-reset { + gpio-hog; + gpios = <5 GPIO_ACTIVE_LOW>; + output-low; + line-name = "adau-reset"; + bootph-pre-ram; + }; + + adau1962 { + gpio-hog; + gpios = <6 GPIO_ACTIVE_LOW>; + output-high; + line-name = "adau1962-en"; + bootph-pre-ram; + }; + + adau1979 { + gpio-hog; + gpios = <7 GPIO_ACTIVE_LOW>; + output-high; + line-name = "adau1979-en"; + bootph-pre-ram; + }; + + octal { + gpio-hog; + gpios = <8 GPIO_ACTIVE_HIGH>; + output-low; + line-name = "octal-spi-cs-en"; + bootph-pre-ram; + }; + + spdif-dig { + gpio-hog; + gpios = <9 GPIO_ACTIVE_LOW>; + output-low; + line-name = "spdif-digital-en"; + bootph-pre-ram; + }; + + spdif-opt { + gpio-hog; + gpios = <10 GPIO_ACTIVE_LOW>; + output-low; + line-name = "spdif-optical-en"; + bootph-pre-ram; + }; + + audio-jack { + gpio-hog; + gpios = <11 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "audio-jack-sel"; + bootph-pre-ram; + }; + + mlb { + gpio-hog; + gpios = <12 GPIO_ACTIVE_LOW>; + output-low; + line-name = "mlb-en"; + bootph-pre-ram; + }; + + eth1 { + gpio-hog; + gpios = <13 GPIO_ACTIVE_LOW>; + output-high; + line-name = "eth1-en"; + bootph-pre-ram; + }; + + eth1-reset { + gpio-hog; + gpios = <14 GPIO_ACTIVE_LOW>; + /* + * USB0 lines are shared with Eth1 so Eth PHY must be held in reset + * when using the USB + */ + output-high; + line-name = "eth1-reset"; + bootph-pre-ram; + }; + + gige-reset { + gpio-hog; + gpios = <15 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "gige-reset"; + bootph-pre-ram; + }; + }; +}; diff --git a/arch/arm/dts/sc594-som-ezlite.dts b/arch/arm/dts/sc594-som-ezlite.dts index 7d81b40fe8a..970d3b1a377 100644 --- a/arch/arm/dts/sc594-som-ezlite.dts +++ b/arch/arm/dts/sc594-som-ezlite.dts @@ -11,3 +11,86 @@ model = "ADI SC594-SOM-EZLITE"; compatible = "adi,sc594-som-ezlite", "adi,sc59x"; }; + +&i2c2 { + gpio_expander: adp5588@30 { + compatible = "adi,adp5588"; + reg = <0x30>; + gpio-controller; + #gpio-cells = <2>; + bootph-pre-ram; + + usb-spi0 { + gpio-hog; + gpios = <8 GPIO_ACTIVE_LOW>; + output-low; + line-name = "usb_spi0_en"; + bootph-pre-ram; + }; + + usb-spi1 { + gpio-hog; + gpios = <9 GPIO_ACTIVE_LOW>; + output-low; + line-name = "usb_spi1_en"; + bootph-pre-ram; + }; + + usb-qspi-en { + gpio-hog; + gpios = <10 GPIO_ACTIVE_LOW>; + output-low; + line-name = "usb_qspi_en"; + bootph-pre-ram; + }; + + usb-qspi-reset { + gpio-hog; + gpios = <11 GPIO_ACTIVE_LOW>; + output-high; + line-name = "usb_qspi_reset"; + bootph-pre-ram; + }; + + eth0-reset { + gpio-hog; + gpios = <12 GPIO_ACTIVE_LOW>; + output-high; + line-name = "eth0-reset"; + bootph-pre-ram; + }; + + adau1372-pwrdwn { + gpio-hog; + gpios = <13 GPIO_ACTIVE_LOW>; + output-high; + line-name = "adau1372_pwrdwn"; + bootph-pre-ram; + }; + + led1 { + gpio-hog; + gpios = <15 GPIO_ACTIVE_LOW>; + output-high; + line-name = "led1-en"; + bootph-pre-ram; + }; + + led2 { + gpio-hog; + gpios = <16 GPIO_ACTIVE_LOW>; + output-high; + line-name = "led2-en"; + bootph-pre-ram; + }; + + led3 { + gpio-hog; + gpios = <17 GPIO_ACTIVE_LOW>; + output-high; + line-name = "led3-en"; + bootph-pre-ram; + }; + + }; +}; diff --git a/arch/arm/dts/sc594-som.dtsi b/arch/arm/dts/sc594-som.dtsi index e15473f8e8f..1c2adc601dd 100644 --- a/arch/arm/dts/sc594-som.dtsi +++ b/arch/arm/dts/sc594-som.dtsi @@ -6,14 +6,201 @@ /dts-v1/; #include "sc5xx.dtsi" +#include "sc59x.dtsi" + +/{ + 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>; + }; +}; &timer0 { clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; }; +&pinctrl0 { + soc_defaults: soc_pins { + bootph-pre-ram; + adi,pins = <ADI_ADSP_PIN('A', 14) ADI_ADSP_PINFUNC_ALT0>, /* i2c */ + <ADI_ADSP_PIN('A', 15) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('F', 2) ADI_ADSP_PINFUNC_ALT0>, /* emmc */ + <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', 6) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('F', 7) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('F', 8) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('F', 9) 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>; + }; + + ospi_default: ospi_pins { + bootph-pre-ram; + adi,pins = <ADI_ADSP_PIN('C', 8) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 9) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 10) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 11) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 12) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 13) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 14) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('C', 15) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('D', 0) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('D', 1) ADI_ADSP_PINFUNC_ALT0>, + <ADI_ADSP_PIN('D', 4) ADI_ADSP_PINFUNC_ALT2>; + }; +}; + &clk { compatible = "adi,sc594-clocks"; - reg = <0x3108d000 0x1000>, - <0x3108e000 0x1000>, - <0x3108f000 0x1000>; +}; + +&uart0 { + clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; +}; + +&wdog { + clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; +}; + +&i2c0 { + clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; +}; + +&i2c1 { + clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; +}; + +&i2c2 { + clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; + + som_gpio_expander: mcp23017@21 { + compatible = "microchip,mcp23017"; + reg = <0x21>; + gpio-controller; + #gpio-cells = <2>; + bootph-pre-ram; + + led1 { + gpio-hog; + gpios = <0 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "led1-en"; + bootph-pre-ram; + }; + + led2 { + gpio-hog; + gpios = <1 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "led2-en"; + bootph-pre-ram; + }; + + led3 { + gpio-hog; + gpios = <2 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "led3-en"; + bootph-pre-ram; + }; + + spi2flash-cs { + gpio-hog; + gpios = <3 GPIO_ACTIVE_LOW>; + output-high; + line-name = "spi2flash-cs"; + bootph-pre-ram; + }; + + spi2d2-d3 { + gpio-hog; + gpios = <4 GPIO_ACTIVE_LOW>; + output-high; + line-name = "spi2d2-d3-en"; + bootph-pre-ram; + }; + + uart0 { + gpio-hog; + gpios = <5 GPIO_ACTIVE_LOW>; + output-high; + line-name = "uart0-en"; + bootph-pre-ram; + }; + + uart0-flow-en { + gpio-hog; + gpios = <6 GPIO_ACTIVE_LOW>; + output-low; + line-name = "uart0-flow-en"; + bootph-pre-ram; + }; + + ospiflash-cs { + gpio-hog; + gpios = <7 GPIO_ACTIVE_LOW>; + output-high; + line-name = "ospiflash-cs"; + bootph-pre-ram; + }; + }; +}; + +&ospi { + status = "okay"; + + clocks = <&clk ADSP_SC594_CLK_OSPI>; + + flash0: is25lx256@0 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor", "is25lx256"; + reg = <0>; + + spi-max-frequency = <100000000>; + cdns,spi-calib-frequency = <10000000>; + + spi-tx-bus-width = <8>; + spi-rx-bus-width = <8>; + + tshsl-ns = <50>; + tsd2d-ns = <50>; + tchsh-ns = <4>; + tslch-ns = <4>; + bootph-pre-ram; + + cdns,phy; + }; +}; + +&spi2 { + clocks = <&clk ADSP_SC594_CLK_SPI>; + + 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; + }; +}; + +&usb0_phy { + status = "okay"; + clocks = <&clk ADSP_SC594_CLK_CGU0_SCLK0>; + clock-names = "sclk0"; +}; + +&usb0 { + status = "okay"; }; |
