firmware/br-ext-chip-ingenic/board/t31/kernel/patches/0009-optional-disable-jz-gm...

72 lines
1.5 KiB
Diff

--- a/arch/mips/xburst/soc-t31/common/gpio.c
+++ b/arch/mips/xburst/soc-t31/common/gpio.c
@@ -85,6 +85,7 @@
#endif
extern int __init gpio_customized_init(void);
extern void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume);
+extern int disable_gmac;
struct jzgpio_state {
unsigned int pxint;
@@ -972,6 +973,15 @@
break;
}
+ if (!strcmp(g->name,"gmac_pb") && disable_gmac){
+ pr_info("Skipping GMAC GPIO setup\n");
+ continue;
+ }
+ if (!strcmp(g->name,"msc1-pB") && !disable_gmac){
+ pr_info("Skipping MSC1_PB GPIO setup\n");
+ continue;
+ }
+
jz = &jz_gpio_chips[g->port];
if (GPIO_AS_FUNC(g->func)) {
if(jz->dev_map[0] & g->pins) {
--- a/arch/mips/xburst/soc-t31/common/platform.c
+++ b/arch/mips/xburst/soc-t31/common/platform.c
@@ -1032,6 +1032,16 @@
*size = ispmem_size;
}
+int disable_gmac = 0;
+EXPORT_SYMBOL(disable_gmac);
+
+static int __init extras_parse(char *str)
+{
+ disable_gmac = 1;
+ return 0;
+}
+__setup("nogmac", extras_parse);
+
#ifndef CONFIG_PROC_FS
#error NOT config procfs
#endif
--- a/drivers/net/ethernet/ingenic/jz_mac_v13.c
+++ b/drivers/net/ethernet/ingenic/jz_mac_v13.c
@@ -2392,8 +2392,11 @@
#define JZ_GMAC_BASE 0xb34b0000
+extern int disable_gmac;
+
static int __init jz_mac_init(void)
{
+if (!disable_gmac){
#ifndef CONFIG_MDIO_GPIO
int ret;
#endif
@@ -2420,6 +2423,11 @@
#endif
}
+else{
+ pr_info("JZ GMAC disabled\n");
+ return -ENODEV;
+}
+}
module_init(jz_mac_init);