[U-Boot] [PATCH 09/12] ARM: kirkwood: Add device-tree for nsa310s

bodhi bodhi mibodhi at gmail.com
Wed May 9 18:27:07 UTC 2018


Hi Chris,

What we have in Linux mainline is Zyxel NSA310 (Marvell 88f6281). The Zyxel
NSA310S (Marvell 88f6702) is actually a different box, which has not been
mainlined yet.

By the way, there are 3 variations of the Zyxel NSA310 box. This box has
some combination of: red USB Led, lm85 sensor, adt7476 sensor that make
them slighly different. The mainlined NSA310 DTS is for the one with adt7476
sensor.

Regards
bodhi


On Tue, May 8, 2018 at 3:34 AM, Chris Packham <judge.packham at gmail.com>
wrote:

> Import the dts files from Linux 4.17 and enable CONFIG_OF_CONTROL.
>
> Signed-off-by: Chris Packham <judge.packham at gmail.com>
> ---
>
>  arch/arm/dts/kirkwood-nsa310.dts         | 139 ++++++++++++++++++++
>  arch/arm/dts/kirkwood-nsa3x0-common.dtsi | 158 +++++++++++++++++++++++
>  configs/nsa310s_defconfig                |   3 +-
>  3 files changed, 299 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/dts/kirkwood-nsa310.dts
>  create mode 100644 arch/arm/dts/kirkwood-nsa3x0-common.dtsi
>
> diff --git a/arch/arm/dts/kirkwood-nsa310.dts b/arch/arm/dts/kirkwood-
> nsa310.dts
> new file mode 100644
> index 000000000000..9b861c2e76c5
> --- /dev/null
> +++ b/arch/arm/dts/kirkwood-nsa310.dts
> @@ -0,0 +1,139 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/dts-v1/;
> +
> +#include "kirkwood-nsa3x0-common.dtsi"
> +
> +/ {
> +       compatible = "zyxel,nsa310", "marvell,kirkwood-88f6281",
> "marvell,kirkwood";
> +
> +       memory {
> +               device_type = "memory";
> +               reg = <0x00000000 0x10000000>;
> +       };
> +
> +       chosen {
> +               bootargs = "console=ttyS0,115200";
> +               stdout-path = &uart0;
> +       };
> +
> +       ocp at f1000000 {
> +               pinctrl: pin-controller at 10000 {
> +                       pinctrl-0 = <&pmx_unknown>;
> +                       pinctrl-names = "default";
> +
> +                       pmx_led_esata_green: pmx-led-esata-green {
> +                               marvell,pins = "mpp12";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_led_esata_red: pmx-led-esata-red {
> +                               marvell,pins = "mpp13";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_led_usb_green: pmx-led-usb-green {
> +                               marvell,pins = "mpp15";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_led_usb_red: pmx-led-usb-red {
> +                               marvell,pins = "mpp16";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_led_sys_green: pmx-led-sys-green {
> +                               marvell,pins = "mpp28";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_led_sys_red: pmx-led-sys-red {
> +                               marvell,pins = "mpp29";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_led_hdd_green: pmx-led-hdd-green {
> +                               marvell,pins = "mpp41";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_led_hdd_red: pmx-led-hdd-red {
> +                               marvell,pins = "mpp42";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_unknown: pmx-unknown {
> +                               marvell,pins = "mpp44";
> +                               marvell,function = "gpio";
> +                       };
> +
> +               };
> +
> +               i2c at 11000 {
> +                       status = "okay";
> +
> +                       adt7476: adt7476a at 2e {
> +                               compatible = "adi,adt7476";
> +                               reg = <0x2e>;
> +                       };
> +               };
> +       };
> +
> +       gpio-leds {
> +               compatible = "gpio-leds";
> +               pinctrl-0 = <&pmx_led_esata_green &pmx_led_esata_red
> +                            &pmx_led_usb_green &pmx_led_usb_red
> +                            &pmx_led_sys_green &pmx_led_sys_red
> +                            &pmx_led_copy_green &pmx_led_copy_red
> +                            &pmx_led_hdd_green &pmx_led_hdd_red>;
> +               pinctrl-names = "default";
> +
> +               green-sys {
> +                       label = "nsa310:green:sys";
> +                       gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
> +               };
> +               red-sys {
> +                       label = "nsa310:red:sys";
> +                       gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
> +               };
> +               green-hdd {
> +                       label = "nsa310:green:hdd";
> +                       gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
> +               };
> +               red-hdd {
> +                       label = "nsa310:red:hdd";
> +                       gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
> +               };
> +               green-esata {
> +                       label = "nsa310:green:esata";
> +                       gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
> +               };
> +               red-esata {
> +                       label = "nsa310:red:esata";
> +                       gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
> +               };
> +               green-usb {
> +                       label = "nsa310:green:usb";
> +                       gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
> +               };
> +               red-usb {
> +                       label = "nsa310:red:usb";
> +                       gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
> +               };
> +               green-copy {
> +                       label = "nsa310:green:copy";
> +                       gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
> +               };
> +               red-copy {
> +                       label = "nsa310:red:copy";
> +                       gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
> +               };
> +       };
> +};
> +
> +&pciec {
> +        status = "okay";
> +};
> +
> +&pcie0 {
> +       status = "okay";
> +};
> diff --git a/arch/arm/dts/kirkwood-nsa3x0-common.dtsi
> b/arch/arm/dts/kirkwood-nsa3x0-common.dtsi
> new file mode 100644
> index 000000000000..2c4037b07282
> --- /dev/null
> +++ b/arch/arm/dts/kirkwood-nsa3x0-common.dtsi
> @@ -0,0 +1,158 @@
> +// SPDX-License-Identifier: GPL-2.0
> +#include "kirkwood.dtsi"
> +#include "kirkwood-6281.dtsi"
> +
> +/ {
> +       model = "ZyXEL NSA310";
> +
> +       ocp at f1000000 {
> +               pinctrl: pin-controller at 10000 {
> +
> +                       pmx_usb_power: pmx-usb-power {
> +                               marvell,pins = "mpp21";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_pwr_off: pmx-pwr-off {
> +                               marvell,pins = "mpp48";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_btn_reset: pmx-btn-reset {
> +                               marvell,pins = "mpp36";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_btn_copy: pmx-btn-copy {
> +                               marvell,pins = "mpp37";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_btn_power: pmx-btn-power {
> +                               marvell,pins = "mpp46";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_led_copy_green: pmx-led-copy-green {
> +                               marvell,pins = "mpp39";
> +                               marvell,function = "gpio";
> +                       };
> +
> +                       pmx_led_copy_red: pmx-led-copy-red {
> +                               marvell,pins = "mpp40";
> +                               marvell,function = "gpio";
> +                       };
> +               };
> +
> +               serial at 12000 {
> +                       status = "ok";
> +               };
> +
> +               sata at 80000 {
> +                       status = "okay";
> +                       nr-ports = <2>;
> +               };
> +       };
> +
> +       gpio_poweroff {
> +               compatible = "gpio-poweroff";
> +               pinctrl-0 = <&pmx_pwr_off>;
> +               pinctrl-names = "default";
> +               gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>;
> +       };
> +
> +       gpio_keys {
> +               compatible = "gpio-keys";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               pinctrl-0 = <&pmx_btn_reset &pmx_btn_copy &pmx_btn_power>;
> +               pinctrl-names = "default";
> +
> +               power {
> +                       label = "Power Button";
> +                       linux,code = <KEY_POWER>;
> +                       gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
> +               };
> +               copy {
> +                       label = "Copy Button";
> +                       linux,code = <KEY_COPY>;
> +                       gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
> +               };
> +               reset {
> +                       label = "Reset Button";
> +                       linux,code = <KEY_RESTART>;
> +                       gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
> +               };
> +       };
> +
> +
> +       regulators {
> +               compatible = "simple-bus";
> +               #address-cells = <1>;
> +               #size-cells = <0>;
> +               pinctrl-0 = <&pmx_usb_power>;
> +               pinctrl-names = "default";
> +
> +               usb0_power: regulator at 1 {
> +                       compatible = "regulator-fixed";
> +                       reg = <1>;
> +                       regulator-name = "USB Power";
> +                       regulator-min-microvolt = <5000000>;
> +                       regulator-max-microvolt = <5000000>;
> +                       regulator-always-on;
> +                       regulator-boot-on;
> +                       gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>;
> +               };
> +       };
> +};
> +
> +&nand {
> +       status = "okay";
> +       chip-delay = <35>;
> +
> +       partition at 0 {
> +               label = "uboot";
> +               reg = <0x0000000 0x0100000>;
> +               read-only;
> +       };
> +       partition at 100000 {
> +               label = "uboot_env";
> +               reg = <0x0100000 0x0080000>;
> +       };
> +       partition at 180000 {
> +               label = "key_store";
> +               reg = <0x0180000 0x0080000>;
> +       };
> +       partition at 200000 {
> +               label = "info";
> +               reg = <0x0200000 0x0080000>;
> +       };
> +       partition at 280000 {
> +               label = "etc";
> +               reg = <0x0280000 0x0a00000>;
> +       };
> +       partition at c80000 {
> +               label = "kernel_1";
> +               reg = <0x0c80000 0x0a00000>;
> +       };
> +       partition at 1680000 {
> +               label = "rootfs1";
> +               reg = <0x1680000 0x2fc0000>;
> +       };
> +       partition at 4640000 {
> +               label = "kernel_2";
> +               reg = <0x4640000 0x0a00000>;
> +       };
> +       partition at 5040000 {
> +               label = "rootfs2";
> +               reg = <0x5040000 0x2fc0000>;
> +       };
> +};
> +
> +&pciec {
> +        status = "okay";
> +};
> +
> +&pcie0 {
> +       status = "okay";
> +};
> diff --git a/configs/nsa310s_defconfig b/configs/nsa310s_defconfig
> index 2529687414fa..d3ea933d378b 100644
> --- a/configs/nsa310s_defconfig
> +++ b/configs/nsa310s_defconfig
> @@ -2,6 +2,7 @@ CONFIG_ARM=y
>  CONFIG_KIRKWOOD=y
>  CONFIG_SYS_TEXT_BASE=0x600000
>  CONFIG_TARGET_NSA310S=y
> +CONFIG_DEFAULT_DEVICE_TREE="kirkwood-nsa310"
>  CONFIG_BOOTDELAY=3
>  # CONFIG_DISPLAY_BOARDINFO is not set
>  CONFIG_HUSH_PARSER=y
> @@ -21,6 +22,7 @@ CONFIG_CMD_JFFS2=y
>  CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:0xe0000@
> 0x0(uboot),0x20000 at 0xe0000(uboot_env),0x100000 at 0x100000(
> second_stage_uboot),- at 0x200000(root)"
>  CONFIG_CMD_UBI=y
>  CONFIG_ISO_PARTITION=y
> +CONFIG_OF_CONTROL=y
>  CONFIG_ENV_IS_IN_NAND=y
>  CONFIG_MVSATA_IDE=y
>  # CONFIG_MMC is not set
> @@ -29,4 +31,3 @@ CONFIG_USB=y
>  CONFIG_USB_EHCI_HCD=y
>  CONFIG_USB_STORAGE=y
>  CONFIG_LZMA=y
> -CONFIG_OF_LIBFDT=y
> --
> 2.17.0
>
>


More information about the U-Boot mailing list