summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-rockchip
Commit message (Collapse)AuthorAgeFilesLines
* ARM: Rockchip: dmc: print memory sizes in hexSascha Hauer2023-12-041-1/+1
| | | | | | | | Large decimal numbers are not readable and useful, print memory sizes in hexadecimal instead. Link: https://lore.barebox.org/20231201151044.1648393-3-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/regmap'Sascha Hauer2023-10-271-1/+1
|\
| * treewide: switch regmap.h include to linux/regmap.hAhmad Fatoum2023-10-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that there are no longer any users of regmap.h in headers, let's switch all users in the source files to linux/regmap.h. That way, the only users of regmap.h whether directly or indirectly will be out-of-tree code, which will fail with an error if they are dependent on the old semantics of regmap_bulk_read and regmap_bulk_write. After a transitory period, we can then drop regmap.h. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20231020071853.2826528-12-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: rockchip: Add missing call to arm_cpu_lowlevel_init() for rk3568Alexander Shiyan2023-10-171-0/+2
|/ | | | | | Signed-off-by: Alexander Shiyan <eagle.alexander923@gmail.com> Link: https://lore.barebox.org/20231016142432.2759214-1-eagle.alexander923@gmail.com Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* firmware: don't hardcode firmware paths in srctree for existence checkAhmad Fatoum2023-06-281-6/+0
| | | | | | | | | | | | | | | | | | | Now that PBL firmware can be made optional, we can drop the existence checks in the Kconfig. These were flawed anyway, because they didn't take CONFIG_EXTRA_FIRMWARE_DIR into account and they led to issues with build system recipes that didn't expect firmware to be required before compilation step at oldconfig/menuconfig time. This effectively reverts commits: 624962fb45c6 ("ARM: i.MX: make boards selectable only when firmware files are present") 4ff2e5510ec9 ("ARM: Rockchip: make boards only selectable when firmware is present") 41a89611774a ("ARM: rockchip: don't attempt building MACH_RADXA_ROCK5 without firmware") Reported-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20230627055239.3908872-8-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* treewide: add MODULE_DEVICE_TABLE markersAhmad Fatoum2023-06-131-0/+1
| | | | | | | | | | | | | | | | Syncing device trees with Linux upstream can lead to breakage, when the device trees are switched to newer bindings, which are not yet supported in barebox. To make it easier to spot such issues, we want to start applying some heuristics to flag possibly problematic DT changes. One step towards being able to do that is to know what nodes barebox actually consumes. Most of the nodes have a compatible entry, which is matched by an array of of_device_id, so let's have MODULE_DEVICE_TABLE point at it for future extraction. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20230612125908.1087340-1-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: rockchip: don't attempt building MACH_RADXA_ROCK5 without firmwareAhmad Fatoum2023-05-251-3/+4
| | | | | | | | | | | | Otherwise, multi_v8_defconfig would give errors for users that are only interested in using it for qemu-virt64, which requires no external firmware to be built into barebox. While at it, fix spaces to tabs to be in-line with the rest of the file. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20230523094124.3453658-1-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/rockchip'Sascha Hauer2023-05-246-19/+141
|\
| * ARM: rockchip: Add Radxa ROCK 5B supportSascha Hauer2023-05-231-0/+6
| | | | | | | | | | | | Add support for the Radxa ROCK 5B board. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: rockchip: Add rk3588 supportSascha Hauer2023-05-235-0/+65
| | | | | | | | | | | | | | This adds the assorted rk3588 support stuff which is very similar to the existing rk3568 support Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: rockchip: rk3588: add memsize detectionSascha Hauer2023-05-231-4/+51
| | | | | | | | | | | | Extend the DMC driver for rk3588 Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * pci: designware: add rockchip supportSascha Hauer2023-05-231-0/+1
| | | | | | | | | | | | | | Add support for the PCIe controller found on Rockchip RK3568 and RK3588 SoCs. Based on Linux-6.3-rc7. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: rockchip: detect rockchip SoC type when asked forSascha Hauer2023-05-231-15/+18
| | | | | | | | | | | | | | | | rockchip_soc() will only return a valid result after postcore_initcall(rockchip_init). Instead of depending on that initcall just detect the SoC type the first time rockchip_soc() is called. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/kconfig-missing-firmware'Sascha Hauer2023-05-241-3/+8
|\ \
| * | ARM: Rockchip: make boards only selectable when firmware is presentSascha Hauer2023-05-021-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | The RK356x based boards need a sdram-init.bin file in the board directory. Make the boards selectable only when the file is present to avoid failing compilation when the file is missing. Link: https://lore.barebox.org/20230426090354.1350981-3-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | ARM: rockchip: bbu: Fix getting active boot slotSascha Hauer2023-05-091-9/+2
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | With some TF-A versions the IRAM where the boot information is stored cannot be accessed in normal mode. We therefore copy the information to another place before starting the TF-A. This copy is used for the boot source detection logic, but not yet for the barebox update code which still uses the original information from IRAM. Use the already existing rockchip_bootsource_get_active_slot() to avoid data aborts when trying to detect the active boot slot. Link: https://lore.barebox.org/20230509045055.601772-1-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: rockchip: bootm: move image to 4k alignmentSascha Hauer2023-05-031-1/+2
|/ | | | | | | | The new barebox must be 4k aligned which is not always the case when we skip over the SDRAM initialisation binary. memmove to a suitable place. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/rockchip'Sascha Hauer2023-04-196-28/+314
|\
| * arm: rockchip: add support for CM3 on IO boardRouven Czerwinski2023-04-051-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Working: - RKBIN DDR training (rk3566_ddr_1056MHz_v1.13.bin) - RKBIN TF-A (v1.34) from RKBIN - Environment storage - DHCP, ping and link detection Signed-off-by: Rouven Czerwinski <rouven@czerwinskis.de> Link: https://lore.barebox.org/20230330161101.58529-1-r.czerwinski@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: Rockchip: Do not pass device tree to TF-ASascha Hauer2023-04-051-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The downstream TF-A doesn't cope with our device tree when CONFIG_OF_OVERLAY_LIVE is enabled, supposedly because it is too big for some reason. Otherwise it doesn't have any visible effect if we pass a device tree or not, except that the TF-A fills in the ethernet MAC address into the device tree. The upstream TF-A doesn't use the device tree at all. Pass NULL for now until we have a good reason to pass a real device tree. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: Rockchip: make bootsource logic generic to all SoCsAhmad Fatoum2023-04-054-28/+57
| | | | | | | | | | | | | | | | | | | | | | | | Decoding of the bootsource from the register value can be shared across multiple Rockchip SoCs. Move the code to a common place to allow for that. At least with some TF-A versions the IRAM where the bootsource is stored cannot not be accessed in normal mode, so read it out before we start the TF-A. For this the scratch space is used. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: Rockchip: Add rk3568 specific barebox entry functionSascha Hauer2023-04-031-0/+19
| | | | | | | | | | | | | | Add a rk3568 specific barebox entry function to simplify board code. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: Rockchip: implement memory read out from controllerAhmad Fatoum2023-04-032-0/+220
| | | | | | | | | | | | | | | | | | | | Add a driver to read out the amount of memory from the DDR controller. The decoding of the registers has been taken from U-Boot. Currently supported are the RK3399 and the RK3568, but decoding should work on other Rockchip SoCs as well. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: Rockchip: let boards depend on 32/64bitSascha Hauer2023-04-051-1/+8
|/ | | | | | | | So far we can enable support for 32bit and 64bit SoCs at the same time which results in an unbuildable barebox. This is annoying, let the board visibility depend on the selected code model. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: Rockchip: Make safe for multi-archSascha Hauer2023-03-072-6/+27
| | | | | | | Make sure Rockchip initcalls are only executed when running on a Rockchip SoC. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: Rockchip: Move mach header files to include/mach/rockchipSascha Hauer2023-03-0617-1266/+12
| | | | | | | | | | Currently arch specific headers can be included with possible as there won't be a single mach anymore. Move all Rockchip specific header files to include/mach/rockchip/ to prepare for multi-arch support. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: rockchip: drop mach/timer.hSascha Hauer2023-03-011-19/+0
| | | | | | | | mach/timer.h only contains the declaration of struct rk_timer. Move this into its only user and drop the file. Link: https://lore.barebox.org/20230228143031.1718565-4-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: rockchip: add missing header to <mach/rockchip.h>Ahmad Fatoum2023-02-211-0/+2
| | | | | | | | The header uses error codes, so include the appropriate header. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Link: https://lore.barebox.org/20230221070749.1130753-1-ahmad@a3f.at Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: rockchip: make ATF installation optionalAhmad Fatoum2023-01-103-3/+17
| | | | | | | | | | | | | | On RK3399, ATF running as BL31 will disable normal world access to some peripherals. To make it easier to develop PBL code that accesses these peripherals prior to ATF installation, support running barebox proper in EL3, so all of memory can be poked from the barebox shell. This is strictly a development feature. Linux on ARM64 is not meant to be booted without PSCI, which the secure monitor provides. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Link: https://lore.barebox.org/20230109180024.2018960-1-ahmad@a3f.at Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: dts: rk356x: align bootsource_instance numbering and MMC DT aliasesAhmad Fatoum2022-08-091-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A common scripting pattern in barebox is continuing boot from the current bootsource: if [ "$bootsource" = "mmc" ]; then global.boot.default="mmc${bootsource_instance} ${global.boot.default}" fi This fails on the RK356x boards, because of a mismatch in numbering: block device numbering is dictated by the mmc* DT aliases and numbering used for bootsource_instance is taken as is from what the bootrom reports. On SoCs like i.MX, this is a much rarer issue, because the upstream DT has predefined aliases in the same order as reported by the bootrom. In Rockchip DTs on the other hand, aliases are delegated to the board device trees and all boards we support have aliases in an order different from what the bootrom numbering. Fix this by employing the newly supported barebox,bootsource-* mapping table. As a result $bootsource_instance will change. We fix the upstream code depending on specific numbering here, but custom scripts and board code may still be broken. Co-developed-by: Johannes Zink <j.zink@pengutronix.de> Signed-off-by: Johannes Zink <j.zink@pengutronix.de> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Tested-by: Johannes Zink <j.zink@pengutronix.de> # Radxa Rockpi3A Link: https://lore.barebox.org/20220720055042.3510276-4-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* bootsource: rename existing bootsource_set to bootsource_set_rawAhmad Fatoum2022-08-092-4/+2
| | | | | | | | | | | | | | | | | Patterns like [ "$bootsource" = mmc ] && boot mmc$bootsource_instance expect that ${bootsource_instance} and MMC aliases align, which may not always be the case. In preparation for adding a new bootsource_set function that consults an optional mapping table from bootrom bootsource_instance to board-specific device numbering, rename all existing instances to bootsource_set_raw. While at it, clean up the legacy split into bootsource_set and bootsource_set_instance and have the new bootsource_set_raw accept both arguments at once. No functional change intended. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20220720055042.3510276-2-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/rpi4'Sascha Hauer2022-06-291-1/+1
|\
| * ARM: cpu: remove unnecessary CONFIG_SYS_SUPPORTS_64BIT_KERNELAhmad Fatoum2022-06-171-1/+0
| | | | | | | | | | | | | | | | | | | | For ARM, SYS_SUPPORTS_64BIT_KERNEL is selected exclusively by symbols that also select CPU_SUPPORTS_64BIT_KERNEL, so we can drop SYS_SUPPORTS_64BIT_KERNEL safely. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20220609055922.667016-12-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: cpu: prevent recursive dependencies via CPU_SUPPORTS_64BIT_KERNELAhmad Fatoum2022-06-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | For ARM, CONFIG_CPU_SUPPORTS_64BIT_KERNEL's only function, along with CONFIG_SYS_SUPPORTS_64BIT_KERNEL is to control visibility of the 64BIT symbol. Select it from CPU_V8 is detrimental, because subarches may want to select CPU_SUPPORTS_64BIT_KERNEL unconditionally and select CPU_V8 only if 64BIT was chosen. This currently leads to a recursive dependency, so break this up. No functional change just yet. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20220609055922.667016-11-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | arm: rockchip: add support for the radxa rock3 boardMichael Riesch2022-06-081-0/+6
|/ | | | | | | | | Add basic support for the Radxa ROCK3 Model A board (featuring the Rockchip RK3568 SoC). Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net> Link: https://lore.barebox.org/20220531162624.245664-4-michael.riesch@wolfvision.net Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: rockchip: fix iodomain for r2pro V1.0Frank Wunderlich2022-05-161-0/+3
| | | | | | | | | | | | | Current code sets vccio4 and vccio6 both to 1v8. R2Pro v1.0 needs 3v3 setting on vccio4, else gmac0 (switch for lan-ports) will be damaged. IO-domain is per default 3v3 so only vccio6 needs to be set to 1v8 and clear this bit in the 3v3 register. Fixes: 8ba96c5942d6 ("ARM: rockchip: add BPI-R2-Pro V00 board") Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Link: https://lore.barebox.org/20220514155609.8306-1-linux@fw-web.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: Rockchip: Add rk3568 BananaPi R2 Pro board supportFrank Wunderlich2022-02-111-0/+6
| | | | | | | | | | | | | | | | | | This adds support for the BananaPi R2 Pro board. It is basicly a copy of rk3568 evb board but with slightly modified DTS. Added GPIO-Leds to dts and modified the hw-detection a bit. Tested features so far are: - 1st stage booting - Network - SD card and Emmc - usb (1.1 and 3 work, usb2 not working) - power LED (green) Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Link: https://lore.barebox.org/20220211091354.11573-1-linux@fw-web.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/spdx'Sascha Hauer2022-01-198-0/+16
|\
| * arch: add SPDX-License-Identifier to all .c filesAhmad Fatoum2022-01-051-0/+2
| | | | | | | | | | | | | | | | | | Record GPL-2.0-only as license for all files lacking an explicit license statement. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20220103120539.1730644-11-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * arch: add SPDX-License-Identifier to all headersAhmad Fatoum2022-01-055-0/+10
| | | | | | | | | | | | | | | | | | Record GPL-2.0-only as license for all files lacking an explicit license statement. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20220103120539.1730644-9-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * treewide: add SPDX-License-Identifier for Kbuild/KconfigAhmad Fatoum2022-01-052-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To verify only Kconfig/Makefile is touched: git show --numstat --format=oneline HEAD | grep -v 'Kconfig\|Makefile' will print only arch/powerpc/Kbuild. To verify nothing unexpected is added: git show -U0 | grep '^-[^-]\|^+[^+]' | sort -u Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20220103120539.1730644-3-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | clk: rockchip: extend for rk3399 supportAhmad Fatoum2022-01-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | This is a very straight-forward port of Linux' clock driver for the SoC facilitated with the very convenient changes done to synchronize barebox clock framework with Linux'. It adds support for clock tree, restart handler and a reset controller. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Link: https://lore.barebox.org/20220114083825.726347-3-ahmad@a3f.at Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM64: rockchip: add config symbol for ARMv8-based rk3399 SoCAhmad Fatoum2022-01-175-1/+51
| | | | | | | | | | | | | | | | | | As preperation for adding support for the RK3399-based Radxa Rock Pi N10, define the ARCH_RK3399 config symbol and associated boilerplate. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Link: https://lore.barebox.org/20220114083825.726347-2-ahmad@a3f.at Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: rockchip: add new ARCH_ROCKCHIP_{V7,V8} symbolsAhmad Fatoum2022-01-142-8/+14
|/ | | | | | | | | | In preparation for adding rk3399 support, which is another SoC with ARMv8 CPUs, add new ARCH_ROCKCHIP_{V7,V8} symbols for the common functionality. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Link: https://lore.barebox.org/20220114083825.726347-1-ahmad@a3f.at Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* arm: rockchip: add support for the quartz64 boardMichael Riesch2021-11-172-0/+8
| | | | | | | | | | | The Pine64 Quartz64 board features the Rockchip RK3566, a reduced but largely identical version of the RK3568. Two models (A and B) of the Quartz64 board are envisaged, where this patch targets the already available model A. Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/rockchip'Sascha Hauer2021-11-158-46/+196
|\
| * ARM: Rockchip: add delimiter between boards and board featuresAhmad Fatoum2021-11-101-1/+4
| | | | | | | | | | | | | | | | | | The CONFIG_ARCH_RK3568_OPTEE is directly after the boards, has a very generic name and is selectable without CONFIG_ARCH_RK3568. Fix these. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20211108075209.2366770-9-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: Rockchip: make rk3568's atf_load_bl31 reusableAhmad Fatoum2021-11-101-24/+29
| | | | | | | | | | | | | | | | | | | | | | | | Future support for rk3399 can use the same function, so move the bulk into a macro. We can't use a function here, because the function itself uses macros like IS_ENABLED() and get_builtin_firmware(), which we would have to call outside of the common code, reducing amount of code we share. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20211108075209.2366770-8-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: Rockchip: rk3568: make rk3568_lowlevel_init voidAhmad Fatoum2021-11-082-4/+2
| | | | | | | | | | | | | | | | | | The lowlevel_init can't fail and there's no sane way to deal with an error that early anyway, so make return type void. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20211108075209.2366770-4-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ARM: Rockchip: init: propagate error in init functionAhmad Fatoum2021-11-081-8/+7
| | | | | | | | | | | | | | | | | | | | The SoC init functions return an error code when run on a SoC without support compiled in. Propagate error codes, so this is reported to the user. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20211108075209.2366770-3-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>