// SPDX-License-Identifier: GPL-2.0-or-later // Copyright 2019 IBM Corp. #include #include / { model = "Aspeed BMC"; compatible = "aspeed,ast2600"; #address-cells = <1>; #size-cells = <1>; interrupt-parent = <&gic>; aliases { i2c0 = &i2c0; i2c1 = &i2c1; i2c2 = &i2c2; i2c3 = &i2c3; i2c4 = &i2c4; i2c5 = &i2c5; i2c6 = &i2c6; i2c7 = &i2c7; i2c8 = &i2c8; i2c9 = &i2c9; i2c10 = &i2c10; i2c11 = &i2c11; i2c12 = &i2c12; i2c13 = &i2c13; i2c14 = &i2c14; i2c15 = &i2c15; serial4 = &uart5; serial5 = &vuart1; serial6 = &vuart2; }; cpus { #address-cells = <1>; #size-cells = <0>; enable-method = "aspeed,ast2600-smp"; cpu@f00 { compatible = "arm,cortex-a7"; device_type = "cpu"; reg = <0xf00>; }; cpu@f01 { compatible = "arm,cortex-a7"; device_type = "cpu"; reg = <0xf01>; }; }; timer { compatible = "arm,armv7-timer"; interrupt-parent = <&gic>; interrupts = , , , ; clocks = <&syscon ASPEED_CLK_HPLL>; arm,cpu-registers-not-fw-configured; }; ahb { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; device_type = "soc"; ranges; gic: interrupt-controller@40461000 { compatible = "arm,cortex-a7-gic"; interrupts = ; #interrupt-cells = <3>; interrupt-controller; interrupt-parent = <&gic>; reg = <0x40461000 0x1000>, <0x40462000 0x1000>, <0x40464000 0x2000>, <0x40466000 0x2000>; }; fmc: spi@1e620000 { reg = < 0x1e620000 0xc4 0x20000000 0x10000000 >; #address-cells = <1>; #size-cells = <0>; compatible = "aspeed,ast2600-fmc"; clocks = <&syscon ASPEED_CLK_AHB>; status = "disabled"; interrupts = ; flash@0 { reg = < 0 >; compatible = "jedec,spi-nor"; spi-max-frequency = <50000000>; status = "disabled"; }; flash@1 { reg = < 1 >; compatible = "jedec,spi-nor"; spi-max-frequency = <50000000>; status = "disabled"; }; flash@2 { reg = < 2 >; compatible = "jedec,spi-nor"; spi-max-frequency = <50000000>; status = "disabled"; }; }; spi1: spi@1e630000 { reg = < 0x1e630000 0xc4 0x30000000 0x10000000 >; #address-cells = <1>; #size-cells = <0>; compatible = "aspeed,ast2600-spi"; clocks = <&syscon ASPEED_CLK_AHB>; status = "disabled"; flash@0 { reg = < 0 >; compatible = "jedec,spi-nor"; spi-max-frequency = <50000000>; status = "disabled"; }; flash@1 { reg = < 1 >; compatible = "jedec,spi-nor"; spi-max-frequency = <50000000>; status = "disabled"; }; }; spi2: spi@1e631000 { reg = < 0x1e631000 0xc4 0x50000000 0x10000000 >; #address-cells = <1>; #size-cells = <0>; compatible = "aspeed,ast2600-spi"; clocks = <&syscon ASPEED_CLK_AHB>; status = "disabled"; flash@0 { reg = < 0 >; compatible = "jedec,spi-nor"; spi-max-frequency = <50000000>; status = "disabled"; }; flash@1 { reg = < 1 >; compatible = "jedec,spi-nor"; spi-max-frequency = <50000000>; status = "disabled"; }; flash@2 { reg = < 2 >; compatible = "jedec,spi-nor"; spi-max-frequency = <50000000>; status = "disabled"; }; }; mdio0: mdio@1e650000 { compatible = "aspeed,ast2600-mdio"; reg = <0x1e650000 0x8>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; mdio1: mdio@1e650008 { compatible = "aspeed,ast2600-mdio"; reg = <0x1e650008 0x8>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; mdio2: mdio@1e650010 { compatible = "aspeed,ast2600-mdio"; reg = <0x1e650010 0x8>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; mdio3: mdio@1e650018 { compatible = "aspeed,ast2600-mdio"; reg = <0x1e650018 0x8>; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; mac0: ftgmac@1e660000 { compatible = "aspeed,ast2600-mac", "faraday,ftgmac100"; reg = <0x1e660000 0x180>; #address-cells = <1>; #size-cells = <0>; interrupts = ; clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>; status = "disabled"; }; mac1: ftgmac@1e680000 { compatible = "aspeed,ast2600-mac", "faraday,ftgmac100"; reg = <0x1e680000 0x180>; #address-cells = <1>; #size-cells = <0>; interrupts = ; clocks = <&syscon ASPEED_CLK_GATE_MAC2CLK>; status = "disabled"; }; mac2: ftgmac@1e670000 { compatible = "aspeed,ast2600-mac", "faraday,ftgmac100"; reg = <0x1e670000 0x180>; #address-cells = <1>; #size-cells = <0>; interrupts = ; clocks = <&syscon ASPEED_CLK_GATE_MAC3CLK>; status = "disabled"; }; mac3: ftgmac@1e690000 { compatible = "aspeed,ast2600-mac", "faraday,ftgmac100"; reg = <0x1e690000 0x180>; #address-cells = <1>; #size-cells = <0>; interrupts = ; clocks = <&syscon ASPEED_CLK_GATE_MAC4CLK>; status = "disabled"; }; apb { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; ranges; syscon: syscon@1e6e2000 { compatible = "aspeed,ast2600-scu", "syscon", "simple-mfd"; reg = <0x1e6e2000 0x1000>; ranges = <0 0x1e6e2000 0x1000>; #address-cells = <1>; #size-cells = <1>; #clock-cells = <1>; #reset-cells = <1>; pinctrl: pinctrl { compatible = "aspeed,ast2600-pinctrl"; }; smp-memram@180 { compatible = "aspeed,ast2600-smpmem"; reg = <0x180 0x40>; }; }; rng: hwrng@1e6e2524 { compatible = "timeriomem_rng"; reg = <0x1e6e2524 0x4>; period = <1>; quality = <100>; }; gpio0: gpio@1e780000 { #gpio-cells = <2>; gpio-controller; compatible = "aspeed,ast2600-gpio"; reg = <0x1e780000 0x800>; interrupts = ; gpio-ranges = <&pinctrl 0 0 208>; ngpios = <208>; clocks = <&syscon ASPEED_CLK_APB2>; interrupt-controller; #interrupt-cells = <2>; }; gpio1: gpio@1e780800 { #gpio-cells = <2>; gpio-controller; compatible = "aspeed,ast2600-gpio"; reg = <0x1e780800 0x800>; interrupts = ; gpio-ranges = <&pinctrl 0 208 36>; ngpios = <36>; clocks = <&syscon ASPEED_CLK_APB1>; interrupt-controller; #interrupt-cells = <2>; }; rtc: rtc@1e781000 { compatible = "aspeed,ast2600-rtc"; reg = <0x1e781000 0x18>; interrupts = ; status = "disabled"; }; uart5: serial@1e784000 { compatible = "ns16550a"; reg = <0x1e784000 0x1000>; reg-shift = <2>; interrupts = ; clocks = <&syscon ASPEED_CLK_GATE_UART5CLK>; no-loopback-test; }; wdt1: watchdog@1e785000 { compatible = "aspeed,ast2600-wdt"; reg = <0x1e785000 0x40>; }; wdt2: watchdog@1e785040 { compatible = "aspeed,ast2600-wdt"; reg = <0x1e785040 0x40>; status = "disabled"; }; wdt3: watchdog@1e785080 { compatible = "aspeed,ast2600-wdt"; reg = <0x1e785080 0x40>; status = "disabled"; }; wdt4: watchdog@1e7850C0 { compatible = "aspeed,ast2600-wdt"; reg = <0x1e7850C0 0x40>; status = "disabled"; }; lpc: lpc@1e789000 { compatible = "aspeed,ast2600-lpc", "simple-mfd"; reg = <0x1e789000 0x1000>; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x1e789000 0x1000>; lpc_bmc: lpc-bmc@0 { compatible = "aspeed,ast2600-lpc-bmc", "simple-mfd", "syscon"; reg = <0x0 0x80>; reg-io-width = <4>; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0x80>; kcs1: kcs1@0 { compatible = "aspeed,ast2600-kcs-bmc"; interrupts = ; kcs_chan = <1>; status = "disabled"; }; kcs2: kcs2@0 { compatible = "aspeed,ast2600-kcs-bmc"; interrupts = ; kcs_chan = <2>; status = "disabled"; }; kcs3: kcs3@0 { compatible = "aspeed,ast2600-kcs-bmc"; interrupts = ; kcs_chan = <3>; status = "disabled"; }; }; lpc_host: lpc-host@80 { compatible = "aspeed,ast2600-lpc-host", "simple-mfd", "syscon"; reg = <0x80 0x1e0>; reg-io-width = <4>; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x80 0x1e0>; kcs4: kcs4@0 { compatible = "aspeed,ast2600-kcs-bmc"; interrupts = ; kcs_chan = <4>; status = "disabled"; }; lpc_ctrl: lpc-ctrl@0 { compatible = "aspeed,ast2600-lpc-ctrl"; reg = <0x0 0x80>; clocks = <&syscon ASPEED_CLK_GATE_LCLK>; status = "disabled"; }; lpc_snoop: lpc-snoop@0 { compatible = "aspeed,ast2600-lpc-snoop"; reg = <0x0 0x80>; interrupts = ; status = "disabled"; }; lhc: lhc@20 { compatible = "aspeed,ast2600-lhc"; reg = <0x20 0x24 0x48 0x8>; }; lpc_reset: reset-controller@18 { compatible = "aspeed,ast2600-lpc-reset"; reg = <0x18 0x4>; #reset-cells = <1>; }; ibt: ibt@c0 { compatible = "aspeed,ast2600-ibt-bmc"; reg = <0xc0 0x18>; interrupts = ; status = "disabled"; }; }; }; sdc: sdc@1e740000 { compatible = "aspeed,ast2600-sd-controller"; reg = <0x1e740000 0x100>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x1e740000 0x10000>; clocks = <&syscon ASPEED_CLK_GATE_SDCLK>; status = "disabled"; sdhci0: sdhci@1e740100 { compatible = "aspeed,ast2600-sdhci", "sdhci"; reg = <0x100 0x100>; interrupts = ; sdhci,auto-cmd12; clocks = <&syscon ASPEED_CLK_SDIO>; status = "disabled"; }; sdhci1: sdhci@1e740200 { compatible = "aspeed,ast2600-sdhci", "sdhci"; reg = <0x200 0x100>; interrupts = ; sdhci,auto-cmd12; clocks = <&syscon ASPEED_CLK_SDIO>; status = "disabled"; }; }; emmc_controller: sdc@1e750000 { compatible = "aspeed,ast2600-sd-controller"; reg = <0x1e750000 0x100>; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x1e750000 0x10000>; clocks = <&syscon ASPEED_CLK_GATE_EMMCCLK>; status = "disabled"; emmc: sdhci@1e750100 { compatible = "aspeed,ast2600-sdhci"; reg = <0x100 0x100>; sdhci,auto-cmd12; interrupts = ; clocks = <&syscon ASPEED_CLK_EMMC>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_emmc_default>; }; }; vuart1: serial@1e787000 { compatible = "aspeed,ast2500-vuart"; reg = <0x1e787000 0x40>; reg-shift = <2>; interrupts = ; clocks = <&syscon ASPEED_CLK_APB1>; no-loopback-test; status = "disabled"; }; vuart2: serial@1e788000 { compatible = "aspeed,ast2500-vuart"; reg = <0x1e788000 0x40>; reg-shift = <2>; interrupts = ; clocks = <&syscon ASPEED_CLK_APB1>; no-loopback-test; status = "disabled"; }; i2c: bus@1e78a000 { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0 0x1e78a000 0x1000>; }; }; }; }; #include "aspeed-g6-pinctrl.dtsi" &i2c { i2c0: i2c-bus@40 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x80 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1_default>; status = "disabled"; }; i2c1: i2c-bus@100 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x100 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2_default>; status = "disabled"; }; i2c2: i2c-bus@180 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x180 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c3_default>; status = "disabled"; }; i2c3: i2c-bus@200 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x200 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c4_default>; status = "disabled"; }; i2c4: i2c-bus@280 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x280 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c5_default>; status = "disabled"; }; i2c5: i2c-bus@300 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x300 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c6_default>; status = "disabled"; }; i2c6: i2c-bus@380 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x380 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c7_default>; status = "disabled"; }; i2c7: i2c-bus@400 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x400 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c8_default>; status = "disabled"; }; i2c8: i2c-bus@480 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x480 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c9_default>; status = "disabled"; }; i2c9: i2c-bus@500 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x500 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c10_default>; status = "disabled"; }; i2c10: i2c-bus@580 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x580 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c11_default>; status = "disabled"; }; i2c11: i2c-bus@600 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x600 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c12_default>; status = "disabled"; }; i2c12: i2c-bus@680 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x680 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c13_default>; status = "disabled"; }; i2c13: i2c-bus@700 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x700 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c14_default>; status = "disabled"; }; i2c14: i2c-bus@780 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x780 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c15_default>; status = "disabled"; }; i2c15: i2c-bus@800 { #address-cells = <1>; #size-cells = <0>; #interrupt-cells = <1>; reg = <0x800 0x80>; compatible = "aspeed,ast2600-i2c-bus"; clocks = <&syscon ASPEED_CLK_APB1>; resets = <&syscon ASPEED_RESET_I2C>; interrupts = ; bus-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c16_default>; status = "disabled"; }; };