summaryrefslogtreecommitdiff
path: root/arch/arm64
AgeCommit message (Collapse)AuthorFilesLines
2021-01-14KVM: arm64: Allow PSCI SYSTEM_OFF/RESET to returnDavid Brazdil1-8/+5
The KVM/arm64 PSCI relay assumes that SYSTEM_OFF and SYSTEM_RESET should not return, as dictated by the PSCI spec. However, there is firmware out there which breaks this assumption, leading to a hyp panic. Make KVM more robust to broken firmware by allowing these to return. Signed-off-by: David Brazdil <dbrazdil@google.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20201229160059.64135-1-dbrazdil@google.com
2021-01-14KVM: arm64: Simplify handling of absent PMU system registersMarc Zyngier1-7/+1
Now that all PMU registers are gated behind a .visibility callback, remove the other checks against an absent PMU. Signed-off-by: Marc Zyngier <maz@kernel.org>
2021-01-14KVM: arm64: Hide PMU registers from userspace when not availableMarc Zyngier1-20/+48
It appears that while we are now able to properly hide PMU registers from the guest when a PMU isn't available (either because none has been configured, the host doesn't have the PMU support compiled in, or that the HW doesn't have one at all), we are still exposing more than we should to userspace. Introduce a visibility callback gating all the PMU registers, which covers both usrespace and guest. Signed-off-by: Marc Zyngier <maz@kernel.org>
2021-01-14arm64: dts: renesas: r8a779a0: Add pinctrl device nodeUlrich Hecht1-0/+9
This patch adds the pinctrl device node for the R8A779A0 (V3U) SoC. Signed-off-by: Ulrich Hecht <uli+renesas@fpond.eu> Link: https://lore.kernel.org/r/20210112165948.31162-1-uli+renesas@fpond.eu Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2021-01-13Merge v5.11-rc3Mark Brown28-137/+144
2021-01-13arm64: make atomic helpers __always_inlineArnd Bergmann1-5/+5
With UBSAN enabled and building with clang, there are occasionally warnings like WARNING: modpost: vmlinux.o(.text+0xc533ec): Section mismatch in reference from the function arch_atomic64_or() to the variable .init.data:numa_nodes_parsed The function arch_atomic64_or() references the variable __initdata numa_nodes_parsed. This is often because arch_atomic64_or lacks a __initdata annotation or the annotation of numa_nodes_parsed is wrong. for functions that end up not being inlined as intended but operating on __initdata variables. Mark these as __always_inline, along with the corresponding asm-generic wrappers. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Will Deacon <will@kernel.org> Link: https://lore.kernel.org/r/20210108092024.4034860-1-arnd@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2021-01-13arm64: rename S_FRAME_SIZE to PT_REGS_SIZEJianlin Lv4-17/+17
S_FRAME_SIZE is the size of the pt_regs structure, no longer the size of the kernel stack frame, the name is misleading. In keeping with arm32, rename S_FRAME_SIZE to PT_REGS_SIZE. Signed-off-by: Jianlin Lv <Jianlin.Lv@arm.com> Acked-by: Mark Rutland <mark.rutland@arm.com> Link: https://lore.kernel.org/r/20210112015813.2340969-1-Jianlin.Lv@arm.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2021-01-13Revert "arm64: Enable perf events based hard lockup detector"Will Deacon2-41/+2
This reverts commit 367c820ef08082e68df8a3bc12e62393af21e4b5. lockup_detector_init() makes heavy use of per-cpu variables and must be called with preemption disabled. Usually, it's handled early during boot in kernel_init_freeable(), before SMP has been initialised. Since we do not know whether or not our PMU interrupt can be signalled as an NMI until considerably later in the boot process, the Arm PMU driver attempts to re-initialise the lockup detector off the back of a device_initcall(). Unfortunately, this is called from preemptible context and results in the following splat: | BUG: using smp_processor_id() in preemptible [00000000] code: swapper/0/1 | caller is debug_smp_processor_id+0x20/0x2c | CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.10.0+ #276 | Hardware name: linux,dummy-virt (DT) | Call trace: | dump_backtrace+0x0/0x3c0 | show_stack+0x20/0x6c | dump_stack+0x2f0/0x42c | check_preemption_disabled+0x1cc/0x1dc | debug_smp_processor_id+0x20/0x2c | hardlockup_detector_event_create+0x34/0x18c | hardlockup_detector_perf_init+0x2c/0x134 | watchdog_nmi_probe+0x18/0x24 | lockup_detector_init+0x44/0xa8 | armv8_pmu_driver_init+0x54/0x78 | do_one_initcall+0x184/0x43c | kernel_init_freeable+0x368/0x380 | kernel_init+0x1c/0x1cc | ret_from_fork+0x10/0x30 Rather than bodge this with raw_smp_processor_id() or randomly disabling preemption, simply revert the culprit for now until we figure out how to do this properly. Reported-by: Lecopzer Chen <lecopzer.chen@mediatek.com> Signed-off-by: Will Deacon <will@kernel.org> Acked-by: Mark Rutland <mark.rutland@arm.com> Cc: Sumit Garg <sumit.garg@linaro.org> Cc: Alexandru Elisei <alexandru.elisei@arm.com> Link: https://lore.kernel.org/r/20201221162249.3119-1-lecopzer.chen@mediatek.com Link: https://lore.kernel.org/r/20210112221855.10666-1-will@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2021-01-13arm64: entry: remove redundant IRQ flag tracingMark Rutland2-15/+1
All EL0 returns go via ret_to_user(), which masks IRQs and notifies lockdep and tracing before calling into do_notify_resume(). Therefore, there's no need for do_notify_resume() to call trace_hardirqs_off(), and the comment is stale. The call is simply redundant. In ret_to_user() we call exit_to_user_mode(), which notifies lockdep and tracing the IRQs will be enabled in userspace, so there's no need for el0_svc_common() to call trace_hardirqs_on() before returning. Further, at the start of ret_to_user() we call trace_hardirqs_off(), so not only is this redundant, but it is immediately undone. In addition to being redundant, the trace_hardirqs_on() in el0_svc_common() leaves lockdep inconsistent with the hardware state, and is liable to cause issues for any C code or instrumentation between this and the call to trace_hardirqs_off() which undoes it in ret_to_user(). This patch removes the redundant tracing calls and associated stale comments. Fixes: 23529049c684 ("arm64: entry: fix non-NMI user<->kernel transitions") Signed-off-by: Mark Rutland <mark.rutland@arm.com> Acked-by: Will Deacon <will@kernel.org> Cc: James Morse <james.morse@arm.com> Cc: Will Deacon <will@kernel.org> Link: https://lore.kernel.org/r/20210107145310.44616-1-mark.rutland@arm.com Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2021-01-13arm64: dts: allwinner: h6: PineH64 model B: Add bluetoothJernej Skrabec1-0/+15
PineH64 model B has wifi+bt combo module. Wifi is already supported, so lets add also bluetooth node. Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Acked-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://lore.kernel.org/r/20210110211606.3733056-1-jernej.skrabec@siol.net
2021-01-13arm64: dts: allwinner: pinephone: Support volume key wakeupSamuel Holland1-0/+1
PinePhone volume keys are connected to the LRADC in the A64. Users may want to use them to wake the device from sleep. Support this by declaring the LRADC as a wakeup source. Reviewed-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Samuel Holland <samuel@sholland.org> Signed-off-by: Maxime Ripard <maxime@cerno.tech> Link: https://lore.kernel.org/r/20210113040542.34247-4-samuel@sholland.org
2021-01-13arm64: dts: qcom: sdm845: Reserve LPASS clocks in gccBjorn Andersson2-2/+6
The GCC_LPASS_Q6_AXI_CLK and GCC_LPASS_SWAY_CLK clocks may not be touched on a typical UEFI based SDM845 device, but when the kernel is built with CONFIG_SDM_LPASSCC_845 this happens, unless they are marked as protected-clocks in the DT. This was done for the MTP and the Pocophone, but not for DB845c and the Lenovo Yoga C630 - causing these to fail to boot if the LPASS clock controller is enabled (which it typically isn't). Tested-by: Vinod Koul <vkoul@kernel.org> #on db845c Reviewed-by: Vinod Koul <vkoul@kernel.org> Link: https://lore.kernel.org/r/20201222001103.3112306-1-bjorn.andersson@linaro.org Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2021-01-12arm64: Remove arm64_dma32_phys_limit and its usesCatalin Marinas2-17/+19
With the introduction of a dynamic ZONE_DMA range based on DT or IORT information, there's no need for CMA allocations from the wider ZONE_DMA32 since on most platforms ZONE_DMA will cover the 32-bit addressable range. Remove the arm64_dma32_phys_limit and set arm64_dma_phys_limit to cover the smallest DMA range required on the platform. CMA allocation and crashkernel reservation now go in the dynamically sized ZONE_DMA, allowing correct functionality on RPi4. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Chen Zhou <chenzhou10@huawei.com> Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Tested-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> # On RPi4B
2021-01-12arm64: dts: qcom: sm8150: Add support for deep CPU cluster idleDanny Lin1-18/+73
This commit adds support for deep idling of the entire unified DynamIQ CPU cluster on sm8150. In this idle state, the LLCC (Last-Level Cache Controller) is powered off and the AOP (Always-On Processor) enters a low-power sleep state. I'm not sure what the per-CPU 0x400000f4 idle state previously contributed by Qualcomm as the "cluster sleep" state is, but the downstream kernel has no such state. The real deep cluster idle state is 0x41000c244, composed of: Cluster idle state: (0xc24) << 4 = 0xc240 Is reset state: 1 << 30 = 0x40000000 Affinity level: 1 << 24 = 0x1000000 CPU idle state: 0x4 (power collapse) This setup can be replicated with the PSCI power domain cpuidle driver, which utilizes OSI to enter cluster idle when the last active CPU enters idle. The cluster idle state cannot be used as a plain cpuidle state because it requires that all CPUs in the cluster are idling. Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Danny Lin <danny@kdrag0n.dev> Link: https://lore.kernel.org/r/20210105201000.913183-1-danny@kdrag0n.dev Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2021-01-12arm64: dts: qcom: Clean up sc7180-trogdor voltage railsDouglas Anderson1-75/+7
For a bunch of rails we really don't do anything with them in Linux. These are things like modem voltage rails that the modem manages these itself and core rails (like IO rails) that are setup to just automagically do the right thing by the firmware. Let's stop even listing those rails in our device tree. The net result of this is that some of these rails might be able to go down to a lower voltage or perhaps transition to LPM (low power mode) sometimes. Here's a list of what we're doing and why: * L1A - only goes to SoC and doesn't seem associated with any particular peripheral. Kernel isn't doing anything with this. Removing from dts. NET IMPACT: rail might drop from 1.2V to 1.178V and switch to LPM in some cases depending on firmware. * L2A - only goes to SoC and doesn't seem associated with any particular peripheral. Kernel isn't doing anything with this. Removing from dts. NET IMPACT: rail might switch to LPM in some cases depending on firmware. * L3A - only goes to SoC and doesn't seem associated with any particular peripheral. Kernel isn't doing anything with this. Removing from dts. NET IMPACT: rail might switch to LPM in some cases depending on firmware. * L5A - seems to be totally unused as far as I can tell and doesn't even come off QSIP. Removing from dts. * L6A - only goes to SoC and doesn't seem associated with any particular peripheral (I think?). Kernel isn't doing anything with this. Removing from dts. NET IMPACT: rail might switch to LPM in some cases depending on firmware. * L16A - Looks like this is only used for internal RF stuff. Removing from dts. NET IMPACT: rail might switch to LPM in some cases depending on firmware. * L1C - Just goes to WiFi / Bluetooth. Trust how IDP has this set and put this back at 1.616V min. * L4C - This goes out to the eSIM among other places. This looks like it's intended to be for SIM card and modem manages. NET IMPACT: rail might switch to LPM in some cases depending on firmware. * L5C - This goes to the physical SIM. This looks like it's intended to be for SIM card and modem manages. NET IMPACT: rail might drop from 1.8V to 1.648V and switch to LPM in some cases depending on firmware. NOTE: in general for anything which is supposed to be managed by Linux I still left it all forced to HPM since I'm not 100% sure that all the needed calls to regulator_set_load() are in place and HPM is safer. Switching more things to LPM can happen in a future patch. ALSO NOTE: Power measurements showed no measurable difference after applying this patch, so perhaps it should be viewed more as a cleanup than any power savings. Reviewed-by: Alexandru M Stan <amstan@google.com> Signed-off-by: Douglas Anderson <dianders@chromium.org> Link: https://lore.kernel.org/r/20201207143255.1.Ib92ec35163682dec4b2fbb4bde0785cb6e6dde27@changeid Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
2021-01-11arm64: dts: ti: k3-j7200-common-proc-board: Enable PCIeKishon Vijay Abraham I1-0/+15
x2 lane PCIe slot in the common processor board is enabled and connected to j7200 SOM. Add PCIe DT node in common processor board to reflect the same. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com> Link: https://lore.kernel.org/r/20210105151421.23237-7-kishon@ti.com
2021-01-11arm64: dts: ti: k3-j7200-common-proc-board: Enable SERDES0Kishon Vijay Abraham I1-0/+23
Add sub-nodes to SERDES0 DT node to represent SERDES0 is connected to PCIe and QSGMII (multi-link SERDES). Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com> Link: https://lore.kernel.org/r/20210105151421.23237-6-kishon@ti.com
2021-01-11arm64: dts: ti: k3-j7200-main: Add PCIe device tree nodeKishon Vijay Abraham I1-0/+48
Add PCIe device tree node (both RC and EP) for the single PCIe instance present in j7200. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com> Link: https://lore.kernel.org/r/20210105151421.23237-5-kishon@ti.com
2021-01-11arm64: dts: ti: k3-j7200-main: Add SERDES and WIZ device tree nodeKishon Vijay Abraham I1-0/+63
Add dt node for the single instance of WIZ (SERDES wrapper) and SERDES module shared by PCIe, CPSW (SGMII/QSGMII) and USB. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com> Link: https://lore.kernel.org/r/20210105151421.23237-4-kishon@ti.com
2021-01-11arm64: dts: ti: k3-j721e-main: Remove "syscon" nodes added for pcieX_ctrlKishon Vijay Abraham I1-40/+8
Remove "syscon" nodes added for pcieX_ctrl and have the PCIe node point to the parent with an offset argument. This change is as discussed in [1]. [1] -> http://lore.kernel.org/r/CAL_JsqKiUcO76bo1GoepWM1TusJWoty_BRy2hFSgtEVMqtrvvQ@mail.gmail.com Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com> Link: https://lore.kernel.org/r/20210105151421.23237-3-kishon@ti.com
2021-01-11arm64: dts: ti: k3-j721e-main: Fix supported max outbound regionsKishon Vijay Abraham I1-4/+0
Cadence IP in J721E supports a maximum of 32 outbound regions. However commit 4e5833884f66 ("arm64: dts: ti: k3-j721e-main: Add PCIe device tree nodes") incorrectly added this as 16 outbound regions. Now that "cdns,max-outbound-regions" is an optional property with default value as 32, remove "cdns,max-outbound-regions" from endpoint DT node. (Since this doesn't impact existing functionality, it need not be backported to older kernels). Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com> Link: https://lore.kernel.org/r/20210105151421.23237-2-kishon@ti.com
2021-01-11arm64: dts: renesas: rzg2: Add RPC-IF SupportAdam Ford4-0/+68
The RZ/G2 series contain the SPI Multi I/O Bus Controller (RPC-IF). Add the nodes, but make them disabled by default. Signed-off-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20210102115412.3402059-4-aford173@gmail.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2021-01-11arm64: dts: renesas: rzg2: Add usb2_clksel to RZ/G2 M/N/HAdam Ford3-0/+45
Per the reference manual for the RZ/G Series, 2nd Generation, the RZ/G2M, RZ/G2N, and RZ/G2H have a bit that can be set to choose between a crystal oscillator and an external oscillator. Because only boards that need this should enable it, it's marked as disabled by default for backwards compatibility with existing boards. Signed-off-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20201228202221.2327468-2-aford173@gmail.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2021-01-11arm64: dts: renesas: r8a774e1: Introduce beacon-rzg2h-kitAdam Ford2-0/+72
Beacon EmbeddedWorks is introducing a new kit based on the RZ/G2H SoC from Renesas. The SOM supports eMMC, WiFi and Bluetooth, along with a Cat-M1 cellular radio. The Baseboard has Ethernet, USB, HDMI, stereo audio in and out, along with a variety of push buttons and LED's, and support for a parallel RGB and an LVDS display. It uses the same baseboard and SOM files as the RZ/G2M and RZ/G2N kits. Signed-off-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20201224170502.2254683-8-aford173@gmail.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2021-01-11arm64: dts: renesas: r8a774b1: Introduce beacon-rzg2n-kitAdam Ford2-0/+67
Beacon EmbeddedWorks is introducing a new kit based on the RZ/G2N SoC from Renesas. The SOM supports eMMC, WiFi and Bluetooth, along with a Cat-M1 cellular radio. The Baseboard has Ethernet, USB, HDMI, stereo audio in and out, along with a variety of push buttons and LED's, and support for a parallel RGB and an LVDS display. It uses the same baseboard and SOM as the RZ/G2M. This SOM has only 2GB of DDR, and beacon-renesom-som.dtsi contains the base memory node, so an additional memory node isn't necessary. Signed-off-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20201224170502.2254683-7-aford173@gmail.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2021-01-11arm64: dts: renesas: beacon-rzg2m-kit: Rearrange SoC unique functionsAdam Ford3-20/+20
In preparation for adding new dev kits, move anything specific to the RZ/G2M from the SOM-level and baseboard-levels and move them to the kit-level. This allows the SOM and baseboard to be reused with other SoC's. Signed-off-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20201224170502.2254683-6-aford173@gmail.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2021-01-11arm64: dts: renesas: beacon: Better describe keysAdam Ford1-15/+15
The keys on the baseboard are laid out in an diamond pattern, up, down, left, right and center. Update the descriptions to make it easier to read. Signed-off-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20201224170502.2254683-4-aford173@gmail.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2021-01-11arm64: dts: renesas: beacon: Configure Audio CODEC clocksAdam Ford1-1/+2
With the newly added configurable clock options, the audio CODEC can configure the mclk automatically. Add the reference to the versaclock. Since the devices on I2C5 can communicate at 400KHz, let's also increase that too Signed-off-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20201224170502.2254683-3-aford173@gmail.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2021-01-11arm64: dts: renesas: beacon kit: Fix Audio Clock sourcesAdam Ford2-24/+22
The SoC was expecting two clock sources with different frequencies. One to support 44.1KHz and one to support 48KHz. With the newly added ability to configure the programmable clock, configure both clocks. Assign the rcar-sound clocks to reference the versaclock instead of the fixed clock. Signed-off-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20201224170502.2254683-2-aford173@gmail.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2021-01-11arm64: dts: renesas: beacon: Configure programmable clocksAdam Ford2-1/+52
When the board was added, clock drivers were being updated done at the same time to allow the versaclock driver to properly configure the modes. Unfortunately, the updates were not applied to the board files at the time they should have been, so do it now. Signed-off-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20201224170502.2254683-1-aford173@gmail.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2021-01-11Merge 5.11-rc3 into usb-nextGreg Kroah-Hartman28-137/+144
Resolves a merge issue in: drivers/usb/dwc3/gadget.c Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-01-11arm64: dts: freescale: Add support for phyBOARD-Pollux-i.MX8MPTeresa Remmet3-0/+455
Add initial support for phyBOARD-Pollux-i.MX8MP. Supported basic features: * eMMC * i2c EEPROM * i2c RTC * i2c LED * PMIC * debug UART * SD card * 1Gbit Ethernet (fec) * watchdog Signed-off-by: Teresa Remmet <t.remmet@phytec.de> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: defconfig: Enable PCA9532 supportTeresa Remmet1-0/+1
Enable i2c led expander PCA9532 module support populated on phyBOARD-Pollux-i.MX8M Plus. Signed-off-by: Teresa Remmet <t.remmet@phytec.de> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: defconfig: Enable rv3028 i2c rtc driverTeresa Remmet1-0/+1
Enable rv3028 i2c rtc driver as module. It is populated on phyBOARD-Pollux-i.MX8M Plus. Signed-off-by: Teresa Remmet <t.remmet@phytec.de> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: imx8mm: Add Gateworks i.MX 8M Mini Development KitsTim Harvey8-0/+1415
The Gateworks Venice GW71xx-0x/GW72xx-0x/GW73xx-0x are development kits consisting of a GW700x SoM and a Baseboard. Future SoM's such as the GW701x will create additional combinations. The GW700x SoM contains: - i.MX 8M Mini SoC - LPDDR4 DRAM - eMMC FLASH - Gateworks System Controller (eeprom/pushbutton/reset/voltage-monitor) - GbE PHY connected to the i.MX 8M Mini FEC - Power Management IC The GW71xx Baseboard contains: - 1x MiniPCIe Socket with USB2.0, PCIe, and SIM - 1x RJ45 GbE (i.MX 8M Mini FEC) - I/O connector with 1x-SPI/1x-I2C/1x-UART/4x-GPIO signals - PCIe Clock generator - GPS and accelerometer - 1x USB 2.0 Front Panel connector - wide range power supply The GW72xx Baseboard contains: - 2x MiniPCIe Socket with USB2.0, PCIe, and SIM - 2x RJ45 GbE (i.MX 8M Mini FEC and LAN743x) - 1x MicroSD connector - 1x USB 2.0 Front Panel connector - 1x SPI connector - 1x Serial connector supporting 2x-UART or 1x-UART configured as 1 of: RS232 w/ flow-control, RS485, RS422 - PCIe Clock generator - GPS and accelerometer - Media Expansion connector (MIPI-CSI/MIPI-DSI/GPIO/I2S) - I/O connector with 2x-ADC,2x-GPIO,1x-UART,1x-I2C - wide range power supply The GW73xx Baseboard contains: - 3x MiniPCIe Socket with USB2.0, PCIe, and SIM - 2x RJ45 GbE (i.MX 8M Mini FEC and LAN743x) - 1x MicroSD connector - 1x USB 2.0 Front Panel connector - 1x SPI connector - 1x Serial connector supporting 2x-UART or 1x-UART configured as 1 of: RS232 w/ flow-control, RS485, RS422 - WiFi/BT - PCIe Clock generator - GPS and accelerometer - Media Expansion connector (MIPI-CSI/MIPI-DSI/GPIO/I2S) - I/O connector with 2x-ADC,2x-GPIO,1x-UART,1x-I2C - wide range power supply Signed-off-by: Tim Harvey <tharvey@gateworks.com> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: imx8m: add NVMEM provider and consumer to read soc unique IDAlice Guo4-0/+24
In order to be able to use NVMEM APIs to read soc unique ID, add the nvmem data cell and name for nvmem-cells to the "soc" node, and add a nvmem node which provides soc unique ID to efuse@30350000. Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Alice Guo <alice.guo@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: imx8m: add SoC ID compatibleAlice Guo4-4/+4
Add compatible string to .dtsi files for binding of imx8_soc_info and device. Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Alice Guo <alice.guo@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: lx2160a: use constants in the clockgen phandleMichael Walle1-35/+57
Now that we have constants, use them. This is just a mechanical change. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: ls208xa: use constants in the clockgen phandleMichael Walle3-38/+81
Now that we have constants, use them. This is just a mechanical change. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: ls1088a: use constants in the clockgen phandleMichael Walle1-27/+64
Now that we have constants, use them. This is just a mechanical change. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: ls1046a: use constants in the clockgen phandleMichael Walle1-25/+48
Now that we have constants, use them. This is just a mechanical change. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: ls1043a: use constants in the clockgen phandleMichael Walle2-27/+52
Now that we have constants, use them. This is just a mechanical change. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: ls1028a: use constants in the clockgen phandleMichael Walle2-47/+120
Now that we have constants, use them. This is just a mechanical change. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: ls1012a: use constants in the clockgen phandleMichael Walle1-17/+43
Now that we have constants, use them. This is just a mechanical change. Signed-off-by: Michael Walle <michael@walle.cc> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: imx8mq-librem5-r3: workaround i2c1 issue with 1GHz cpu voltageMartin Kepplinger1-0/+6
This is a workaround for a hardware bug in the r3 revision that basically would stop the system due to traffic on the i2c1 bus. A cpu voltage change would trigger such traffic and that's what is avoided in order to work around it. Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: imx8mq-librem5: Move usdhc clocks assignment to board DTMartin Kepplinger1-0/+4
According to commit e045f044e84e ("arm64: dts: imx8mq: Move usdhc clocks assignment to board DT") add the clocks assignment to imx8mq-librem5.dtsi too. Fixes: e045f044e84e ("arm64: dts: imx8mq: Move usdhc clocks assignment to board DT") Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: imx8mq-librem5: add pinctrl for the touchscreen descriptionMartin Kepplinger1-0/+9
In order for the touchscreen interrupt line to work, describe it properly. Otherwise it can work if defaults are ok, but we cannot be sure. Fixes: 8f0216b006e5 ("arm64: dts: Add a device tree for the Librem 5 phone") Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: imx8mq-librem5: add vin-supply to VDD_1V8Martin Kepplinger1-7/+8
buck7 is the supply here. Also, fix alphabetical ordering. Signed-off-by: Martin Kepplinger <martin.kepplinger@puri.sm> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: dts: imx8mq: Add clock parents for mipi dphyGuido Günther1-3/+8
This makes sure the clock tree setup for the dphy is not dependent on other components. Without this change bringing up the display can fail like kernel: phy phy-30a00300.dphy.2: Invalid CM/CN/CO values: 165/217/1 kernel: phy phy-30a00300.dphy.2: for hs_clk/ref_clk=451656000/593999998 ~ 165/217 if LCDIF doesn't set up that part of the clock tree first. This was noticed when testing the Librem 5 devkit with defconfig. It doesn't happen when modules are built in. Signed-off-by: Guido Günther <agx@sigxcpu.org> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2021-01-11arm64: defconfig: Enable Librem 5 devkit componentsGuido Günther1-0/+9
The Librem 5 devkit is based on NXP's i.MX8MQ. Schematics are at https://source.puri.sm/Librem5/dvk-mx8m-bsb. This enables drivers for the following hardware components that aren't yet enabled in defconfig: - Goodix GT5688 touchscreen - iMX8MQ's PWM for the LCD backlight - TI BQ25896 charge controller - NXP SGTL5000 audio codec - Microcrystal RV-4162-C7 RTC - magnetometer: CONFIG_IIO_ST_MAGN_3AXIS - the SIMCom SIM7100E/A modem - NXP PTN5110HQZ usb-c controller Signed-off-by: Guido Günther <agx@sigxcpu.org> Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Signed-off-by: Shawn Guo <shawnguo@kernel.org>