diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 5bf6d85639..801cb5d79d 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -52,6 +52,7 @@ dtb-$(CONFIG_ARCH_IPQ40xx) += ipq40xx-dk01-c1.dtb \ ipq40xx-dk07-c1.dtb \ ipq40xx-dk07-c2.dtb \ ipq40xx-dk07-c3.dtb \ + ipq40xx-dk07-c4.dtb \ ipq40xx-dk01-s1.dtb \ ipq40xx-dk06-c1.dtb diff --git a/arch/arm/dts/ipq40xx-dk07-c4.dts b/arch/arm/dts/ipq40xx-dk07-c4.dts new file mode 100644 index 0000000000..eb032efda7 --- /dev/null +++ b/arch/arm/dts/ipq40xx-dk07-c4.dts @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2018, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +/dts-v1/; +#include "ipq40xx-dk07.dtsi" +/ { + machid = <0x8010306>; + ddr_size = <512>; + config_name = "config@ap.dk07.1-c4"; + + spi { + status = "ok"; + spi_gpio { + gpio1 { + gpio = <12>; + func = <1>; + pull = ; + drvstr = ; + oe = ; + vm = ; + od_en = ; + pu_res = ; + }; + + gpio2 { + gpio = <13>; + func = <1>; + pull = ; + drvstr = ; + oe = ; + vm = ; + od_en = ; + pu_res = ; + }; + + gpio3 { + gpio = <14>; + func = <1>; + pull = ; + drvstr = ; + oe = ; + vm = ; + od_en = ; + pu_res = ; + }; + + gpio4 { + gpio = <15>; + func = <1>; + pull = ; + drvstr = ; + oe = ; + vm = ; + od_en = ; + pu_res = ; + }; + }; + }; +}; diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h index 70ae2744dc..aa021fa5b2 100644 --- a/arch/arm/include/asm/mach-types.h +++ b/arch/arm/include/asm/mach-types.h @@ -1134,6 +1134,7 @@ extern unsigned int __machine_arch_type; #define MACH_TYPE_IPQ40XX_AP_DK07_1_C1 0x8010006 #define MACH_TYPE_IPQ40XX_AP_DK07_1_C2 0x8010106 #define MACH_TYPE_IPQ40XX_AP_DK07_1_C3 0x8010206 +#define MACH_TYPE_IPQ40XX_AP_DK07_1_C4 0x8010306 #define MACH_TYPE_IPQ40XX_DB_DK01_1_C1 0x1010002 #define MACH_TYPE_IPQ40XX_DB_DK02_1_C1 0x1010003 #define MACH_TYPE_IPQ40XX_TB832 0x1010004 diff --git a/board/qca/arm/ipq40xx/ipq40xx.c b/board/qca/arm/ipq40xx/ipq40xx.c index 43d7077053..63170e1e63 100644 --- a/board/qca/arm/ipq40xx/ipq40xx.c +++ b/board/qca/arm/ipq40xx/ipq40xx.c @@ -222,6 +222,7 @@ int board_eth_init(bd_t *bis) case MACH_TYPE_IPQ40XX_AP_DK07_1_C1: case MACH_TYPE_IPQ40XX_AP_DK07_1_C2: case MACH_TYPE_IPQ40XX_AP_DK07_1_C3: + case MACH_TYPE_IPQ40XX_AP_DK07_1_C4: /* 8075 out of reset */ mdelay(1); gpio_set_value(41, 1); diff --git a/drivers/net/ipq40xx/ipq40xx_ess_sw.c b/drivers/net/ipq40xx/ipq40xx_ess_sw.c index 326359baf0..f76efb74ca 100644 --- a/drivers/net/ipq40xx/ipq40xx_ess_sw.c +++ b/drivers/net/ipq40xx/ipq40xx_ess_sw.c @@ -79,6 +79,7 @@ int ipq40xx_ess_sw_init(ipq40xx_edma_board_cfg_t *cfg) case MACH_TYPE_IPQ40XX_AP_DK07_1_C1: case MACH_TYPE_IPQ40XX_AP_DK07_1_C2: case MACH_TYPE_IPQ40XX_AP_DK07_1_C3: + case MACH_TYPE_IPQ40XX_AP_DK07_1_C4: ipq40xx_ess_sw_wr(S17_P0LOOKUP_CTRL_REG, 0x140000); ipq40xx_ess_sw_wr(S17_P1LOOKUP_CTRL_REG, 0x140000);