ipq: Moved board params structure to qca common
Change-Id: I58ac138f4585a64bf1a89302ec212afe133c2101
Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
diff --git a/arch/arm/include/asm/arch-qca-common/qca_common.h b/arch/arm/include/asm/arch-qca-common/qca_common.h
index fd5667e..376fdd9 100644
--- a/arch/arm/include/asm/arch-qca-common/qca_common.h
+++ b/arch/arm/include/asm/arch-qca-common/qca_common.h
@@ -15,6 +15,7 @@
#define ___QCA_COMMON_H_
#include <asm/u-boot.h>
#include <asm/arch-qca-common/smem.h>
+#include <asm/arch-qca-common/gpio.h>
#ifdef CONFIG_ARCH_IPQ5018
#include <asm/arch-ipq5018/clk.h>
@@ -63,6 +64,23 @@
u32 val[2];
} add_node_t;
+typedef struct qca_gpio_config gpio_func_data_t;
+
+typedef struct {
+ gpio_func_data_t *gpio;
+ unsigned int gpio_count;
+}spi_cfg_t;
+
+typedef struct {
+ gpio_func_data_t *gpio;
+ unsigned int gpio_count;
+}qpic_nand_cfg_t;
+
+typedef struct {
+ spi_cfg_t spi_nor_cfg;
+ qpic_nand_cfg_t qpic_nand_cfg;
+}board_param_t;
+
int qca_mmc_init(bd_t *, qca_mmc *);
#if defined(CONFIG_QCA_MMC) && !defined(CONFIG_SDHCI_SUPPORT)
diff --git a/arch/arm/include/asm/arch-qca-common/qpic_nand.h b/arch/arm/include/asm/arch-qca-common/qpic_nand.h
index 5a802c3..b05ee86 100644
--- a/arch/arm/include/asm/arch-qca-common/qpic_nand.h
+++ b/arch/arm/include/asm/arch-qca-common/qpic_nand.h
@@ -697,6 +697,6 @@
struct read_stats stats[QPIC_NAND_MAX_CWS_IN_PAGE];
};
-void qpic_nand_init(void);
+void qpic_nand_init(qpic_nand_cfg_t *qpic_nand_cfg);
#endif
diff --git a/board/qca/arm/ipq40xx/ipq40xx.c b/board/qca/arm/ipq40xx/ipq40xx.c
index 5ac247d..247aef2 100644
--- a/board/qca/arm/ipq40xx/ipq40xx.c
+++ b/board/qca/arm/ipq40xx/ipq40xx.c
@@ -158,7 +158,7 @@
{
int gpio_node;
- qpic_nand_init();
+ qpic_nand_init(NULL);
gpio_node = fdt_path_offset(gd->fdt_blob, "/spi/spi_gpio");
if (gpio_node >= 0) {
diff --git a/board/qca/arm/ipq40xx/ipq40xx.h b/board/qca/arm/ipq40xx/ipq40xx.h
index 37ebf01..3a83913 100644
--- a/board/qca/arm/ipq40xx/ipq40xx.h
+++ b/board/qca/arm/ipq40xx/ipq40xx.h
@@ -54,18 +54,6 @@
} ipq40xx_edma_board_cfg_t;
typedef struct {
- int gpio;
- unsigned int func;
- unsigned int out;
- unsigned int pull;
- unsigned int drvstr;
- unsigned int oe;
- unsigned int gpio_vm;
- unsigned int gpio_od_en;
- unsigned int gpio_pu_res;
-} gpio_func_data_t;
-
-typedef struct {
unsigned int uart_dm_base;
gpio_func_data_t *dbg_uart_gpio;
} uart_cfg_t;
diff --git a/board/qca/arm/ipq40xx/ipq40xx_board_param.h b/board/qca/arm/ipq40xx/ipq40xx_board_param.h
index a8c7b04..efaf946 100644
--- a/board/qca/arm/ipq40xx/ipq40xx_board_param.h
+++ b/board/qca/arm/ipq40xx/ipq40xx_board_param.h
@@ -26,9 +26,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_10MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 24,
@@ -36,9 +36,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_10MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 25,
@@ -46,9 +46,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_10MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 26,
@@ -56,9 +56,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_10MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 27,
@@ -66,9 +66,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 28,
@@ -76,9 +76,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_10MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 29,
@@ -86,9 +86,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_10MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 30,
@@ -96,9 +96,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_10MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 31,
@@ -106,9 +106,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_10MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 32,
@@ -116,9 +116,9 @@
.pull = GPIO_NO_PULL,
.drvstr = GPIO_10MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
};
@@ -130,9 +130,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 13,
@@ -140,9 +140,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 14,
@@ -150,9 +150,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 15,
@@ -160,9 +160,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
};
@@ -173,9 +173,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 53,
@@ -183,9 +183,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 54,
@@ -193,9 +193,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 55,
@@ -203,9 +203,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 56,
@@ -213,9 +213,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 57,
@@ -223,9 +223,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 58,
@@ -233,9 +233,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 59,
@@ -243,9 +243,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 60,
@@ -253,9 +253,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 61,
@@ -263,9 +263,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 62,
@@ -273,9 +273,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 63,
@@ -283,9 +283,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 64,
@@ -293,9 +293,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 65,
@@ -303,9 +303,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 66,
@@ -313,9 +313,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 67,
@@ -323,9 +323,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 68,
@@ -333,9 +333,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 69,
@@ -343,9 +343,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
};
@@ -357,9 +357,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 23,
@@ -367,9 +367,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 24,
@@ -377,9 +377,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 25,
@@ -387,9 +387,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 26,
@@ -397,9 +397,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 27,
@@ -407,9 +407,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 28,
@@ -417,9 +417,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 29,
@@ -427,9 +427,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 30,
@@ -437,9 +437,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 31,
@@ -447,9 +447,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 32,
@@ -457,9 +457,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
{
.gpio = 33,
@@ -467,9 +467,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_16MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_DISABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES0
+ .vm = GPIO_VM_DISABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES0
},
};
@@ -480,9 +480,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 7,
@@ -490,9 +490,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 47,
@@ -500,9 +500,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_ENABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
};
@@ -513,9 +513,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 7,
@@ -523,9 +523,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 67,
@@ -533,9 +533,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_ENABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
};
@@ -546,9 +546,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 7,
@@ -556,9 +556,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 19,
@@ -566,9 +566,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_ENABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
};
@@ -579,9 +579,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 7,
@@ -589,9 +589,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 41,
@@ -599,9 +599,9 @@
.pull = GPIO_PULL_DOWN,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_ENABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
};
@@ -612,9 +612,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 7,
@@ -622,9 +622,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
};
@@ -635,9 +635,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 53,
@@ -645,9 +645,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 59,
@@ -655,9 +655,9 @@
.pull = GPIO_NO_PULL,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_ENABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
};
@@ -668,9 +668,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 53,
@@ -678,9 +678,9 @@
.pull = GPIO_PULL_UP,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_DISABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
{
.gpio = 62,
@@ -688,9 +688,9 @@
.pull = GPIO_NO_PULL,
.drvstr = GPIO_2MA,
.oe = GPIO_OE_ENABLE,
- .gpio_vm = GPIO_VM_ENABLE,
- .gpio_od_en = GPIO_OD_DISABLE,
- .gpio_pu_res = GPIO_PULL_RES2
+ .vm = GPIO_VM_ENABLE,
+ .od_en = GPIO_OD_DISABLE,
+ .pu_res = GPIO_PULL_RES2
},
};
diff --git a/board/qca/arm/ipq5018/ipq5018.c b/board/qca/arm/ipq5018/ipq5018.c
index 5e1222c..6890543 100644
--- a/board/qca/arm/ipq5018/ipq5018.c
+++ b/board/qca/arm/ipq5018/ipq5018.c
@@ -510,7 +510,7 @@
void board_nand_init(void)
{
- qpic_nand_init();
+ qpic_nand_init(NULL);
#ifdef CONFIG_QCA_SPI
int gpio_node;
diff --git a/board/qca/arm/ipq6018/ipq6018.c b/board/qca/arm/ipq6018/ipq6018.c
index 559a9ba..bfbcf07 100644
--- a/board/qca/arm/ipq6018/ipq6018.c
+++ b/board/qca/arm/ipq6018/ipq6018.c
@@ -371,7 +371,7 @@
int gpio_node;
#endif
- qpic_nand_init();
+ qpic_nand_init(NULL);
#ifdef CONFIG_QCA_SPI
spi_clock_init();
diff --git a/board/qca/arm/ipq807x/ipq807x.c b/board/qca/arm/ipq807x/ipq807x.c
index b447b12..9c77d86 100644
--- a/board/qca/arm/ipq807x/ipq807x.c
+++ b/board/qca/arm/ipq807x/ipq807x.c
@@ -289,7 +289,7 @@
},
};
-board_ipq807x_param_t gboard_param = {
+board_param_t gboard_param = {
.spi_nor_cfg = {
.gpio = spi_nor_gpio,
.gpio_count = ARRAY_SIZE(spi_nor_gpio),
@@ -762,10 +762,7 @@
int i;
#endif
- for (i = 0; i < gboard_param.qpic_nand_cfg.gpio_count; i++)
- gpio_tlmm_config(&gboard_param.qpic_nand_cfg.gpio[i]);
-
- qpic_nand_init();
+ qpic_nand_init(&gboard_param.qpic_nand_cfg);
#ifdef CONFIG_QCA_SPI
gpio_node = fdt_path_offset(gd->fdt_blob, "/spi/spi_gpio");
diff --git a/board/qca/arm/ipq807x/ipq807x.h b/board/qca/arm/ipq807x/ipq807x.h
index 9ac86cd..b0d3685 100644
--- a/board/qca/arm/ipq807x/ipq807x.h
+++ b/board/qca/arm/ipq807x/ipq807x.h
@@ -306,23 +306,6 @@
extern const char *del_node[];
extern const add_node_t add_fdt_node[];
-typedef struct qca_gpio_config gpio_func_data_t;
-
-typedef struct {
- gpio_func_data_t *gpio;
- unsigned int gpio_count;
-}spi_cfg_t;
-
-typedef struct {
- gpio_func_data_t *gpio;
- unsigned int gpio_count;
-}qpic_nand_cfg_t;
-
-typedef struct {
- spi_cfg_t spi_nor_cfg;
- qpic_nand_cfg_t qpic_nand_cfg;
-}board_ipq807x_param_t;
-
void reset_crashdump(void);
#ifdef CONFIG_PCI_IPQ
void board_pci_init(int id);
diff --git a/drivers/mtd/nand/qpic_nand.c b/drivers/mtd/nand/qpic_nand.c
index 0a36d58..dc1eb49 100644
--- a/drivers/mtd/nand/qpic_nand.c
+++ b/drivers/mtd/nand/qpic_nand.c
@@ -3144,7 +3144,7 @@
static struct nand_chip nand_chip[CONFIG_SYS_MAX_NAND_DEVICE];
-void qpic_nand_init(void)
+void qpic_nand_init(qpic_nand_cfg_t *qpic_nand_cfg)
{
struct mtd_info *mtd;
const struct udevice_id *of_match = qpic_ver_ids;
@@ -3155,6 +3155,7 @@
unsigned char *buf;
struct qpic_nand_init_config config;
fdt_addr_t nand_base;
+ int i;
while (of_match->compatible) {
ret = fdt_node_offset_by_compatible(gd->fdt_blob, 0,
@@ -3188,8 +3189,13 @@
if (ret >= 0) {
qca_gpio_init(ret);
+ } else if (qpic_nand_cfg) {
+ printf("Could not find nand_gpio in dts, using defaults\n");
+ for (i = 0; i < qpic_nand_cfg->gpio_count; i++)
+ gpio_tlmm_config(&qpic_nand_cfg->gpio[i]);
} else {
- printf("Could not find subnode nand_gpio\n");
+ printf("Could not find nand_gpio in dts, no defaults defined\n");
+ return;
}
#ifdef CONFIG_QPIC_SERIAL