Commit Graph

28 Commits

Author SHA1 Message Date
Jonas Gorski
5abe49b74e b53: reverse duplex bit meaning for IMP state override register
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44875 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-03-18 10:44:15 +00:00
Jonas Gorski
309b8df125 b53: global config is part of the management page, not the control page
It will now actually enable the mib counters instead of enabling rx/tx for
the first switch port.

Reported-by: Daniel Gonzalez <dgcbueu@gmail.com>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44788 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-03-15 14:19:28 +00:00
Jonas Gorski
aa4d5abef0 b53: fix mmap register read/writes > 32 bit
For bcm63xx integrated switches, broadcom changed the data endianess
to match the system endianess. But this only applies to within one word,
which causes 48/64 bit values to be still split into their "litte endian"
groups.

E.g. 48 bit values (with 5 being the most significant byte) aligned

0x00 ..01  or   0123
0x04 2345       45..

will become

0x00 ..10 resp. 3210
0x04 5432       54..

Likewise for 64 bit values.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44568 3c298f89-4303-0410-b956-a3cf2f4a3e73
2015-02-27 17:40:17 +00:00
Hauke Mehrtens
fe902ca051 b53: hardcode reset GPIO for Linksys WRT300N 1.1
According to the thread https://forum.openwrt.org/viewtopic.php?id=48281
b53 uses GPIO 7:
[    4.470000] b53_common: [DBG] b53_switch_reset_gpio using 7
and causes device to self-reboot. GPIO 8 was found in CFE boot log:
"Reset switch via GPIO 8 ..."

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41526 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-07-06 11:40:51 +00:00
Jonas Gorski
d6bd83b3b5 b53: Make b53_switch_init static
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Patchwork: http://patchwork.openwrt.org/patch/4869/
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39683 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-02-22 11:16:58 +00:00
Jonas Gorski
46c26870ba b53: Add BCM53128 switch support
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Patchwork: http://patchwork.openwrt.org/patch/4867/
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39682 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-02-22 11:16:56 +00:00
Hauke Mehrtens
e6007e192a b53: use drvdata to store driver data
we should not abuse the platform_data pointer.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39354 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-01-20 20:01:22 +00:00
Hauke Mehrtens
6bb0e2caf4 b53: make b53_switch_reset_gpio() static
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39353 3c298f89-4303-0410-b956-a3cf2f4a3e73
2014-01-20 19:07:18 +00:00
Hauke Mehrtens
80e55b973f kernel: b53: fix untagged shift for BCM5365
The BCM5365 needs a shift of 7 bits and not 6 bits like the BCM5325 for 
the untagged ports.

Thank you Russell for reporting this and testing the patch.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38793 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-11-13 18:04:39 +00:00
Hauke Mehrtens
42f929f6db kernel: b53: add initial support for switches in BCM5301X
This is also known as BCM470{7,8,9}.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38712 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-11-10 23:29:59 +00:00
Hauke Mehrtens
1e03d9f0ee kernel: b53: add switch name into printk when it fails.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38307 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-10-06 22:35:28 +00:00
Hauke Mehrtens
8e9dab5d1c kernel: b53: add Register Access Bridge Registers (SRAB) interface
The SRAB interface is used on BCM4707 and BCM5301X SoCs.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38198 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-09-25 21:44:28 +00:00
Hauke Mehrtens
ac3e4a1200 kernel: b53: detect revision of BCM5325
The revision is stored in a different register than it is in other 
Broadcom switches.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37995 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-09-15 13:30:49 +00:00
Hauke Mehrtens
593a7b7c77 kernel: b53: fix vlan write for BCM5325 revison 3+
These switches are integrated in some recent BCM53XX and BCM47XX SoCs
like the BCM53572.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37994 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-09-15 13:29:14 +00:00
Hauke Mehrtens
38484f47f2 kernel: b53: use hard coded switch reset gpio on some boards.
The Linksys wrt310n v1 does not have a robo_reset config variable in 
nvram, but GPIO Pin 8 is the pin needed for resetting the external 
switch, Linksys hard coded it into their source code.

Thank you Devastator for testing.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37988 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-09-14 16:17:36 +00:00
Hauke Mehrtens
1a3dd5a001 kernel: b53: add soft reset for BCM539x switches
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37987 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-09-14 16:14:02 +00:00
Jonas Gorski
df430c20c5 kernel: b53: support phy ids for BCM5365
BCM5365 (and probably other older variants) use a different phy id, so
the phy driver never attached for them.
Fix this by adding the appropriate phy id to the fixup and the phy
driver.

Reported-by: Russell Senior <russell@personaltelco.net>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37906 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-09-05 20:30:34 +00:00
Hauke Mehrtens
4fb01f7d91 kernel: b53: allow access the MIB counters on BCM5365
b53_no_ops has no elements and b53_port_ops has one element, this makes 
the code access some random memory when trying to access the mib 
counter functions.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37895 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-09-04 16:15:10 +00:00
Hauke Mehrtens
7b7322f1f2 kernel: b53: use devm_gpio_request_one() to request gpio
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37648 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-01 20:46:56 +00:00
Hauke Mehrtens
7e3141d846 kernel: b53: add support for GPIO reset
This is needed for some switches used on bcm47xx SoCs like the one on the Asus RT-N66U.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37645 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-08-01 19:05:34 +00:00
Hauke Mehrtens
4cd2167005 brcm47xx: use b53 phy driver for the switch in kernel 3.10
This makes it possible to use swconfig to controll the switch.

This was tested with devices using b43 and bgmac.
This was not tested on devices using tg3.
This does not support the adm switch used in some very old devices.


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37304 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-07-14 14:11:17 +00:00
Hauke Mehrtens
8a7edb5896 kernel: b53: use correct oops for bcm5365 switch
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36589 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-05-09 20:01:58 +00:00
Jonas Gorski
45d8b5166b generic: b53: clear SM_SW_FWD_MODE unconditionally when enabling VLAN
Setting this bit stops BCM53125 (bgmac actually) from receiving any
packets. This bit is cleared conditionally in b53_switch_reset and it
seems the same is done in bcmrobo.c which never sets that bit again.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35723 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-21 11:45:38 +00:00
Jonas Gorski
1dc038ecb4 generic: b53: remove empty spaces
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35722 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-21 11:45:36 +00:00
Jonas Gorski
c5bae90408 generic: b53: fix reverted error check in probe
b53_switch_detect returns value returned by b53_read8, which is 0 for
success. So fail (and return error) only if b53_switch_detect returned
something else than 0. This fixes supported and advertising being zeros
for MDIO access.

Cc: Jonas Gorski <jogo@openwrt.org>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35534 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-02-10 12:31:36 +00:00
Hauke Mehrtens
2fe7bc5108 kernel: b53: the b53 spi driver depends on spi
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35340 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-01-27 21:39:53 +00:00
Hauke Mehrtens
16d7ea5f38 kernel: remove __devinit, __devexit and __devexit_p for kernel 3.8
These attributes where removed with kernel 3.8 and are now causing compile errors.


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35328 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-01-27 17:48:48 +00:00
Jonas Gorski
793f269e52 generic: add b53 swconfig switch driver
Add swconfig switch driver for Broadcom BCM53XX switch chips. Supports
switches connected through MDIO, SPI or memory mapped registers, and
supports BCM5325, BCM539x, BCM531x5 and the BCM63XX internal switch
chips.

Tested are BCM5325 trough MDIO, BCM53115 through SPI, and BCM6328.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35305 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-01-23 10:12:33 +00:00