aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/lantiq/dts
Commit message (Collapse)AuthorAgeFilesLines
* lantiq: fix avm fritz box mac addressesMathias Kresin2017-05-053-3/+7
| | | | | | | | | It has been shown that the Fritz boxes have the correct mac address set in the wireless calibration data/eeeprom. Use this mac address as base for the ethernet and xdsl interface increment/decrement the address to match the values stored in the tffs. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: DGN3500: make switch LEDs blink on activityKevin Darbyshire-Bryant2017-04-251-0/+15
| | | | | | | | | | | | | | | | | Make switch port LEDs blink on activity as they do with stock firmware. The u-boot loader sets suitable values in the LED control register that unfortunately get blown away by the linux switch driver init. Restore that value by using driver 'initvals'. 0x0431 is the led control register, the value 0x0960. Each nybble represents each LED's mode (LED3,2,1,0) in this case OFF, 1000LINK+Activity, 100/10LINK+Activity, OFF. Only LED1&2 are physically present. Enabling the blinkenlights exposed the fact that an RRCP packet was being emitted by the switch on all ports every second. Further initvals copied from stock firmware's u-boot driver disabled this 'feature'. Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk>
* lantiq: improve DGN3500 LED definitionsKevin Darbyshire-Bryant2017-04-211-9/+11
| | | | | | | | | | | | | | | | Add red:internet led on gpio 30 previously claimed as missing. Wifi led was claimed as blue however there are no blue leds on the board at all. Actually there are two wifi leds, green & amber so add definitions for those. Make the newly discovered green wifi led gpio 14 the default. There is no amber power led on this board. The mention of the amber power led in the manual means power red and power green at the same time. Signed-off-by: Kevin Darbyshire-Bryant <kevin@darbyshire-bryant.me.uk> [removed unnecessary aliases, add migration script] Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: update spi driver to upstream versionHauke Mehrtens2017-03-261-1/+1
| | | | | | These patches are backported from upstream Linux kernel. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* lantiq: xrx200: use vlan for ethernet wan portMathias Kresin2017-03-113-36/+6
| | | | | | | | | | | | | | | | | | | | | | | Using the lantiq,wan device tree property for one interface node and the lantiq,switch device tree property for another interface node at the same time was never intended/isn't supported at the moment. The property is meant to be used in two phy operation mode where one phy is assigned to an interface without lantiq,* device tree property and the other phy is assigned to an interface with the lantiq,wan device property to have two netdevs. If both properties are used at the same time, the lantiq,wan interface is shown as independent netdev but not able to operate independent. The port needs to be managed via swconfig. These dependency is not obvious and fooled already a lot of users. Add a default WAN vlan for xrx200 devices having an ethernet WAN port and remove the lantiq,wan device tree property. Leave it up to the user to set the ethernet WAN port as default WAN interface or to use this port as additional LAN port. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: add support for the Alpha ASL56026Alex Maclean2017-03-081-0/+170
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ASL56026 is a VDSL2 router with dual 100mbit ethernet, also known as the ECI B-FOCuS V-2FUb/I. CPU: Lantiq XRX268 v1.1 at 333MHz Modem: Lantiq VRX208 RAM: 32MiB DDR2 at 167MHz Flash: 8MiB NOR, Spansion S29GL064N90TF04 UART is at JP1: Pin 1 TX Pin 2 GND Pin 3 +3.3V Pin 4 NC Pin 5 RX Boot selection pins are exposed via several resistor jumpers: boot_sel0 is at J15, on the rear of the board. Default is high. boot_sel1 is at J3, next to the flash - it is also the flash CE# pin. Default is low. boot_sel2 is at J12, directly below the SoC. Default is low. boot_sel3 is at J16, on the rear of the board. Default is low. The boot_sel pins should never be shorted, the jumper must be moved or a lower value resistor used to change the pull (existing resistors are 4k7, 1k should work) To install with the stock bootloader you must break the built in image selection process which uses at least the following vars: f_upgrade_addr, f_upgrade2_addr, loadaddr, kernel_addr, activeregion, committedregion This is done by setting loadaddr and both f_upgrade_addr vars to the same address: VR9 # setenv loadaddr 0xB0040000 VR9 # setenv f_upgrade_addr 0xB0040000 VR9 # setenv f_upgrade2_addr 0xB0040000 VR9 # saveenv Then flash the firmware image: VR9 # tftpboot 0x81000000 lede-lantiq-xrx200-ASL56026-squashfs-sysupgrade.bin VR9 # erase B0040000 +${filesize} VR9 # cp.b 0x81000000 0xB0040000 ${filesize} Signed-off-by: Alex Maclean <monkeh@monkeh.net>
* lantiq: add support for kernel 4.9Hauke Mehrtens2017-02-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following patches were dropped because they are already applied upstream: 0012-pinctrl-lantiq-fix-up-pinmux.patch 0013-MTD-lantiq-xway-fix-invalid-operator.patch 0014-MTD-lantiq-xway-the-latched-command-should-be-persis.patch 0015-MTD-lantiq-xway-remove-endless-loop.patch 0016-MTD-lantiq-xway-add-missing-write_buf-and-read_buf-t.patch 0017-MTD-xway-fix-nand-locking.patch 0044-pinctrl-lantiq-introduce-new-dedicated-devicetree-bi.patch 0045-pinctrl-lantiq-Fix-GPIO-Setup-of-GPIO-Port3.patch 0046-pinctrl-lantiq-2-pins-have-the-wrong-mux-list.patch 0047-irq-fixes.patch 0047-mtd-plat-nand-pass-of-node.patch 0060-usb-dwc2-Add-support-for-Lantiq-ARX-and-XRX-SoCs.patch 0120-MIPS-lantiq-add-support-for-device-tree-file-from-bo.patch 0121-MIPS-lantiq-make-it-possible-to-build-in-no-device-t.patch 122-MIPS-store-the-appended-dtb-address-in-a-variable.patch The PHY driver was reduced to the code adding the LED configuration, the rest is already upstream: 0023-NET-PHY-adds-driver-for-lantiq-PHY11G.patch The SPI driver was replaced with the version pending for upstream inclusion: New driver: 0090-spi-add-transfer_status-callback.patch 0091-spi-lantiq-ssc-add-support-for-Lantiq-SSC-SPI-controller.patch Old driver: 0100-spi-add-support-for-Lantiq-SPI-controller.patch Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* generic: rtl8366rb: fix compatible stringMathias Kresin2017-02-031-1/+1
| | | | | | | Use a vendor prefix as it has to be for all not core driver. Update the compatible string in the device tree files accordingly. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: enable SMP for XRX200Felix Fietkau2017-02-012-2/+2
| | | | Signed-off-by: Felix Fietkau <nbd@nbd.name>
* lantiq: update USB controller initializationHauke Mehrtens2017-01-094-6/+11
| | | | | | | | | | | | | This adds USB initialization fixes for Danube, Amazon SE and xrx300 and should fix the clock on at least Danube which hopefully closes FS#351. The xrx200 usb driver now uses more memory for the dwc2 fifos, this was increased in the chip compared to ar9. This is based in part on the vendor documentation and the vendor code base as a reference. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* lantiq: fix console print for additional boardsHauke Mehrtens2017-01-063-0/+12
| | | | | | | | | | | | | | I missed 3 boards in this commit: commit d8dde8c5178eba8c847dd48e7d06e6663ba1979f Author: Hauke Mehrtens <hauke@hauke-m.de> Date: Wed Jan 4 21:53:22 2017 +0100 lantiq: fix console print Add bootargs parameters for ARV4525PW, ARV7506PW11 and ARV8539PW22 again. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* lantiq: fix console printHauke Mehrtens2017-01-0535-4/+128
| | | | | | | | | | | | | | | | | | The boot loader of many boards provides a kernel boot argument with a broken console parameter to the kernel. This will be taken before the stdout-path defined in device tree and the serial will not work on this board. Multiple boards are affected by this problem, so revert this patch for all boards. Later we can remove the boot arguments from the device tree again, after the individual board was checked to work. This partly reverts this commit: commit 4995c64857a09c4cc92238ba0bd52cdb06c4c581 Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Date: Sun Dec 11 21:55:00 2016 +0100 lantiq: specify console using stdout-path instead of cmdline argument Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* lantiq: drop the FRITZ7360SL led-dsl aliasMathias Kresin2016-12-241-1/+0
| | | | | | | | | | | | | The power LED can not be used for indicating the xDSL line state and the in system (boot) state at the same time in LEDE. As soon as the xDSL Line goes down, the power LED is switched off. During xDSL handshake the power led would blink with the same or a similar pattern as during boot. Both might confuse users. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: add FRITZ7360SL phy reset gpiosMathias Kresin2016-12-241-5/+5
| | | | | | | | | | | | | | | Due to a hardware bug of Atheros 8030 phys, the driver need to reset the phys on link state change. Use the correct compatible string for the at903x phys connected to switch port 0 and 1. Fix the pinmux of the gpio lines connected to the reset pin of the phys and define the reset-pins to let the driver do the fixups. Fixes FS#343 Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: fix DGN1000B boot status ledsMathias Kresin2016-12-241-9/+7
| | | | | | The alias node should not be a child of the chosen node. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: remove "init" kernel command line parameter from bootargsMartin Blumenstingl2016-12-1234-125/+2
| | | | | | | | | | /etc/preinit has been the default init-script for a very long time (at least since Linux 2.6.30 in OpenWrt). Remove the kernel command line "init" parameter to get rid of duplicate and inconsistent definitions of this parameter (some boards, like FRITZ3370 for example did not use it at all, while it's just copy and paste on others). Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
* lantiq: specify console using stdout-path instead of cmdline argumentMartin Blumenstingl2016-12-1240-37/+70
| | | | | | | | Use devicetree's /chosen/stdout-path instead of the kernel command line (embedded in the .dts-files) to specify the serial console. Using the chosen node is recommended on devicetree based platforms. Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
* lantiq: falcon: remove bootargs-appendHauke Mehrtens2016-12-1010-40/+0
| | | | | | | This attribute is not evaluated any more and the boot loader on these reference boards does not provide a broken root= or console= parameter. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* lantiq: fix image validation errorsMathias Kresin2016-12-0413-11/+16
| | | | | | | The boards did not have the name set that is expected during metadata validation on sysupgrade. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: use BT HomeHub 5 Type A OEM partition layoutMathias Kresin2016-11-291-15/+14
| | | | | | | | | | | | | | | | | | | | This way the on nand bad block table is preserved and used. Add support for nand OOB ECC checksums as well. It should fix all reported ubi errors, which were all related to bad nand blocks and a purged on nand bad block table. The existing ubi partition will be reused, which eliminates the need to touch the caldata during initial install. The BT u-boot has support for loading a kernel from an ubi volume. It isn't necessary any longer to replace the BT u-boot with a custom compiled one to use LEDE. It is required to restore the BT Firmware and install LEDE from scratch to switch to the new partition layout. An image for restoring the BT firmware and installing LEDE is provided at https://github.com/mkresin/lede/releases. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: backport kernel patch to pass of node to nand_dt_initMathias Kresin2016-11-291-2/+0
| | | | | | | | | | | | | | | | | | | Backport upstream commit a61ae81a1907af1987ad4c77300508327bc48b23. The actually purpose of the patch was to do some cleanup. As a side effect of this cleanup, the device node is now passed to nand_dt_init. This allows to use the common nand device tree properties - nand-bus-width - nand-on-flash-bbt - nand-ecc-mode - nand-ecc-step-size - nand-ecc-strength for the plat_nand driver. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: use ath9k device tree bindings binding/owl-loaderMartin Blumenstingl2016-11-2911-125/+148
| | | | | | | | | | | | | | | | | This moves the extraction of the eeprom/calibration data to a hotplug firmware script. Additionally it modifies all .dts to configure ath9k directly from within the .dts. The owl-loader approach enables support on devices with exotic eeprom data locations (such as unaligned positions on the flash or data inside an UBI volume). Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> [add ath9k caldata mac address patcher] [fixes DGN3500 wifi mac] [fixes BTHOMEHUBV3A wifi mac] [set invalid mac for BTHOMEHUB2B, FRITZ3370, FRITZ7320 & FRITZ7360SL to restore previous random mac behavior] Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: add Falcon supportHauke Mehrtens2016-11-2715-0/+1380
| | | | | | | | | | | | This adds support for the Intel Falcon SoC for GPON. Support for the Falcon SoC was removed in commit c8218363951 svn rev: 40392 from OpenWrt, this commit adds it again. This patch adds a new subtarget for the Falcon SoC, but it still misses all the drivers needed to control the GPON part. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* treewide: fix button keys codes used in dtsMathias Kresin2016-11-2715-19/+20
| | | | | | Use keycodes that matches the intended use case based on the label. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: specify the PCIe controller's interrupt, size and address cellsMartin Blumenstingl2016-11-261-2/+10
| | | | | | This allows adding devices to the PCIe controller in the .dts files. Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
* lantiq: write protect vgv7519 u-boot and u-boot-env partitionsEddi De Pieri2016-11-231-0/+2
| | | | Signed-off-by: Eddi De Pieri <eddi@depieri.net>
* lantiq: device tree bindings for dwc2 on danubeBen Mulvihill2016-11-211-1/+2
| | | | | | | | | Device tree binding for dwc2 usb driver on danube. Leave old ifxhcd-danube driver as an alternative. Also adds dr_mode = "host" to eliminate warning on boot. Signed-off-by: Ben Mulvihill <ben.mulvihill@gmail.com>
* lantiq: enable VMMC for VGV7519dpeddi2016-11-161-1/+10
| | | | Signed-off-by: Eddi De Pieri <eddi@depieri.net>
* lantiq: enable VMMC for VGV7510KW22Eddi De Pieri2016-11-161-1/+10
| | | | Signed-off-by: Eddi De Pieri <eddi@depieri.net>
* treewide: dts: use keycode defines from input dt-bindingMathias Kresin2016-11-1339-4/+70
| | | | | | | | | | | | | | | | | | | | | All compiled device tree files not mentioned are binary identical to the former ones. Fix the obvious decimal/hex confusion for the power key of ramips/M2M.dts. Due to the include of the input binding header, the BTN_* node names in: - ramips/GL-MT300A.dts - ramips/GL-MT300N.dts - ramips/GL-MT750.dts - ramips/Timecloud.dts will be changed by the compiler to the numerical equivalent. Move the binding include of lantiq boards to the file where they are used the first time to hint the user where the values do come from. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: use the device tree bindings from rt2x00 driverMathias Kresin2016-11-0910-110/+136
| | | | | | | | | | | | | Set a device specific wireless mac address for ARV7506PW11, VGV7519 and VGV7510KW22. The one from the EEPROM is a generic one and the same on all boards. Use the wifi@0,0 label and the pci0,0 compatible string for the ARV7519PW and ARV7525PW since the pci vendor and device id is unknown. It should work anyway since the compatible string isn't evaluated (yet). Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: fix VGV7519 and VGV7510KW22 mac addressesMathias Kresin2016-11-092-2/+2
| | | | | | | | | | | | | | | | | The VGV7510KW22 stock firmware uses the following mac-addresses: lan (ifno 1): AA:BB:CC:DD:EE:60 wlan (ifno 2): AA:BB:CC:DD:EE:61 atm0 (ifno 3): AA:BB:CC:DD:EE:62 atm1/wan (ifno 4): AA:BB:CC:DD:EE:63 The VGV7519 stock firmware uses the following mac-addresses: lan: AA:BB:CC:DD:EE:EF wlan: AA:BB:CC:DD:EE:EF wan: AA:BB:CC:DD:EE:EE Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: use external pci clock on ARV7506PW11Mathias Kresin2016-11-031-0/+1
| | | | | | | Fixes a ralink wireless driver related kernel crash as soon as a lot of data is tranfered via wireless. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: cleanup dts filesMathias Kresin2016-11-0333-312/+35
| | | | | | | | | | | | | | - remove not existing properties - remove properties having the same values as the included dtsi - remove nodes which are disabled in the included dtsi and not enabled in dts - replace the deprecated pinctrl-* compatible strings - use the same labels for nodes as the included dtsi - move common used vr9 pci properties to vr9.dtsi - remove the unused stp node from HomeHub 2B devcie tree source file - fix spaces vs. tabs and remove superfluous linebreaks Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: modify vr9.dts to support vmmcStefan Koch2016-10-311-0/+8
| | | | | | | | | | | | | (required not-distributable firmware blob - dump it by yourself from original firmware) Signed-off-by: Eddi De Pieri <eddi@depieri.net> (cherry picked from commit 8d924d43c0ea6839a3a33e54982e8da48b736001) Modified after cherry-pick: compatible attribute Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
* lantiq: danube fxs bugfix: changed compatible attribute of vmmcStefan Koch2016-10-261-1/+1
| | | | | | | | This bugfix enables FXS support on dabube based devices. Changed "compatible" attribute from "vmmc" to "vmmc-xway". The vmmc driver uses "vmmc-xway". Signed-off-by: Stefan Koch <stefan.koch10@gmail.com>
* lantiq: enable cpu temp driver for all vr9 boardsMathias Kresin2016-10-196-20/+4
| | | | | | | Only present on v1.2 vr9 SoCs but the driver takes care to not load on boards having a v1.1 SoC. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: Sanitize device tree filesAndreas Eberlein2016-10-1956-656/+668
| | | | | | | | | | The device tree file of ARV752DPW uses numbers/hex values for gpio states and input event codes. This cleans it up and uses the available macros from header files. This way the functions are easier to read and comprehend. Signed-off-by: Andreas Eberlein <foodeas@aeberlein.de> [sanitize all device tree files] Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: Fix buttons for ARV752DPWAndreas Eberlein2016-10-191-5/+5
| | | | | | | | The GPIO for reset switch is wrong in definition. Further the key codes for the two additional buttons are ineffective. Both is fixed here. Signed-off-by: Andreas Eberlein <foodeas@aeberlein.de>
* lantiq: rework VG3503J imageMathias Kresin2016-10-191-29/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the new image build code and remove the lzma loader. The lzma loader was used to cheat the signature validation of the bootloader and I found another way to do this. To migrate boards already using LEDE/OpenWrt to the new image the following steps need to be done once: VR9 # run reset_uboot_config VR9 # reset VR9 # setenv ethaddr AA:BB:CC:DD:EE:FF VR9 # setenv preboot ping 1.1.1.1\;bootm 0xb001f000 VR9 # saveenv VR9 # tftp 0x81000000 lede-lantiq-xrx200-VG3503J-squashfs-sysupgrade.bin VR9 # erase 0xb0020000 $(filesize) VR9 # cp.b 0x81000000 0xb0020000 $(filesize) The mac address is printed on the label at the bottom of the case. The following steps are need to be done during first install: VR9 # setenv preboot ping 1.1.1.1\;bootm 0xb001f000 VR9 # saveenv VR9 # tftp 0x81000000 lede-lantiq-xrx200-VG3503J-squashfs-sysupgrade.bin VR9 # erase 0xb0020000 $(filesize) VR9 # cp.b 0x81000000 0xb0020000 $(filesize) The image uses the uImage firmware splitter now instead of hardcoded kernel and rootfs partitions. The firmware partition size was extended to use flash space that was reserved for partitions required only by the ECI firmware. Due to the changes an upgrade to a later LEDE revision from a running LEDE is supported now. A default switch config was added and the device uses the same MAC addresses as the ECI firmware now instead of the same for all VG3503J. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: fix ARV452CQW keysMathias Kresin2016-10-151-1/+1
| | | | | | Fix the typo in the gpio-keys-polled compatible string. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: fixup last commitsMathias Kresin2016-10-055-9/+9
| | | | | | | Revert the rename of unrelated device tree nodes. Rename the missed leds of the Speedport W 504V Typ A. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: fix usb leds/triggerMathias Kresin2016-10-053-3/+6
| | | | | | | | | | | Add USB led aliases to boards having an led which is meant to be used as USB led according to the manuals. Remove the kmod-ledtrig-usbdev from the default package selection for boards not having an USB led. Add the kmod-ledtrig-usbdev to boards where it is missing. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: use aliases device tree node for ledsMathias Kresin2016-10-0535-284/+276
| | | | | | The chosen node is clearly the wrong place for aliases. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: enable cpu temp driver for more tested boardsMathias Kresin2016-09-102-1/+9
| | | | Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq/xrx200-net: add interrupt for second DMA TX channel to vr9.dtsiMartin Schiller2016-08-151-1/+1
| | | | Signed-off-by: Martin Schiller <mschiller@tdt.de>
* lantiq: enable cpu temp driver for selected boardsMathias Kresin2016-08-103-0/+12
| | | | | | | | According to the author of the cpu temp driver, not all xrx200 boards have a cpu temperature sensor. For that reason enable the sensor only for tested boards. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: use the etop driver DT bindings onlyMathias Kresin2016-08-1014-81/+25
| | | | | | | Use the generic mtd-mac-address dts property to get a mac address from flash instead of the lantiq specific one. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: fix mac address incrementsMathias Kresin2016-08-1012-12/+1
| | | | | | | | | | | | Use the same mac address increment in device tree source file and userspace. Don't add a mac address increment to either the only mtd mac-address or to all mac-addresses. Fix a typo in the TDW89X0.dtsi file to add an increment. Signed-off-by: Mathias Kresin <dev@kresin.me>
* lantiq: use ath, eep-flash/mac-offset for ath eep nodesMathias Kresin2016-08-105-15/+15
| | | | | | | No functional change, just easier to get what's the purpose of the hex values. Signed-off-by: Mathias Kresin <dev@kresin.me>