Commit Graph

50 Commits

Author SHA1 Message Date
Shiji Yang
96010bb17c ramips: mt7621-wdt: use phandle to access system controller registers
These patches allow the driver to access some watchdog registers via a
phandle to the system controller node[1]. To apply these changes, we
need to add "mediatek,sysctl" to the SoC dtsi. This commit also remove
the redundent clocks, interrupts and resets properties.

[1] https://lore.kernel.org/all/20230214103936.1061078-2-sergio.paracuellos@gmail.com

Tested on Motorola MWR03 (MT7628)

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-07-30 13:09:23 +02:00
Shiji Yang
1f818b09f8 ramips: add proper system clock and reset driver support for legacy SoCs
This series of upstream patches properly implement a clock and reset
driver for old ralink SoCs[1]. And it includes some related fixes[2] and
improvements[3][4]. All patches have been merged into linux-next. They
will be part of upcoming Linux 6.5. In order to switch to the new system
controller driver, all clocks and resets properties in SoC dtsi have been
updated, and kernel symbol "CONFIG_CLK_MTMIPS" have been added to the
kernel config files.

[1] https://lore.kernel.org/all/20230619040941.1340372-1-sergio.paracuellos@gmail.com
[2] https://lore.kernel.org/all/20230622-mips-ralink-clk-wuninitialized-v1-1-ea9041240d10@kernel.org
[3] https://lore.kernel.org/all/OSYP286MB03120BABB25900E113ED42B7BC5CA@OSYP286MB0312.JPNP286.PROD.OUTLOOK.COM
[4] https://lore.kernel.org/all/TYAP286MB03151148AF8C054621DD55C3BC23A@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM

Tested on Motorola MWR03 (MT7628)
Tested on Haier HW-L1W (MT7620)

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-07-30 13:09:23 +02:00
Reto Schneider
2293f1abe4 ramips: mt7628: fix memory controller reset bit
According to MediaTek MT7688 Datasheet v1.4, as well as the MT7628
counterpart, the memory controller reset bit (MC_RST) is 10, not 20.
Reset bit 20 is used for for UART 2 (UART2_RST).

Please note: Due to the lack of hardware, I was not able to test this
change.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2022-08-06 19:58:46 +02:00
Adrian Schmutzler
ad6b077049 ramips: mt7628: move mtd-eeprom out of root DTSI
The mt76x8 subtarget is the only one in ramips that stores the
mediatek,mtd-eeprom property directly in the "root" mt7628an.dtsi.

This is not optimal for a few different reasons:

 * If you don't really know it or are used to other (sub)targets,
   the property will be set somewhat magically.
 * The property is set based on &factory partition before (if at all)
   this partition is defined.
 * There are several devices that have different offset or even
   different partitions to read from, which will then be overwritten
   in the DTS files. Thus, definitions are scattered between root
   DTSI and individual files.

Based on these circumstances, the "root" definition is removed and
the property is added to the device-based DTS(I) files where needed
and applicable. This should be easier to grasp for unexperienced
developers and will move the property closer to the partition
definitions.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-08-17 18:41:17 +02:00
Alexander Couzens
60fadae62b ramips: ethernet: ralink: move reset of the esw into the esw instead of fe
The esw reset should only done by the esw driver and not by the fe itself.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-06-25 10:52:50 +02:00
Alexander Couzens
694561ae60 ramips: ethernet: ralink: use the reset controller api for esw & ephy
Instead of writing direct into the reset registers.

Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
2021-06-25 10:52:50 +02:00
Adrian Schmutzler
d4520d75a1 ramips: move aliases to the top in SoC DTSI files
The aliases node is expected as one of the first entries, and
having it there matches alphabetic sorting as well.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2021-02-22 18:49:57 +01:00
Adrian Schmutzler
621297e867 ramips: move dts-v1 statement to top-level DTSI files
The "/dts-v1/;" identifier is supposed to be present once at the
top of a device tree file after the includes have been processed.

In ramips, we therefore requested to have in the DTS files so far,
and omit it in the DTSI files. However, essentially the syntax of
the parent mtxxxx/rtxxxx DTSI files already determines the DTS
version, so putting it into the DTS files is just a useless repetition.

Consequently, this patch puts the dts-v1 statement into the top-level
SoC-based DTSI files, and removes all other occurences.
Since the dts-v1 statement needs to be before any other definitions,
this also moves the includes accordingly where necessary.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
2020-09-25 23:26:40 +02:00
Chuanhong Guo
b756ea2a90 ramips: replace pinctrl property names
Upstream pinctrl driver in drivers/staging uses
groups/function/ralink,num-gpios instead of
ralink,group/ralink,function/ralink,nr-gpio
Replace these properties in dts as well as the pinctrl driver in
patches-4.14.
This commit is created using:
sed -i 's/ralink,group/groups/g'
sed -i 's/ralink,function/function/g'
sed -i 's/ralink,nr-gpio/ralink,num-gpios/g'

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-04-12 22:29:17 +08:00
Chuanhong Guo
0b68d081eb ramips: mt7628: update dts for upstream gpio-mt7621 driver
upstream driver merged 3 separated gpio banks into one gpio node.
and gpioX Y in our local driver should be replaced with gpio X*32+Y.

This patch is created using the following sed command:
sed -i -r 's/(.*)gpio([0-9]) ([0-9]+)(.*)/echo "\1gpio $((\2*32+\3))\4"/ge'

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
2020-04-12 22:27:18 +08:00
Micke Prag
c3a17ee4b3 ramips: add #pwm-cells property to MT76x8 dts
To be able to configure pwms the pwm driver needs to know the number off
cells in the "pwms" property. For this platform this is 2.

Signed-off-by: Micke Prag <micke.prag@telldus.se>
2019-03-18 20:43:09 +01:00
Mathias Kresin
ffa55386f1 ramips: fix dtc compiler warnings
The latest dtc compiler considers nodes named i2c or spi as the
respective bus:

  /pinctrl/i2c: incorrect #address-cells for I2C bus
  /pinctrl/spi: incorrect #address-cells for SPI bus

Rename the node to fix the false positives.

Fix the spi node unit address for the DWR-512-B and UBNT-ER-e50 to get
rid of the following warning:

  SPI bus unit address format error, expected "n"

Signed-off-by: Mathias Kresin <dev@kresin.me>
2018-12-06 12:17:25 +01:00
Mathias Kresin
a58535771f ramips: set usb led trigger via devicetree
Assign the usbdev trigger via devicetree for all subtargets and drop
the userspace handling of the usb leds.

With the change all usb ports are triggering the usb led instead of
only usb 1.1 XOR usb 2.0 XOR usb 3.0 as it was before.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2018-10-07 11:34:18 +02:00
Mathias Kresin
b8996ea08a ramips: fix compatibles in SoC dtsi
The former used compatibles aren't defined anywhere and aren't used by
the devicetree source files including them.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2018-08-23 22:40:59 +02:00
Mathias Kresin
f9b8328d79 ramips: fix pci/pcie related dtc warnings
Add the ranges property to the PCI bridges where missing. Add the unit
address to PCI bridge where missing.

Rework the complete rt3883 pci node. Drop the PCI unit nodes from the
dtsi. They are not used by any dts file and should be rather in the dts
than in the SoC dtsi. Express the PCI-PCI bridge in a clean devicetree
syntax. The ralink,pci-slot isn't used by any driver, drop it. Move the
pci interrupt controller out of the pci node. It doesn't share the same
reg and therefore should be an independent/SoC child node.

Move the pci related rt3883 pinctrl setting to the dtsi instead of
defining the very same for each rt3883 board.

If the device_type property is used for PCI units, the unit is treated
as pci bridge which it isn't. Drop it for PCI units.

Reference pci-bridges or the pci node defined in the dtsi instead of
recreating the whole node hierarchy. It allows to change the referenced
node in the dtsi without the need to touch all dts.

Fix the PCI(e) wireless unit addresses. All our PCI(e) wireless chips
are the first device on the bus. The unit address has to be the bus
address instead of the PCI vendor/device id.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2018-08-04 08:39:35 +02:00
Mathias Kresin
1bad2b74ae ramips: fix cpu interrupt controller dtc warnings
The cpu interrupt controller doesn't have a reg property, hence we
can't use a unit address in the node name.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2018-08-04 08:39:35 +02:00
Mathias Kresin
b9dbf3f3c8 ramips: fix cpu related dtc warnings
We need a reg property if we are using a unit address.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2018-08-04 08:39:35 +02:00
lbzhung
291e34edff ramips: fix mt7688 watchdog register base addr
I found mt7688 watchdog not working. The watchdog registers are identical
for mt7621 and mt7628/mt7688. The first watchdog related register is at
0x10000100, the last one - a 16bit sized - at 0x10000128.

Set the correct register address and size in the dtsi file to get the
watchdog working.

Signed-off-by: lbzhung <gewalalb@gmail.com>
[add commit message]
Signed-off-by: Mathias Kresin <dev@kresin.me>
2018-06-16 10:08:51 +02:00
Felix Fietkau
07b4e49abb ramips: fix usb phy compatible string (should fix FS#1489)
In the new USB phy driver, it checks the compatible string before
attempting to iomap its mem resource and do the extra PHY init

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2018-04-13 13:13:53 +02:00
Vianney le Clément de Saint-Marcq
eda27d7557 ramips: fix usbphy DT nodes on linux 4.14
The Ralink USB PHY driver merged into mainline has a slightly different
device tree binding than the patch that was used with linux 4.9.
The new driver requires a `ralink,sysctl` node pointing to the `syscon`
node.

This patch also sets `#phy-cells` to 0, as recommended by the mainline
documentation [1].

[1] Documentation/devicetree/bindings/phy/ralink-usb-phy.txt

Signed-off-by: Vianney le Clément de Saint-Marcq <code@quartic.eu>
2018-04-07 17:53:34 +02:00
Mathias Kresin
b69ceb0c3d ramips: add missing pinmuxes to SoC dtsi
Add pinmuxes defined by some board which are including the dtsi files
to the dtsi files itself. Allows to reduce duplication.

Signed-off-by: Mathias Kresin <dev@kresin.me>
2017-11-22 08:21:52 +01:00
Kevin Darbyshire-Bryant
3fbf3ab44f ramips: fix missing mediatek wdt
mediatek MT7621 soc watchdog DTS id was renamed from "mtk,mt7621-wdt" to
"mediatek,mt7621-wdt" when driver upstreamed to kernel 4.5

Update mt7621.dtsi & mt7628an.dtsi definitions to match upstreamed
kernel.

Restores hardward watchdog functionality on mt7621 devices under linux
4.9

Tested on: MIR3G

Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
2017-09-22 10:28:59 +02:00
Felix Fietkau
dabdd123c9 mt76: update to the latest version
Uses upstream code to parse DT supported band/frequency information.
Update existing .dts files to the new format and remove unnecessary
overrides.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2017-02-01 17:49:55 +01:00
John Crispin
252f751611 ramips: fix usb phy initialisation
this broke usb20 device detection.

Signed-off-by: John Crispin <john@phrozen.org>
2016-07-11 14:19:46 +02:00
Michael Lee
921d782eb7 ramips: update i2s dtsi files
Signed-off-by: Michael Lee <igvtee@gmail.com>
2016-06-13 22:51:42 +02:00
Michael Lee
011ce1fad6 ramips: update i2c dtsi files
Signed-off-by: Michael Lee <igvtee@gmail.com>
2016-06-13 22:51:42 +02:00
Michael Lee
f36d624d88 ramips: add gdma hsdma dts info
Signed-off-by: Michael Lee <igvtee@gmail.com>
2016-06-13 22:51:42 +02:00
John Crispin
c7efbd7dbb ramips: Add specific compatible properties for esw
Currently, for RT5350 and MT7628, esw is marked as compatible with
"ralink,rt3050-esw". While this is true, the switches within RT5350
and MT7628 actually support more functionality than the RT3050 switch.

One such example is per-VLAN untagging, which is an important feature.

RT3352 is another example of this, but it already has an additional
compatible property, which allows to differentiate it from RT3050.

This commit adds such more specific properties for RT5350 and MT7628
as well.

Signed-off-by: Stanislav Galabov <sgalabov@gmail.com>
2016-05-23 11:28:59 +02:00
Stanislav Galabov
ffaaa6788a ramips: DTS modifications
This commit makes the following modifications to ramips dts files:
1. Add clkctrl node to all dtsi files (although not used for now)
2. Add clocks and clock-names properties to some nodes (usbphy, pci)
3. Add usbphy node for rt3050 (although not used for now)
4. Add clock-frequency to uart nodes in mt7621.dtsi and mt7628an.dtsi

These modifications, although not fully used at the moment, will make
it easier for FreeBSD to adopt and use LEDE ramips dts files with
minimal changes for easier maintenance.

Signed-off-by: Stanislav Galabov <sgalabov@gmail.com>
2016-05-12 03:29:36 +02:00
Stanislav Galabov
9195d8da35 ramips: DTS rework
Add node aliases to dtsi files.
Reword dts files so they're more in-line with upstream.
Fix some more warnings and errors reported by dtc

Signed-off-by: Stanislav Galabov <sgalabov@gmail.com>
2016-05-12 03:29:35 +02:00
Stanislav Galabov
600c224213 ramips: Add hex prefix (0x) to dtsi reg properties where needed.
Signed-off-by: Stanislav Galabov <sgalabov@gmail.com>
2016-05-10 10:43:17 +02:00
Stanislav Galabov
b8f73d7f0a ramips: introduce serial0 aliases
This patch introduces serial0 aliases in the ramips DTS files, which can
then be used to denote the active console instead of relying on bootargs.

Signed-off-by: Stanislav Galabov <sgalabov@gmail.com>
2016-05-10 10:43:17 +02:00
Felix Fietkau
dc6533d982 ramips: create device tree node for MT7628 WMAC in preparation for future work on driver support in mt76
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 48812
2016-02-28 13:21:54 +00:00
John Crispin
fc47eb0794 ralink: fix mt7628 ehci support
the u2_phy init was missing

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 48747
2016-02-19 16:38:04 +00:00
John Crispin
eb9fccc440 ralink: update the usb phy driver to the version sent upstream
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 48114
2016-01-04 14:21:17 +00:00
John Crispin
9b675a2a33 ralink: fix USB compatible strings
switch to the upstream compatible strings for ehci and ohci support.

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 48113
2016-01-04 14:21:11 +00:00
John Crispin
651e620de5 ralink: fixup devicetree files to work with new ethernet driver
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 47900
2015-12-17 09:25:57 +00:00
John Crispin
7295e9fb8b ramips: add alsa support
add the SDK alsa driver. this has only been tested on mt7628/88 and wm8960.
mt7620 is only compile tested.

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 47205
2015-10-19 10:07:54 +00:00
John Crispin
948e67cb16 ramips: fix size-cells for spi nodes
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 47119
2015-10-05 10:26:54 +00:00
John Crispin
7ad419a9f1 ralink: add irq to mt7628 gpio node
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 47076
2015-10-01 19:12:14 +00:00
John Crispin
553fea9f19 ramips: fix indentation and other mistakes in .dts{, i} files
The following patch fixes:
 * wrong indentations
 * doubled gpio-keys-polled nodes (DIR-300-B7, DIR-320-B1, DIR-610-A1)
 * duplicate spacings
 * empty lines at end of files and after last child nodes
 * trailing and leading whitespace
 * unnecessary and commented-out code
 * missing empty lines between nodes and between properties and nodes
 * unnecessary empty lines between nodes properties [1]

in .dts{,i} files, for ramips target.

[1] Some of empty lines in SOCs dtsi files were left untouched, because they seem to be there for a reason (readability?).

Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>

SVN-Revision: 46613
2015-08-17 05:57:18 +00:00
John Crispin
1b6a6abf04 ramips: add additional uarts to mt7628.dtsi
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 46477
2015-07-24 09:12:21 +00:00
John Crispin
64db436416 ramips: fix the mt7628 dts file
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 44494
2015-02-19 14:04:41 +00:00
John Crispin
654bc380ec ralink: add 3.18 support
keep default as 3.14, mt7621 gic need to be ported to 3.18

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 44349
2015-02-09 12:13:55 +00:00
Felix Fietkau
69ee1807ed ralink: add ethernet fe and esw reset control bit
Signed-off-by: michael lee <igvtee@gmail.com>

SVN-Revision: 44042
2015-01-18 20:16:44 +00:00
John Crispin
c073bf6bdf ralink: few updates tot he sdhci probe code
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 43275
2014-11-15 14:35:32 +00:00
John Crispin
66463a5b5d ralink: update pcie driver to load ranges from dts
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 43249
2014-11-14 16:53:07 +00:00
Felix Fietkau
29f71d384f ramips: add missing size/address-cells to device tree include files
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43217
2014-11-08 14:15:44 +00:00
John Crispin
c5954fc510 ralink: make pci driver handle mt7628
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 43198
2014-11-06 09:31:37 +00:00
John Crispin
cadf517107 ralink: add support for mt7628
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 43197
2014-11-06 09:31:31 +00:00