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

Chris Packham judge.packham at gmail.com
Thu May 10 00:51:32 UTC 2018


On Thu, May 10, 2018 at 6:27 AM bodhi bodhi <mibodhi at gmail.com> wrote:

> 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.


Ah OK. I did see 2 boards in the kernel, this was one of the "educated
guesses" which turns out not to to be a good guess. For now I'll just drop
this conversion from the series.


> 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 at 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