aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.18/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch
blob: 1d6b66c199d78faa2a56ff05eaf448b488e73708 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
From b053c5ad4d99d8f025efadd5c8b4bd84ea06eb6f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
Date: Wed, 11 Feb 2015 17:55:32 +0100
Subject: [PATCH FIX] bgmac: fix device initialization on Northstar SoCs
 (condition typo)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

On Northstar (Broadcom's ARM architecture) we need to manually enable
all cores. Code for that is already in place, but the condition for it
was wrong.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
---
Can we have it for 3.20, please?
---
 drivers/net/ethernet/broadcom/bgmac.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

--- a/drivers/net/ethernet/broadcom/bgmac.c
+++ b/drivers/net/ethernet/broadcom/bgmac.c
@@ -1412,6 +1412,7 @@ static void bgmac_mii_unregister(struct
 /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipattach */
 static int bgmac_probe(struct bcma_device *core)
 {
+	struct bcma_chipinfo *ci = &core->bus->chipinfo;
 	struct net_device *net_dev;
 	struct bgmac *bgmac;
 	struct ssb_sprom *sprom = &core->bus->sprom;
@@ -1474,8 +1475,8 @@ static int bgmac_probe(struct bcma_devic
 	bgmac_chip_reset(bgmac);
 
 	/* For Northstar, we have to take all GMAC core out of reset */
-	if (core->id.id == BCMA_CHIP_ID_BCM4707 ||
-	    core->id.id == BCMA_CHIP_ID_BCM53018) {
+	if (ci->id == BCMA_CHIP_ID_BCM4707 ||
+	    ci->id == BCMA_CHIP_ID_BCM53018) {
 		struct bcma_device *ns_core;
 		int ns_gmac;
 
highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
/dts-v1/;

#include "mt7620a.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	compatible = "ralink,mt7620a-soc";
	model = "TP-Link Archer MR200";

	chosen {
		bootargs = "console=ttyS0,115200";
	};

	gpio-leds {
		compatible = "gpio-leds";

		lan {
			label = "mr200:white:lan";
			gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
		};

		wan {
			label = "mr200:white:wan";
			gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
		};

		power {
			label = "mr200:white:power";
			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
		};

		4g {
			label = "mr200:white:4g";
			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
		};

		wps {
			label = "mr200:white:wps";
			gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
		};

		signal1 {
			label = "mr200:white:signal1";
			gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
		};

		signal2 {
			label = "mr200:white:signal2";
			gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
		};

		signal3 {
			label = "mr200:white:signal3";
			gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
		};

		signal4 {
			label = "mr200:white:signal4";
			gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
		};

		wlan {
			label = "mr200:white:wlan";
			gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		reset {
			label = "reset";
			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
			linux,code = <KEY_RESTART>;
		};

		rfkill {
			label = "rfkill";
			gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
			linux,code = <KEY_RFKILL>;
		};
	};

	gpio_export {
		compatible = "gpio-export";
		#size-cells = <0>;

		power_usb {
			gpio-export,name = "power_usb1";
			gpio-export,output = <1>;
			gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
		};
	};

};

&gpio1 {
	status = "okay";
};

&gpio2 {
	status = "okay";
};

&gpio3 {
	status = "okay";
};

&spi0 {
	status = "okay";

	m25p80@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <10000000>;

		partition@0 {
			label = "u-boot";
			reg = <0x0 0x20000>;
			read-only;
		};

		partition@20000 {
			label = "firmware";
			reg = <0x20000 0x7b0000>;
		};

		rom: partition@7d0000 {
			label = "rom";
			reg = <0x7d0000 0x10000>;
			read-only;
		};

		partition@7e0000 {
			label = "romfile";
			reg = <0x7e0000 0x10000>;
			read-only;
		};

		radio: partition@7f0000 {
			label = "radio";
			reg = <0x7f0000 0x10000>;
			read-only;
		};
	};
};

&pinctrl {
	state_default: pinctrl0 {
		gpio {
			ralink,group = "i2c", "uartf", "rgmii1", "rgmii2", "wled", "nd_sd", "ephy", "spi refclk";
			ralink,function = "gpio";
		};
	};
};

&ethernet {
		mtd-mac-address = <&rom 0xf100>;
		mediatek,portmap = "llll";
	};

&ehci {
	status = "okay";
};

&ohci {
	status = "okay";
};

&gsw {
	mediatek,port4 = "ephy";
};

&wmac {
	ralink,mtd-eeprom = <&radio 0>;
};

&pcie {
	status = "okay";

	pcie-bridge {
		mt76@0,0 {
			reg = <0x0000 0 0 0 0>;
			device_type = "pci";
			mediatek,mtd-eeprom = <&radio 32768>;
		};
	};
};