aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
Commit message (Collapse)AuthorAgeFilesLines
* generic: rtl836x: support defered probe on mdio-busChristian Lamparter2018-11-261-5/+9
| | | | | | | | | | | | | | | | On the WNDAP620, the mdio and mdc lines are controlled by the EMAC ethernet device. This results in a hen-vs-egg problem. The rtl8367b driver is probed before the ethernet driver and the mdio-bus is not available yet, which caused the rtl8367b driver to fail. This patch changes the rtl8366_smi_probe_of() function to return -EPROBE_DEFER if the mdio-bus lookup failed and changes rtl8366_smi_probe()'s signature to return the error code back to the callee, so it can propagate back to the kernel. Which, will retry the switch probe at a later time. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* kernel: rtl8366-smi: add Realtek switch management via mii-busFranz Flasch2018-06-251-17/+140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current version of rtl8366-smi module only supports Realtek switch managment via two gpio lines. This adds Realtek switch management via mii_bus. Tested on a Tp-link Archer C2 v1 (Mediatek SoC mt7620a based) dts-file configuration should look like this: rtl8367rb { compatible = "realtek,rtl8367b"; realtek,extif1 = <1 0 1 1 1 1 1 1 2>; mii-bus = <&mdio0>; }; &ethernet { status = "okay"; mtd-mac-address = <&rom 0xf100>; pinctrl-names = "default"; pinctrl-0 = <&rgmii1_pins &rgmii2_pins &mdio_pins>; port@5 { status = "okay"; mediatek,fixed-link = <1000 1 1 1>; phy-mode = "rgmii"; }; mdio0: mdio-bus { status = "okay"; }; }; Signed-off-by: Serge Vasilugin <vasilugin@yandex.ru> Signed-off-by: Franz Flasch <franz.flasch@gmx.at>
* kernel: add reset control support to rtl8366 driverJohn Crispin2018-05-241-4/+15
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* kernel: rtl8366_smi: guard of_mdiobus_register() callJo-Philipp Wich2018-05-111-1/+5
| | | | | | | | Make the call to of_mdiobus_register() dependant on CONFIG_OF to avoid pulling in an unwanted dependency on of_mdio.ko. Fixes: 3dc523f232 kernel: add OF support to rtl8355 driver Signed-off-by: Jo-Philipp Wich <jo@mein.io>
* kernel: add OF support to rtl8355 driverJohn Crispin2018-05-071-1/+10
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* generic: provide get_port_stats() on rtl836x switchesThibaut VARENE2017-09-011-0/+27
| | | | | | | | | | This patch provides a generic switch_dev_ops 'get_port_stats()' callback by taping into the relevant port MIB counters. This callback is used by swconfig_leds led trigger to blink LEDs with port network traffic. Signed-off-by: Thibaut VARENE <hacks@slashdirt.org>
* rtl8366_smi: add linux 4.4 compatibilityFelix Fietkau2017-02-011-4/+9
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* strict_strtoul is obsolete, use kstrtoul insteadJohn Crispin2013-07-271-1/+1
| | | | | | | | based on http://patchwork.openwrt.org/patch/3827/ Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 37562
* generic: fix rtl8366_smi compile warningJohn Crispin2013-04-251-1/+1
| | | | | | | | | drivers/net/phy/rtl8366_smi.c: In function 'rtl8366_sw_set_vlan_ports': drivers/net/phy/rtl8366_smi.c:1125:6: warning: 'pvid' may be used uninitialized in this function [-Wuninitialized] Signed-off-by: John Crispin <blogic@openwrt.org> SVN-Revision: 36442
* generic: rtl8366_smi: only assign pvid if no pvid was set yetJonas Gorski2013-01-181-1/+7
| | | | | | | | | | | | | | Only assign a pvid if the current pvid is 0. Fixes using mixed tagged and untagged traffic on a port and the untagged vlan isn't the last one of which the port is a member. Tested on RTL8366S and RTL8367R. Fixes #8501. Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 35227
* make to rtl8366_smi of binding use gpio_is_validJohn Crispin2012-12-211-1/+1
| | | | SVN-Revision: 34816
* linux: generic: rtl836*: fix compilation with !CONFIG_OFJonas Gorski2012-12-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes the following errors caused by r34682: CC [M] drivers/net/phy/rtl8366_smi.o In file included from drivers/net/phy/rtl8366_smi.c:26:0: drivers/net/phy/rtl8366_smi.h:149:46: warning: 'struct platform_device' declared inside parameter list [enabled by default] drivers/net/phy/rtl8366_smi.h:149:46: warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default] drivers/net/phy/rtl8366_smi.c:1398:65: warning: 'struct platform_device' declared inside parameter list [enabled by default] drivers/net/phy/rtl8366_smi.c: In function 'rtl8366_smi_probe_plat': drivers/net/phy/rtl8366_smi.c:1400:44: error: dereferencing pointer to incomplete type drivers/net/phy/rtl8366_smi.c:1402:11: error: dereferencing pointer to incomplete type drivers/net/phy/rtl8366_smi.c:1403:16: error: dereferencing pointer to incomplete type drivers/net/phy/rtl8366_smi.c: At top level: drivers/net/phy/rtl8366_smi.c:1415:46: warning: 'struct platform_device' declared inside parameter list [enabled by default] drivers/net/phy/rtl8366_smi.c:1415:21: error: conflicting types for 'rtl8366_smi_probe' drivers/net/phy/rtl8366_smi.h:149:21: note: previous declaration of 'rtl8366_smi_probe' was here drivers/net/phy/rtl8366_smi.c: In function 'rtl8366_smi_probe': drivers/net/phy/rtl8366_smi.c:1420:31: error: dereferencing pointer to incomplete type drivers/net/phy/rtl8366_smi.c:1424:10: error: dereferencing pointer to incomplete type drivers/net/phy/rtl8366_smi.c:1425:3: warning: passing argument 1 of 'rtl8366_smi_probe_of' from incompatible pointer type [enabled by default] drivers/net/phy/rtl8366_smi.c:1392:19: note: expected 'struct device_node *' but argument is of type 'struct platform_device *' drivers/net/phy/rtl8366_smi.c:1427:3: warning: passing argument 1 of 'rtl8366_smi_probe_plat' from incompatible pointer type [enabled by default] drivers/net/phy/rtl8366_smi.c:1398:5: note: expected 'struct platform_device *' but argument is of type 'struct platform_device *' drivers/net/phy/rtl8366_smi.c: At top level: drivers/net/phy/rtl8366_smi.c:1438:1: error: conflicting types for 'rtl8366_smi_probe' drivers/net/phy/rtl8366_smi.h:149:21: note: previous declaration of 'rtl8366_smi_probe' was here make[7]: *** [drivers/net/phy/rtl8366_smi.o] Error 1 make[6]: *** [drivers/net/phy] Error 2 make[5]: *** [drivers/net] Error 2 make[4]: *** [drivers] Error 2 Signed-off-by: Jonas Gorski <jogo@openwrt.org> SVN-Revision: 34703
* make rtl8366 driver OF capableJohn Crispin2012-12-151-0/+67
| | | | SVN-Revision: 34682
* generic: rtl8366_smi: increase delay after switch hw resetGabor Juhos2012-08-101-3/+6
| | | | SVN-Revision: 33077
* generic: rtl836x: add hw_reset field to struct rtl8366_smiGabor Juhos2012-08-021-2/+25
| | | | | | | It will be used to start/stop the switch if that is supported by the given board. SVN-Revision: 32943
* generic: rtl8366_smi: use __rtl8366_smi_cleanup instead of gpio_free callsGabor Juhos2012-08-021-2/+1
| | | | SVN-Revision: 32942
* generic: rtl8366_smi: remove duplicated spinlock initializationGabor Juhos2012-05-271-2/+0
| | | | SVN-Revision: 31916
* generic: rtl8366_smi: rename debugfs Kconfig symbolGabor Juhos2012-05-271-3/+3
| | | | SVN-Revision: 31915
* linux: rtl836x: add a generic reset_switch functionGabor Juhos2012-04-291-0/+25
| | | | SVN-Revision: 31536
* linux: rtl836x: add a reset_chip callback to rtl8366_smi_opsGabor Juhos2012-04-291-0/+4
| | | | SVN-Revision: 31534
* revert unrelated change in previous commitJo-Philipp Wich2012-02-271-1/+0
| | | | SVN-Revision: 30738
* partly revert r30708, it breaks various archesJo-Philipp Wich2012-02-271-0/+1
| | | | SVN-Revision: 30737
* generic: rtl8366: add rtl8366_smi_write_reg_noack helperGabor Juhos2012-01-211-2/+23
| | | | | | | | | After issuing a soft reset on the RT8366{S,RB} switch, waiting for the last acknowlegement fails in rtl8366_smi_write_reg. Add a _noack version of the function and use that for issuing a soft reset. SVN-Revision: 29844
* rtl8366: fix rtl8366_smi_detect() after r29677Jo-Philipp Wich2012-01-131-0/+3
| | | | SVN-Revision: 29732
* generic: rtl8366: preparing for RTL8367 supportGabor Juhos2012-01-071-4/+3
| | | | | | | | * make clock delay configurable * make read,write commands configurable * use u16 for member and untag fields SVN-Revision: 29677
* generic: rtl8366_smi: add timeout messageGabor Juhos2012-01-071-2/+4
| | | | SVN-Revision: 29676
* rtl8366_smi: implement a function for detecting whether the attached switch ↵Felix Fietkau2011-07-241-11/+69
| | | | | | is RTL8366S or RTL8366RB SVN-Revision: 27755
* generic: rtl8366: fix build errorGabor Juhos2011-01-091-2/+2
| | | | SVN-Revision: 24943
* generic: rtl8366: enable vlans before enabling the portsGabor Juhos2011-01-081-1/+2
| | | | SVN-Revision: 24939
* generic: rtl8366: enable ports only after VLAN configuration is doneGabor Juhos2011-01-081-0/+19
| | | | SVN-Revision: 24938
* generic: rtl8366_smi: init VLANs only in first switch initializationGabor Juhos2011-01-081-10/+30
| | | | SVN-Revision: 24936
* generic: rtl8366: add debugfs file for VLAN4K tableGabor Juhos2011-01-081-0/+59
| | | | SVN-Revision: 24933
* generic: add rtl8366rb switch vlan fid supportGabor Juhos2010-11-241-0/+46
| | | | | | | | | | | Allows to use fids 0 to 7. Default is 0. Those who will use this don't forget to `set vlan fid` every time after `set vlan ports` if you want non default behavior. Minor changes. Version bump. Signed-off-by: Roman Yeryomin <roman@advem.lv> SVN-Revision: 24125
* rtl8366_smi: when setting VLAN ports, always initialize the PVID to ensure ↵Felix Fietkau2010-08-311-0/+9
| | | | | | that the VLAN MC entry gets allocated. Fixes problems with tagged-only ports (#7795) SVN-Revision: 22856
* generic: rtl8366: add generic code to enable VLANsGabor Juhos2010-08-181-0/+78
| | | | SVN-Revision: 22703
* generic: rtl8366: add debugfs file to show PVIDsGabor Juhos2010-07-151-0/+42
| | | | SVN-Revision: 22206
* generic: rtl8366: make rtl8366_set_vlan staticGabor Juhos2010-07-151-3/+2
| | | | SVN-Revision: 22205
* generic: rtl8366: add common rtl8366_sw_{get,set}_vlan_ports functionsGabor Juhos2010-07-151-0/+51
| | | | SVN-Revision: 22204
* generic: rtl8366: add common rtl8366_sw_get_vlan_infoGabor Juhos2010-07-151-0/+42
| | | | SVN-Revision: 22203
* generic: rtl8366: add common rtl8366_sw_get_port_mib functionGabor Juhos2010-07-151-0/+34
| | | | SVN-Revision: 22200
* generic: rtl8366: make rtl8366_{g,s}et_pvid staticGabor Juhos2010-07-151-42/+41
| | | | SVN-Revision: 22198
* generic: rtl8366: add common rtl8366_sw_{get,set}_port_pvid functionsGabor Juhos2010-07-151-0/+14
| | | | SVN-Revision: 22197
* generic: rtl8366: add setup to rtl8366_smi_ops structGabor Juhos2010-07-151-0/+6
| | | | SVN-Revision: 22196
* generic: rtl8366: introduce rtl8366_smi_allocGabor Juhos2010-07-151-3/+17
| | | | SVN-Revision: 22195
* generic: rtl8366: add common read_debugfs_mibs functionGabor Juhos2010-06-281-1/+56
| | | | SVN-Revision: 21984
* generic: rtl8366: move common debugfs code to rtl8366_smi.cGabor Juhos2010-06-281-0/+164
| | | | SVN-Revision: 21981
* generic: rtl8366: move common VLAN handling functions to rtl8366_smi.cGabor Juhos2010-06-281-0/+203
| | | | SVN-Revision: 21979
* rename target/linux/generic-2.6 to genericFelix Fietkau2010-06-261-0/+385
SVN-Revision: 21952