[PATCH v2 2/2] ARM: dts: kirkwood: Add Ctera C-200 V1 board

Andrew Lunn andrew at lunn.ch
Tue Feb 15 10:25:00 PST 2022


On Tue, Feb 15, 2022 at 05:39:22PM +0100, Pawel Dembicki wrote:
> Ctera C200 V1 is kirkwood-based 2-Bay NAS.
> 
> Hardware:
>   - SoC: Marvell 88F6281-A1 ARMv5TE Processor 1.2GHz
>   - Ram: 512MB (4x Nanya NT5TU128M8GE-AC)
>   - NAND Flash: 256MB (Samsung 216 K9F2G08U0C)
>   - Lan: 1x GBE (Marvell 88E1116R-NNC1)
>   - Storage: 2x SATA HDD 3.5" Slot
>   - USB: 2x USB 2.0 port
>   - Console: Internal J3 connector (1: Vcc, 2: Rx, 3: Tx, 4: GND)
>   - LEDs: 13x GPIO controlled
>   - Buttons: 2x GPIO controlled
> 
> Signed-off-by: Pawel Dembicki <paweldembicki at gmail.com>
> ---
> v2:
> - removed 2x\n spacing issue
> - removed unused pcie node
> - made information about buzzer more comprehensive

Hi Pawel

Thanks for adding the mvebu Maintainers to the list of recipients.

One more process point. It would be normal to set the To: to whoever
you think should actually accept this patch. There are a lot of
Maintainers listed in Cc: so actually pointing a finger at somebody
can help.

Gregory will be the person to actually take this patch.

> 
>  arch/arm/boot/dts/Makefile             |   1 +
>  arch/arm/boot/dts/kirkwood-c200-v1.dts | 310 +++++++++++++++++++++++++
>  2 files changed, 311 insertions(+)
>  create mode 100644 arch/arm/boot/dts/kirkwood-c200-v1.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 235ad559acb2..31616f6ae173 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -281,6 +281,7 @@ dtb-$(CONFIG_ARCH_KEYSTONE) += \
>  dtb-$(CONFIG_MACH_KIRKWOOD) += \
>  	kirkwood-b3.dtb \
>  	kirkwood-blackarmor-nas220.dtb \
> +	kirkwood-c200-v1.dtb \
>  	kirkwood-cloudbox.dtb \
>  	kirkwood-d2net.dtb \
>  	kirkwood-db-88f6281.dtb \
> diff --git a/arch/arm/boot/dts/kirkwood-c200-v1.dts b/arch/arm/boot/dts/kirkwood-c200-v1.dts
> new file mode 100644
> index 000000000000..f59ff7578dfc
> --- /dev/null
> +++ b/arch/arm/boot/dts/kirkwood-c200-v1.dts
> @@ -0,0 +1,310 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Ctera C200 V1 Board Description
> + * Copyright 2021-2022 Pawel Dembicki <paweldembicki at gmail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "kirkwood.dtsi"
> +#include "kirkwood-6281.dtsi"
> +#include <dt-bindings/leds/common.h>
> +
> +/ {
> +	model = "Ctera C200 V1";
> +	compatible = "ctera,c200-v1", "marvell,kirkwood-88f6281", "marvell,kirkwood";
> +
> +	chosen {
> +		bootargs = "console=ttyS0,115200";
> +		stdout-path = &uart0;
> +	};
> +
> +	memory at 0 {
> +		device_type = "memory";
> +		reg = <0x00000000 0x20000000>;
> +	};
> +
> +	keys {
> +		compatible = "gpio-keys";
> +		pinctrl-0 = <&pmx_buttons>;
> +		pinctrl-names = "default";
> +
> +		power {
> +			label = "Power Button";
> +			linux,code = <KEY_POWER>;
> +			gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
> +		};
> +
> +		reset {
> +			label = "Reset Button";
> +			linux,code = <KEY_RESTART>;
> +			gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		usb1 {
> +			label = "USB1 Button";
> +			linux,code = <BTN_0>;
> +			gpios = <&gpio0 28 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		usb2 {
> +			label = "USB2 Button";
> +			linux,code = <BTN_1>;
> +			gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
> +		};
> +	};
> +
> +	gpio-poweroff {
> +		compatible = "gpio-poweroff";
> +		pinctrl-0 = <&pmx_poweroff>;
> +		pinctrl-names = "default";
> +		gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +		pinctrl-0 = <&pmx_leds>;
> +		pinctrl-names = "default";
> +
> +		led-0 {
> +			function = LED_FUNCTION_DISK;
> +			function-enumerator = <2>;
> +			color = <LED_COLOR_ID_RED>;
> +			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-1 {
> +			function = LED_FUNCTION_DISK;
> +			function-enumerator = <1>;
> +			color = <LED_COLOR_ID_GREEN>;
> +			gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-2 {
> +			function = LED_FUNCTION_DISK;
> +			function-enumerator = <2>;
> +			color = <LED_COLOR_ID_GREEN>;
> +			gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-3 {
> +			function = LED_FUNCTION_DISK;
> +			function-enumerator = <1>;
> +			color = <LED_COLOR_ID_RED>;
> +			gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-4 {
> +			function = LED_FUNCTION_STATUS;
> +			color = <LED_COLOR_ID_RED>;
> +			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-5 {
> +			function = LED_FUNCTION_STATUS;
> +			color = <LED_COLOR_ID_GREEN>;
> +			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-6 {
> +			function = LED_FUNCTION_INDICATOR;
> +			color = <LED_COLOR_ID_BLUE>;
> +			gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-7 {
> +			function = LED_FUNCTION_DISK_ERR;
> +			color = <LED_COLOR_ID_RED>;
> +			gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-8 {
> +			function = LED_FUNCTION_DISK_ERR;
> +			color = <LED_COLOR_ID_GREEN>;
> +			gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-9 {
> +			function = LED_FUNCTION_USB;
> +			function-enumerator = <1>;
> +			color = <LED_COLOR_ID_RED>;
> +			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-10 {
> +			function = LED_FUNCTION_USB;
> +			function-enumerator = <1>;
> +			color = <LED_COLOR_ID_GREEN>;
> +			gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
> +			linux,default-trigger = "usbport";
> +			trigger-sources = <&hub_port2>;
> +		};
> +
> +		led-11 {
> +			function = LED_FUNCTION_USB;
> +			function-enumerator = <2>;
> +			color = <LED_COLOR_ID_RED>;
> +			gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
> +		};
> +
> +		led-12 {
> +			function = LED_FUNCTION_USB;
> +			function-enumerator = <2>;
> +			color = <LED_COLOR_ID_GREEN>;
> +			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
> +			linux,default-trigger = "usbport";
> +			trigger-sources = <&hub_port1>;
> +		};
> +	};
> +};
> +
> +&eth0 {
> +	status = "okay";
> +};
> +
> +&eth0port {
> +	phy-handle = <&ethphy9>;
> +};
> +
> +&i2c0 {
> +	status = "okay";
> +
> +	rtc at 30 {
> +		compatible = "s35390a";
> +		reg = <0x30>;
> +	};
> +
> +	lm63 at 4c {
> +		compatible = "national,lm63";
> +		reg = <0x4c>;
> +	};
> +};
> +
> +&mdio {
> +	status = "okay";
> +
> +	ethphy9: ethernet-phy at 9 {
> +		reg = <9>;
> +	};
> +};
> +
> +&nand {
> +	status = "okay";
> +	chip-delay = <40>;
> +
> +	partition at 0 {
> +		label = "uboot";
> +		reg = <0x0000000 0x200000>;
> +	};
> +
> +	partition at 200000 {
> +		label = "certificate";
> +		reg = <0x0200000 0x100000>;
> +	};
> +
> +	partition at 300000 {
> +		label = "preset_cfg";
> +		reg = <0x0300000 0x100000>;
> +	};
> +
> +	partition at 400000 {
> +		label = "dev_params";
> +		reg = <0x0400000 0x100000>;
> +	};
> +
> +	partition at 500000 {
> +		label = "active_bank";
> +		reg = <0x0500000 0x0100000>;
> +	};
> +
> +	partition at 600000 {
> +		label = "magic";
> +		reg = <0x0600000 0x0100000>;
> +	};
> +
> +	partition at 700000 {
> +		label = "bank1";
> +		reg = <0x0700000 0x2800000>;
> +	};
> +
> +	partition at 2f00000 {
> +		label = "bank2";
> +		reg = <0x2f00000 0x2800000>;
> +	};
> +
> +	/* 0x5700000-0x5a00000 undefined in vendor firmware */
> +
> +	partition at 5a00000 {
> +		label = "reserved";
> +		reg = <0x5a00000 0x2000000>;
> +	};
> +
> +	partition at 7a00000 {
> +		label = "rootfs";
> +		reg = <0x7a00000 0x8600000>;
> +	};
> +};
> +
> +&pinctrl {
> +	/* Buzzer gpios are connected to two pins of buzzer.
> +	 * This buzzer require a modulated signal from gpio.
> +	 * Leave it as is due lack of proper driver.
> +	 */

Thanks for adding a comment. So you need something like a PWM driving
it? Have you tried playing with drivers/input/misc/pwm-beeper.c ?
Some of the mvebu family have a simple PWM functionality as part of
the GPIO controller. I don't remember if kirkwood has this.

    Andrew



More information about the linux-arm-kernel mailing list