[PATCH 1/1] ARM: dts: aspeed: Add device tree for Phytium's BMC
Andrew Jeffery
andrew at aj.id.au
Thu Jul 21 12:25:39 AEST 2022
On Tue, 12 Jul 2022, at 10:53, wangmin_phy at 126.com wrote:
> From: Min Wang <wangmin at phytium.com.cn>
>
> The Phytium's BMC card is an ASPEED AST2500-based BMC for the
> hardware reference platform with Phytium's Processors Family.
>
> Signed-off-by: Min Wang <wangmin at phytium.com.cn>
> ---
> arch/arm/boot/dts/Makefile | 3 +-
> .../boot/dts/aspeed-bmc-phytium-pomelo.dts | 302 ++++++++++++++++++
> 2 files changed, 304 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm/boot/dts/aspeed-bmc-phytium-pomelo.dts
>
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 7e0934180724..e02cd800d45a 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -1497,4 +1497,5 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
> aspeed-bmc-opp-zaius.dtb \
> aspeed-bmc-portwell-neptune.dtb \
> aspeed-bmc-quanta-q71l.dtb \
> - aspeed-bmc-supermicro-x11spi.dtb
> + aspeed-bmc-supermicro-x11spi.dtb \
> + aspeed-bmc-phytium-pomelo.dtb
Please keep the list in alphabetical order.
> diff --git a/arch/arm/boot/dts/aspeed-bmc-phytium-pomelo.dts
> b/arch/arm/boot/dts/aspeed-bmc-phytium-pomelo.dts
> new file mode 100644
> index 000000000000..a75017f22140
> --- /dev/null
> +++ b/arch/arm/boot/dts/aspeed-bmc-phytium-pomelo.dts
> @@ -0,0 +1,302 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/dts-v1/;
> +
> +#include "aspeed-g5.dtsi"
> +#include <dt-bindings/gpio/aspeed-gpio.h>
> +
> +/ {
> + model = "Phytium AST2500 BMC";
> + compatible = "aspeed,ast2500";
> +
> + aliases {
> + serial4 = &uart5;
> + };
> +
> + chosen {
> + stdout-path = &uart5;
> + bootargs = "console=tty0 console=ttyS4,115200 earlyprintk";
I think we're in favour of dropping bootargs from the devicetree now.
This is handled in other ways (u-boot).
> + };
> +
> + memory at 80000000 {
> + device_type = "memory";
> + reg = <0x80000000 0x20000000>;
> + };
> +
> + reserved-memory {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + vga_memory: framebuffer at 9c000000 {
> + no-map;
> + reg = <0x9c000000 0x04000000>; /* 64M */
> + };
> +
> + video_engine_memory: jpegbuffer {
> + size = <0x02000000>; /* 32M */
> + alignment = <0x01000000>;
> + compatible = "shared-dma-pool";
> + reusable;
> + };
> + };
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> + id-button {
> + label = "id-button";
> + gpios = <&gpio ASPEED_GPIO(S, 2) GPIO_ACTIVE_LOW>;
> + };
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> + identify {
> + gpios = <&gpio ASPEED_GPIO(C, 6) GPIO_ACTIVE_LOW>;
> + };
> + fault {
> + gpios = <&gpio ASPEED_GPIO(C, 7) GPIO_ACTIVE_LOW>;
> + };
> + };
> +
> + iio-hwmon {
> + compatible = "iio-hwmon";
> + io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
> + <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
> + <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
> + <&adc 12>, <&adc 13>, <&adc 14>, <&adc 15>;
> + };
> +};
> +
> +&adc {
> + status = "okay";
I recommend you mux the ADC lines to avoid them being 'stolen' by
userspace accidentally requesting the wrong GPIOs.
> +};
> +
> +&fmc {
> + status = "okay";
> + flash at 0 {
> + status = "okay";
> + m25p,fast-read;
> + label = "bmc";
> + spi-max-frequency = <50000000>;
> +#include "openbmc-flash-layout.dtsi"
> + };
> +};
> +
> +&spi1 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_spi1_default>;
> + flash at 0 {
> + status = "okay";
> + m25p,fast-read;
> + label = "pnor";
> + spi-max-frequency = <100000000>;
> + };
> +};
> +
> +&spi2 {
> + status = "okay";
> +};
> +
> +&uart5 {
> + status = "okay";
> +};
> +
> +&uart1 {
> + status = "okay";
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_txd1_default
> + &pinctrl_rxd1_default
> + &pinctrl_nrts1_default
> + &pinctrl_ndtr1_default
> + &pinctrl_ndsr1_default
> + &pinctrl_ncts1_default
> + &pinctrl_ndcd1_default
> + &pinctrl_nri1_default>;
> +
> +};
> +
> +&lpc_snoop {
> + status = "okay";
> + snoop-ports = <0x80>;
> +};
> +
> +&kcs3 {
> + status = "okay";
> + aspeed,lpc-io-reg = <0xCA2>;
> +};
> +
> +&kcs2 {
> + status = "okay";
> + aspeed,lpc-io-reg = <0xCA8>;
> +};
> +
> +&mac0 {
> + status = "okay";
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_rmii1_default>;
> + clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
> + <&syscon ASPEED_CLK_MAC1RCLK>;
> + clock-names = "MACCLK", "RCLK";
> + use-ncsi;
> +};
> +
> +&mac1 {
> + status = "okay";
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
> +};
> +
> +&i2c1 {
> + status = "okay";
> + psu1 at 58 {
> + compatible = "pmbus";
> + reg = <0x58>;
> + };
> + psu2 at 59 {
> + compatible = "pmbus";
> + reg = <0x59>;
> + };
> +};
> +
> +&i2c2 {
> + status = "okay";
> +};
> +
> +&i2c3 {
> + status = "okay";
> +
> +};
> +
> +&i2c4 {
> + status = "okay";
> + rtc at 68 {
> + compatible = "dallas,ds1339";
> + reg = <0x68>;
> + };
> +};
> +
> +&i2c5 {
> + status = "okay";
> +};
> +
> +
> +&i2c6 {
> + status = "okay";
> +};
> +
> +&i2c7 {
> + status = "okay";
> +};
> +
> +&i2c8 {
> + status = "okay";
> + lm75 at 48 {
> + compatible = "ti,tmp100";
> + reg = <0x48>;
> + };
> + lm75 at 49 {
> + compatible = "ti,tmp100";
> + reg = <0x49>;
> + };
> + lm75 at 4a {
> + compatible = "ti,tmp100";
> + reg = <0x4a>;
> + };
> + lm75 at 4c {
> + compatible = "ti,tmp100";
> + reg = <0x4c>;
> + };
> + lm75 at 4d {
> + compatible = "ti,tmp100";
> + reg = <0x4d>;
> + };
> + lm75 at 4e {
> + compatible = "ti,tmp100";
> + reg = <0x4e>;
> + };
> +
> +};
> +
> +&i2c0 {
> + status = "okay";
> +};
> +
> +
> +/*
> + * Enable port A as device (via the virtual hub) and port B as
> + * host by default on the eval board. This can be easily changed
> + * by replacing the override below with &ehci0 { ... } to enable
> + * host on both ports.
> + */
Drop this comment as it's not the EVB?
Cheers,
Andrew
More information about the Linux-aspeed
mailing list