26 Dec, 2020

1 commit

  • commit b9ce9b0f83b536a4ac7de7567a265d28d13e5bea upstream.

    This patch simply fixes a bug of referencing speedos[num] in every
    for-loop iteration in get_process_id function.

    Fixes: 0dc5a0d83675 ("soc/tegra: fuse: Add Tegra210 support")
    Cc:
    Signed-off-by: Nicolin Chen
    Signed-off-by: Thierry Reding
    Signed-off-by: Greg Kroah-Hartman

    Nicolin Chen
     

25 Oct, 2020

2 commits

  • Pull ARM Devicetree updates from Olof Johansson:
    "As usual, most of the changes are to devicetrees.

    Besides smaller fixes, some refactorings and cleanups, some of the new
    platforms and chips (or significant features) supported are below:

    Broadcom boards:
    - Cisco Meraki MR32 (BCM53016-based)
    - BCM2711 (RPi4) display pipeline support

    Actions Semi boards:
    - Caninos Loucos Labrador SBC (S500-based)
    - RoseapplePi SBC (S500-based)

    Allwinner SoCs/boards:
    - A100 SoC with Perf1 board
    - Mali, DMA, Cetrus and IR support for R40 SoC

    Amlogic boards:
    - Libretch S905x CC V2 board
    - Hardkernel ODROID-N2+ board

    Aspeed boards/platforms:
    - Wistron Mowgli (AST2500-based, Power9 OpenPower server)
    - Facebook Wedge400 (AST2500-based, ToR switch)

    Hisilicon SoC:
    - SD5203 SoC

    Nvidia boards:
    - Tegra234 VDK, for pre-silicon Orin SoC

    NXP i.MX boards:
    - Librem 5 phone
    - i.MX8MM DDR4 EVK
    - Variscite VAR-SOM-MX8MN SoM
    - Symphony board
    - Tolino Shine 2 HD
    - TQMa6 SoM
    - Y Soft IOTA Orion

    Rockchip boards:
    - NanoPi R2S board
    - A95X-Z2 board
    - more Rock-Pi4 variants

    STM32 boards:
    - Odyssey SOM board (STM32MP157CAC-based)
    - DH DRC02 board

    Toshiba SoCs/boards:
    - Visconti SoC and TPMV7708 board"

    * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (638 commits)
    ARM: dts: nspire: Fix SP804 users
    arm64: dts: lg: Fix SP804 users
    arm64: dts: lg: Fix SP805 clocks
    ARM: mstar: Fix up the fallout from moving the dts/dtsi files
    ARM: mstar: Add mstar prefix to all of the dtsi/dts files
    ARM: mstar: Add interrupt to pm_uart
    ARM: mstar: Add interrupt controller to base dtsi
    ARM: dts: meson8: remove two invalid interrupt lines from the GPU node
    arm64: dts: ti: k3-j7200-common-proc-board: Add USB support
    arm64: dts: ti: k3-j7200-common-proc-board: Configure the SERDES lane function
    arm64: dts: ti: k3-j7200-main: Add USB controller
    arm64: dts: ti: k3-j7200-main.dtsi: Add USB to SERDES lane MUX
    arm64: dts: ti: k3-j7200-main: Add SERDES lane control mux
    dt-bindings: ti-serdes-mux: Add defines for J7200 SoC
    ARM: dts: hisilicon: add SD5203 dts
    ARM: dts: hisilicon: fix the system controller compatible nodes
    arm64: dts: zynqmp: Fix leds subnode name for zcu100/ultra96 v1
    arm64: dts: zynqmp: Remove undocumented u-boot properties
    arm64: dts: zynqmp: Remove additional compatible string for i2c IPs
    arm64: dts: zynqmp: Rename buses to be align with simple-bus yaml
    ...

    Linus Torvalds
     
  • Pull ARM SoC-related driver updates from Olof Johansson:
    "Various driver updates for platforms. A bulk of this is smaller fixes
    or cleanups, but some of the new material this time around is:

    - Support for Nvidia Tegra234 SoC

    - Ring accelerator support for TI AM65x

    - PRUSS driver for TI platforms

    - Renesas support for R-Car V3U SoC

    - Reset support for Cortex-M4 processor on i.MX8MQ

    There are also new socinfo entries for a handful of different SoCs and
    platforms"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (131 commits)
    drm/mediatek: reduce clear event
    soc: mediatek: cmdq: add clear option in cmdq_pkt_wfe api
    soc: mediatek: cmdq: add jump function
    soc: mediatek: cmdq: add write_s_mask value function
    soc: mediatek: cmdq: add write_s value function
    soc: mediatek: cmdq: add read_s function
    soc: mediatek: cmdq: add write_s_mask function
    soc: mediatek: cmdq: add write_s function
    soc: mediatek: cmdq: add address shift in jump
    soc: mediatek: mtk-infracfg: Fix kerneldoc
    soc: amlogic: pm-domains: use always-on flag
    reset: sti: reset-syscfg: fix struct description warnings
    reset: imx7: add the cm4 reset for i.MX8MQ
    dt-bindings: reset: imx8mq: add m4 reset
    reset: Fix and extend kerneldoc
    reset: reset-zynqmp: Added support for Versal platform
    dt-bindings: reset: Updated binding for Versal reset driver
    reset: imx7: Support module build
    soc: fsl: qe: Remove unnessesary check in ucc_set_tdm_rxtx_clk
    soc: fsl: qman: convert to use be32_add_cpu()
    ...

    Linus Torvalds
     

10 Oct, 2020

2 commits

  • The Tegra PMC driver does ungodly things with the interrupt hierarchy,
    repeatedly corrupting it by pulling hwirq numbers out of thin air,
    overriding existing IRQ mappings and changing the handling flow
    of unsuspecting users.

    All of this is done in the name of preserving the interrupt hierarchy
    even when these levels do not exist in the HW. Together with the use
    of proper IRQs for IPIs, this leads to an unbootable system as the
    rescheduling IPI gets repeatedly repurposed for random drivers...

    Instead, let's simply mark the level from which the hierarchy does
    not make sense for the HW, and let the core code trim the usused
    levels from the hierarchy.

    Signed-off-by: Marc Zyngier

    Marc Zyngier
     
  • Make the PMC driver resistent to variable depth interrupt hierarchy,
    which we are about to introduce.

    Signed-off-by: Marc Zyngier

    Marc Zyngier
     

27 Sep, 2020

1 commit

  • …/git/tegra/linux into arm/dt

    arm64: tegra: Changes for v5.10-rc1

    This set of changes fixes some minor issues in existing device trees and
    adds ID EEPROMs on the Jetson Xavier NX. All ID EEPROMs are now labelled
    to allow them to be detected by software.

    It also adds support for the Tegra234 VDK board, which is a pre-silicon
    platform for the upcoming Orin SoC.

    * tag 'tegra-for-5.10-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
    arm64: tegra: Initial Tegra234 VDK support
    arm64: tegra: Populate EEPROMs for Jetson Xavier NX
    arm64: tegra: Add label properties for EEPROMs
    arm64: tegra: Add DT binding for AHUB components
    arm64: tegra: Enable ACONNECT, ADMA and AGIC on Jetson Nano
    arm64: tegra: Properly size register regions for GPU on Tegra194
    arm64: tegra: Use valid PWM period for VDD_GPU on Tegra210
    arm64: tegra: Describe display controller outputs for Tegra210
    arm64: tegra: Disable SD card write-protection on Jetson Nano
    arm64: tegra: Add VBUS supply for micro USB port on Jetson Nano
    arm64: tegra: Wire up pinctrl states for all DPAUX controllers
    arm64: tegra: Add ID EEPROMs on Jetson AGX Xavier

    Link: https://lore.kernel.org/r/20200918150303.3938852-5-thierry.reding@gmail.com
    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

18 Sep, 2020

7 commits


24 Aug, 2020

1 commit

  • Replace the existing /* fall through */ comments and its variants with
    the new pseudo-keyword macro fallthrough[1]. Also, remove unnecessary
    fall-through markings when it is the case.

    [1] https://www.kernel.org/doc/html/v5.7/process/deprecated.html?highlight=fallthrough#implicit-switch-case-fall-through

    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

17 Jul, 2020

1 commit


22 May, 2020

1 commit


08 May, 2020

2 commits

  • The PMIC wake event can be used to bring the system out of suspend based
    on certain events happening on the PMIC (such as an RTC alarm).

    Signed-off-by: Jon Hunter
    Signed-off-by: Thierry Reding

    Jon Hunter
     
  • I have hit the following build error:
    armv7a-hardfloat-linux-gnueabi-ld: drivers/soc/tegra/pmc.o: in function `pinconf_generic_dt_node_to_map_pin':
    pmc.c:(.text+0x500): undefined reference to `pinconf_generic_dt_node_to_map'
    armv7a-hardfloat-linux-gnueabi-ld: drivers/soc/tegra/pmc.o:(.rodata+0x1f88): undefined reference to `pinconf_generic_dt_free_map'

    So SOC_TEGRA_PMC should select GENERIC_PINCONF.

    Fixes: 4a37f11c8f57 ("soc/tegra: pmc: Implement pad configuration via pinctrl")
    Cc: stable
    Signed-off-by: Corentin Labbe
    Signed-off-by: Thierry Reding

    Corentin Labbe
     

22 Apr, 2020

4 commits

  • Currently the SoC revision attribute for Tegra devices displays the
    value of the enum associated with a particular revision. This is not
    very useful because to obtain the actual revision you need to
    use the tegra_revision enumeration to translate the value.

    It is more meaningful to display a name for the revision, such as
    'A01', than the enumarated value and therefore, update the revision
    attribute to display a name. This change does alter the ABI, which
    is unfortunate, but this is more meaningful and maintable.

    Signed-off-by: Jon Hunter
    Signed-off-by: Thierry Reding

    Jon Hunter
     
  • Clean-up the tegra_init_revision() function by removing the 'rev'
    variable which is not needed and use the newly added helper function
    tegra_get_minor_rev() to get the minor revision.

    Signed-off-by: Jon Hunter
    Signed-off-by: Thierry Reding

    Jon Hunter
     
  • Add a custom SoC attribute for Tegra to expose the HIDREV register
    fields to userspace via the sysfs. This register provides additional
    details about the type of device (eg, silicon, FPGA, etc) as well as
    revision. Exposing this information is useful for identifying the
    exact device revision and device type.

    For Tegra devices up until Tegra186, the majorrev and minorrev fields of
    the HIDREV register are used to determine the device revision and device
    type. For Tegra194, the majorrev and minorrev fields only determine the
    revision. Starting with Tegra194, there is an additional field,
    pre_si_platform (which occupies bits 20-23), that now determines device
    type. Therefore, for all Tegra devices, add a custom SoC attribute for
    the majorrev and minorrev fields and for Tegra194 add an additional
    attribute for the pre_si_platform field.

    Signed-off-by: Jon Hunter
    Signed-off-by: Thierry Reding

    Jon Hunter
     
  • The PMIC wake event can be used to bring the system out of suspend based
    on certain events happening on the PMIC (such as an RTC alarm).

    Signed-off-by: Thierry Reding
    Acked-by: Jon Hunter
    Tested-by: Jon Hunter

    Thierry Reding
     

26 Mar, 2020

1 commit

  • …egra/linux into arm/soc

    soc/tegra: Changes for v5.7-rc1

    These changes implement various clocks that are controlled by the PMC
    and add support for configuring the voltage level of some pins (needed
    for example to support high-speed modes on the SD/MMC interfaces).

    * tag 'tegra-for-5.7-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
    soc/tegra: pmc: Cleanup whitespace usage
    soc/tegra: pmc: Add pins for Tegra194
    soc/tegra: Add support for 32 kHz blink clock
    soc/tegra: Add Tegra PMC clocks registration into PMC driver
    dt-bindings: usb: Add NVIDIA Tegra XUSB device mode controller binding
    dt-bindings: phy: tegra-xusb: Add usb-role-switch
    dt-bindings: phy: tegra: Add Tegra194 support
    dt-bindings: soc: tegra-pmc: Add ID for Tegra PMC 32 kHz blink clock
    dt-bindings: soc: tegra-pmc: Add Tegra PMC clock bindings
    dt-bindings: tegra: Convert Tegra PMC bindings to YAML
    dt-bindings: clock: tegra: Add IDs for OSC clocks

    Link: https://lore.kernel.org/r/20200313165848.2915133-3-thierry.reding@gmail.com
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>

    Arnd Bergmann
     

13 Mar, 2020

4 commits

  • Avoid using a mixture of tabs and spaces within tables to make them
    easier to read and more consistently formatted.

    Signed-off-by: Thierry Reding

    Thierry Reding
     
  • Extend the Tegra194 IO pad table with additional information such as pin
    names and 1.8/3.3 V settings to allow a table of voltage control pins to
    generated from it. This is similar to what's done for older chips and is
    needed to support high-speed modes for SDHCI where switching the pins to
    1.8V or 3.3V is necessary.

    Signed-off-by: Venkat Reddy Talla
    Signed-off-by: Thierry Reding

    Venkat Reddy Talla
     
  • Tegra PMC has blink control to output 32 kHz clock out to Tegra blink
    pin. Blink pad DPD state and enable controls are part of Tegra PMC
    register space.

    Currently Tegra clock driver registers blink control by passing PMC
    address and register offset to clk_register_gate which performs direct
    PMC access during clk_ops and with this when PMC is in secure mode, any
    access from non-secure world does not go through.

    This patch adds blink control registration to the Tegra PMC driver using
    PMC specific clock gate operations that use tegra_pmc_readl() and
    tegra_pmc_writel() to support both secure mode and non-secure
    mode PMC register access.

    Tested-by: Dmitry Osipenko
    Reviewed-by: Dmitry Osipenko
    Signed-off-by: Sowjanya Komatineni
    Signed-off-by: Thierry Reding

    Sowjanya Komatineni
     
  • Tegra PMC has clk_out_1, clk_out_2, and clk_out_3 clocks and currently
    these PMC clocks are registered by Tegra clock driver with each clock as
    separate mux and gate clocks using clk_register_mux and clk_register_gate
    by passing PMC base address and register offsets and PMC programming for
    these clocks happens through direct PMC access by the clock driver.

    With this, when PMC is in secure mode any direct PMC access from the
    non-secure world does not go through and these clocks will not be
    functional.

    This patch adds these PMC clocks registration to pmc driver with PMC as
    a clock provider and registers each clock as single clock.

    clk_ops callback implementations for these clocks uses tegra_pmc_readl and
    tegra_pmc_writel which supports PMC programming in both secure mode and
    non-secure mode.

    Tested-by: Dmitry Osipenko
    Reviewed-by: Dmitry Osipenko
    Signed-off-by: Sowjanya Komatineni
    Signed-off-by: Thierry Reding

    Sowjanya Komatineni
     

12 Feb, 2020

1 commit

  • If only Tegra194 support is enabled, the tegra30_fuse_read() and
    tegra30_fuse_init() function are not declared and cause a build failure.
    Add Tegra194 to the preprocessor guard to make sure these functions are
    available for Tegra194-only builds as well.

    Link: https://lore.kernel.org/r/20200203143114.3967295-1-thierry.reding@gmail.com
    Reported-by: kbuild test robot
    Signed-off-by: Thierry Reding
    Signed-off-by: Olof Johansson

    Thierry Reding
     

09 Feb, 2020

1 commit

  • Pull ARM SoC-related driver updates from Olof Johansson:
    "Various driver updates for platforms:

    - Nvidia: Fuse support for Tegra194, continued memory controller
    pieces for Tegra30

    - NXP/FSL: Refactorings of QuickEngine drivers to support
    ARM/ARM64/PPC

    - NXP/FSL: i.MX8MP SoC driver pieces

    - TI Keystone: ring accelerator driver

    - Qualcomm: SCM driver cleanup/refactoring + support for new SoCs.

    - Xilinx ZynqMP: feature checking interface for firmware. Mailbox
    communication for power management

    - Overall support patch set for cpuidle on more complex hierarchies
    (PSCI-based)

    and misc cleanups, refactorings of Marvell, TI, other platforms"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (166 commits)
    drivers: soc: xilinx: Use mailbox IPI callback
    dt-bindings: power: reset: xilinx: Add bindings for ipi mailbox
    drivers: soc: ti: knav_qmss_queue: Pass lockdep expression to RCU lists
    MAINTAINERS: Add brcmstb PCIe controller entry
    soc/tegra: fuse: Unmap registers once they are not needed anymore
    soc/tegra: fuse: Correct straps' address for older Tegra124 device trees
    soc/tegra: fuse: Warn if straps are not ready
    soc/tegra: fuse: Cache values of straps and Chip ID registers
    memory: tegra30-emc: Correct error message for timed out auto calibration
    memory: tegra30-emc: Firm up hardware programming sequence
    memory: tegra30-emc: Firm up suspend/resume sequence
    soc/tegra: regulators: Do nothing if voltage is unchanged
    memory: tegra: Correct reset value of xusb_hostr
    soc/tegra: fuse: Add APB DMA dependency for Tegra20
    bus: tegra-aconnect: Remove PM_CLK dependency
    dt-bindings: mediatek: add MT6765 power dt-bindings
    soc: mediatek: cmdq: delete not used define
    memory: tegra: Add support for the Tegra194 memory controller
    memory: tegra: Only include support for enabled SoCs
    memory: tegra: Support DVFS on Tegra186 and later
    ...

    Linus Torvalds
     

10 Jan, 2020

7 commits


06 Jan, 2020

1 commit


07 Dec, 2019

1 commit

  • …/git/tegra/linux into arm/fixes

    soc/tegra: Fixes for v5.5-rc1

    Fixes a regression for wake events on Tegra194 caused by the Tegra210
    support that was added in v5.5-rc1 as well as wrong reset sources and
    levels on Tegra194.

    * tag 'tegra-for-5.5-soc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
    soc/tegra: pmc: Add reset sources and levels on Tegra194
    soc/tegra: pmc: Add missing IRQ callbacks on Tegra194
    soc/tegra: pmc: Use lower-case for hexadecimal literals

    Link: https://lore.kernel.org/r/20191204130753.3614278-2-thierry.reding@gmail.com
    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

06 Dec, 2019

1 commit

  • Pull ARM SoC driver updates from Olof Johansson:
    "Various driver updates for platforms:

    - A larger set of work on Tegra 2/3 around memory controller and
    regulator features, some fuse cleanups, etc..

    - MMP platform drivers, in particular for USB PHY, and other smaller
    additions.

    - Samsung Exynos 5422 driver for DMC (dynamic memory configuration),
    and ASV (adaptive voltage), allowing the platform to run at more
    optimal operating points.

    - Misc refactorings and support for RZ/G2N and R8A774B1 from Renesas

    - Clock/reset control driver for TI/OMAP

    - Meson-A1 reset controller support

    - Qualcomm sdm845 and sda845 SoC IDs for socinfo"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (150 commits)
    firmware: arm_scmi: Fix doorbell ring logic for !CONFIG_64BIT
    soc: fsl: add RCPM driver
    dt-bindings: fsl: rcpm: Add 'little-endian' and update Chassis definition
    memory: tegra: Consolidate registers definition into common header
    memory: tegra: Ensure timing control debug features are disabled
    memory: tegra: Introduce Tegra30 EMC driver
    memory: tegra: Do not handle error from wait_for_completion_timeout()
    memory: tegra: Increase handshake timeout on Tegra20
    memory: tegra: Print a brief info message about EMC timings
    memory: tegra: Pre-configure debug register on Tegra20
    memory: tegra: Include io.h instead of iopoll.h
    memory: tegra: Adapt for Tegra20 clock driver changes
    memory: tegra: Don't set EMC rate to maximum on probe for Tegra20
    memory: tegra: Add gr2d and gr3d to DRM IOMMU group
    memory: tegra: Set DMA mask based on supported address bits
    soc: at91: Add Atmel SFR SN (Serial Number) support
    memory: atmel-ebi: switch to SPDX license identifiers
    memory: atmel-ebi: move NUM_CS definition inside EBI driver
    soc: mediatek: Refactor bus protection control
    soc: mediatek: Refactor sram control
    ...

    Linus Torvalds
     

18 Nov, 2019

1 commit

  • Tegra194 supports the same reset levels as Tegra186 but extends the set
    of reset sources. Provide custom PMC register definitions to account for
    the larger field for the reset sources as well as the updated list of
    reset sources.

    Signed-off-by: Thierry Reding
    ---
    Changes in v2:
    - use the new Tegra194 register definitions

    Thierry Reding