07 Mar, 2018

2 commits

  • …el/git/krzk/linux into next/drivers

    Pull "Samsung soc drivers changes for v4.17" from Krzysztof Kozłowski:

    1. Add SPDX license identifiers.
    2. Populate children syscon nodes in PMU driver to properly model HW in
    DeviceTree.

    * tag 'samsung-drivers-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
    soc: samsung: pmu: Populate children syscon nodes
    soc: samsung: Add SPDX license identifiers to headers
    memory: samsung: Add SPDX license identifiers

    Arnd Bergmann
     
  • …el/git/ssantosh/linux-keystone into next/drivers

    Pull "SOC driver changes for v4.17" from Santosh Shilimkar:

    - Remove redundant dev_err from probe in ti-emif-srma driver
    - Make use of seq_putc in emif reg show

    * tag 'soc_drivers_for_4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone:
    memory: ti-emif-sram: remove redundant dev_err call in ti_emif_probe()
    memory-EMIF: Use seq_putc() in emif_regdump_show()

    Arnd Bergmann
     

06 Mar, 2018

2 commits


24 Feb, 2018

3 commits


13 Feb, 2018

1 commit


02 Feb, 2018

1 commit

  • Pull ARM SoC driver updates from Arnd Bergmann:
    "A number of new drivers get added this time, along with many
    low-priority bugfixes. The most interesting changes by subsystem are:

    bus drivers:
    - Updates to the Broadcom bus interface driver to support newer SoC
    types
    - The TI OMAP sysc driver now supports updated DT bindings

    memory controllers:
    - A new driver for Tegra186 gets added
    - A new driver for the ti-emif sram, to allow relocating
    suspend/resume handlers there

    SoC specific:
    - A new driver for Qualcomm QMI, the interface to the modem on MSM
    SoCs
    - A new driver for power domains on the actions S700 SoC
    - A driver for the Xilinx Zynq VCU logicoreIP

    reset controllers:
    - A new driver for Amlogic Meson-AGX
    - various bug fixes

    tee subsystem:
    - A new user interface got added to enable asynchronous communication
    with the TEE supplicant.
    - A new method of using user space memory for communication with the
    TEE is added"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (84 commits)
    of: platform: fix OF node refcount leak
    soc: fsl: guts: Add a NULL check for devm_kasprintf()
    bus: ti-sysc: Fix smartreflex sysc mask
    psci: add CPU_IDLE dependency
    soc: xilinx: Fix Kconfig alignment
    soc: xilinx: xlnx_vcu: Use bitwise & rather than logical && on clkoutdiv
    soc: xilinx: xlnx_vcu: Depends on HAS_IOMEM for xlnx_vcu
    soc: bcm: brcmstb: Be multi-platform compatible
    soc: brcmstb: biuctrl: exit without warning on non brcmstb platforms
    Revert "soc: brcmstb: Only register SoC device on STB platforms"
    bus: omap: add MODULE_LICENSE tags
    soc: brcmstb: Only register SoC device on STB platforms
    tee: shm: Potential NULL dereference calling tee_shm_register()
    soc: xilinx: xlnx_vcu: Add Xilinx ZYNQMP VCU logicoreIP init driver
    dt-bindings: soc: xilinx: Add DT bindings to xlnx_vcu driver
    soc: xilinx: Create folder structure for soc specific drivers
    of: platform: populate /firmware/ node from of_platform_default_populate_init()
    soc: samsung: Add SPDX license identifiers
    soc: qcom: smp2p: Use common error handling code in qcom_smp2p_probe()
    tee: shm: don't put_page on null shm->pages
    ...

    Linus Torvalds
     

12 Jan, 2018

1 commit

  • Move away from platform data configuration and use pure DT approach.

    Use generic probe function to deal with OneNAND node and remove now useless
    gpmc_probe_onenand_child function. Import sync mode timing calculation
    function from mach-omap2/gpmc-onenand.c

    Signed-off-by: Ladislav Michl
    Reviewed-by: Peter Ujfalusi
    Tested-by: Tony Lindgren
    Tested-by: Aaro Koskinen
    Acked-by: Roger Quadros
    Signed-off-by: Boris Brezillon

    Ladislav Michl
     

05 Jan, 2018

1 commit

  • …ernel/git/ssantosh/linux-keystone into next/drivers

    SOC: Keystone Soc driver updates for 4.16

    - TI EMIF-SRAM driver
    - TI SCI print format fix
    - Navigator strndup lenth fix

    * tag 'keystone_driver_soc_for_4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone:
    soc: ti: fix max dup length for kstrndup
    firmware: ti_sci: Use %zu for size_t print format
    memory: ti-emif-sram: remove unused variable
    memory: ti-emif-sram: introduce relocatable suspend/resume handlers
    Documentation: dt: Update ti,emif bindings

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

22 Dec, 2017

1 commit

  • …nel/git/tegra/linux into next/drivers

    Pull "memory: tegra: Changes for v4.16-rc1" from Thierry Reding:

    The Tegra memory controller driver will now instruct the SMMU driver to
    create groups, which will make it easier for device drivers to share an
    IOMMU domain between multiple devices.

    Initial Tegra186 support is also added in a separate driver.

    * tag 'tegra-for-4.16-memory' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
    iommu/tegra-smmu: Fix return value check in tegra_smmu_group_get()
    iommu/tegra: Allow devices to be grouped
    memory: tegra: Create SMMU display groups
    memory: tegra: Add Tegra186 support
    dt-bindings: memory: Add Tegra186 support
    dt-bindings: misc: Add Tegra186 MISC registers bindings

    Arnd Bergmann
     

15 Dec, 2017

1 commit


13 Dec, 2017

1 commit

  • The memory controller found on Tegra186 is different in some respects to
    its predecessors. Most notably it no longer implements an SMMU, but does
    assign ARM SMMU stream IDs for each memory client instead.

    Provide a driver that programs these registers so that memory clients
    can translate addresses via the ARM SMMU.

    Signed-off-by: Thierry Reding

    Thierry Reding
     

07 Dec, 2017

1 commit

  • The newly introduced driver causes a harmless warning for a variable
    that was evidently never used:

    drivers/memory/ti-emif-pm.c: In function 'ti_emif_remove':
    drivers/memory/ti-emif-pm.c:303:17: error: unused variable 'dev' [-Werror=unused-variable]

    Fixes: 8428e5ad750d ("memory: ti-emif-sram: introduce relocatable suspend/resume handlers")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Santosh Shilimkar

    Arnd Bergmann
     

03 Dec, 2017

1 commit

  • Certain SoCs like Texas Instruments AM335x and AM437x require parts
    of the EMIF PM code to run late in the suspend sequence from SRAM,
    such as saving and restoring the EMIF context and placing the memory
    into self-refresh.

    One requirement for these SoCs to suspend and enter its lowest power
    mode, called DeepSleep0, is that the PER power domain must be shut off.
    Because the EMIF (DDR Controller) resides within this power domain, it
    will lose context during a suspend operation, so we must save it so we
    can restore once we resume. However, we cannot execute this code from
    external memory, as it is not available at this point, so the code must
    be executed late in the suspend path from SRAM.

    This patch introduces a ti-emif-sram driver that includes several
    functions written in ARM ASM that are relocatable so the PM SRAM
    code can use them. It also allocates a region of writable SRAM to
    be used by the code running in the executable region of SRAM to save
    and restore the EMIF context. It can export a table containing the
    absolute addresses of the available PM functions so that other SRAM
    code can branch to them. This code is required for suspend/resume on
    AM335x and AM437x to work.

    In addition to this, to be able to share data structures between C and
    the ti-emif-sram-pm assembly code, we can automatically generate all of
    the C struct member offsets and sizes as macros by processing
    emif-asm-offsets.c into assembly code and then extracting the relevant
    data as is done for the generated platform asm-offsets.h files.

    Acked-by: Tony Lindgren
    Acked-by: Russell King
    Signed-off-by: Dave Gerlach
    Signed-off-by: Santosh Shilimkar

    Dave Gerlach
     

01 Dec, 2017

1 commit


17 Nov, 2017

1 commit

  • Pull ARM SoC driver updates from Arnd Bergmann:
    "This branch contains platform-related driver updates for ARM and
    ARM64, these are the areas that bring the changes:

    New drivers:

    - driver support for Renesas R-Car V3M (R8A77970)

    - power management support for Amlogic GX

    - a new driver for the Tegra BPMP thermal sensor

    - a new bus driver for Technologic Systems NBUS

    Changes for subsystems that prefer to merge through arm-soc:

    - the usual updates for reset controller drivers from Philipp Zabel,
    with five added drivers for SoCs in the arc, meson, socfpa,
    uniphier and mediatek families

    - updates to the ARM SCPI and PSCI frameworks, from Sudeep Holla,
    Heiner Kallweit and Lorenzo Pieralisi

    Changes specific to some ARM-based SoC

    - the Freescale/NXP DPAA QBMan drivers from PowerPC can now work on
    ARM as well

    - several changes for power management on Broadcom SoCs

    - various improvements on Qualcomm, Broadcom, Amlogic, Atmel,
    Mediatek

    - minor Cleanups for Samsung, TI OMAP SoCs"

    [ NOTE! This doesn't work without the previous ARM SoC device-tree pull,
    because the R8A77970 driver is missing a header file that came from
    that pull.

    The fact that this got merged afterwards only fixes it at this point,
    and bisection of that driver will fail if/when you walk into the
    history of that driver. - Linus ]

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (96 commits)
    soc: amlogic: meson-gx-pwrc-vpu: fix power-off when powered by bootloader
    bus: add driver for the Technologic Systems NBUS
    memory: omap-gpmc: Remove deprecated gpmc_update_nand_reg()
    soc: qcom: remove unused label
    soc: amlogic: gx pm domain: add PM and OF dependencies
    drivers/firmware: psci_checker: Add missing destroy_timer_on_stack()
    dt-bindings: power: add amlogic meson power domain bindings
    soc: amlogic: add Meson GX VPU Domains driver
    soc: qcom: Remote filesystem memory driver
    dt-binding: soc: qcom: Add binding for rmtfs memory
    of: reserved_mem: Accessor for acquiring reserved_mem
    of/platform: Generalize /reserved-memory handling
    soc: mediatek: pwrap: fix fatal compiler error
    soc: mediatek: pwrap: fix compiler errors
    arm64: mediatek: cleanup message for platform selection
    soc: Allow test-building of MediaTek drivers
    soc: mediatek: place Kconfig for all SoC drivers under menu
    soc: mediatek: pwrap: add support for MT7622 SoC
    soc: mediatek: pwrap: add common way for setup CS timing extenstion
    soc: mediatek: pwrap: add MediaTek MT6380 as one slave of pwrap
    ..

    Linus Torvalds
     

07 Nov, 2017

1 commit


03 Nov, 2017

1 commit


02 Nov, 2017

2 commits

  • Pull "Broadcom drivers changes for 4.15 (part 2)" from Florian Fainelli:

    This pull request contains Broadcom ARM/ARM64/MIPS SoCs changes for 4.15
    (second part), please pull the following:

    - Markus updates the Broadcom STB DPFE driver to avoid loading the firmware when
    unnecessary to accomodate for specific platform restrictions

    - Florian adds support for the Broadcom Hurricane 2 SoC iProc PLL clock needed
    to get the proper CPU clock frequency

    * tag 'arm-soc/for-4.15/drivers-part2' of http://github.com/Broadcom/stblinux:
    clk: bcm: Add Broadcom Hurricane 2 clock support
    memory: brcmstb: dpfe: skip downloading firmware when possible
    memory: brcmstb: dpfe: introduce is_dcpu_enabled()

    Arnd Bergmann
     
  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

21 Oct, 2017

1 commit


17 Oct, 2017

1 commit


07 Oct, 2017

2 commits


19 Sep, 2017

1 commit

  • This driver allows access to DRAM properties, such as the refresh rate,
    via the Broadcom STB DDR PHY Front End (DPFE). The refresh rate can be
    used as indirect indicator of the DRAM temperature.

    The driver also allows setting of the sampling interval.

    Signed-off-by: Markus Mayer
    Signed-off-by: Florian Fainelli

    Markus Mayer
     

11 Sep, 2017

1 commit

  • Pull ARM SoC driver updates from Olof Johansson:
    "This branch contains platform-related driver updates for ARM and ARM64.

    Among them:

    - Reset driver updates:
    + New API for dealing with arrays of resets
    + Make unimplemented {de,}assert return success on shared resets
    + MSDKv1 driver
    + Removal of obsolete Gemini reset driver
    + Misc updates for sunxi and Uniphier

    - SoC drivers:
    + Platform SoC driver registration on Tegra
    + Shuffle of Qualcomm drivers into a submenu
    + Allwinner A64 support for SRAM
    + Renesas R-Car R3 support
    + Power domains for Rockchip RK3366

    - Misc updates and smaller fixes for TEE and memory driver
    subsystems"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits)
    firmware: arm_scpi: fix endianness of dev_id in struct dev_pstate_set
    soc/tegra: fuse: Add missing semi-colon
    soc/tegra: Restrict SoC device registration to Tegra
    drivers: soc: sunxi: add support for A64 and its SRAM C
    drivers: soc: sunxi: add support for remapping func value to reg value
    drivers: soc: sunxi: fix error processing on base address when claiming
    dt-bindings: add binding for Allwinner A64 SRAM controller and SRAM C
    bus: sunxi-rsb: Enable by default for ARM64
    soc/tegra: Register SoC device
    firmware: tegra: set drvdata earlier
    memory: Convert to using %pOF instead of full_name
    soc: Convert to using %pOF instead of full_name
    bus: Convert to using %pOF instead of full_name
    firmware: Convert to using %pOF instead of full_name
    soc: mediatek: add SCPSYS power domain driver for MediaTek MT7622 SoC
    soc: mediatek: add header files required for MT7622 SCPSYS dt-binding
    soc: mediatek: reduce code duplication of scpsys_probe across all SoCs
    dt-bindings: soc: update the binding document for SCPSYS on MediaTek MT7622 SoC
    reset: uniphier: add analog amplifiers reset control
    reset: uniphier: add video input subsystem reset control
    ...

    Linus Torvalds
     

10 Sep, 2017

1 commit

  • Pull IOMMU updates from Joerg Roedel:
    "Slightly more changes than usual this time:

    - KDump Kernel IOMMU take-over code for AMD IOMMU. The code now tries
    to preserve the mappings of the kernel so that master aborts for
    devices are avoided. Master aborts cause some devices to fail in
    the kdump kernel, so this code makes the dump more likely to
    succeed when AMD IOMMU is enabled.

    - common flush queue implementation for IOVA code users. The code is
    still optional, but AMD and Intel IOMMU drivers had their own
    implementation which is now unified.

    - finish support for iommu-groups. All drivers implement this feature
    now so that IOMMU core code can rely on it.

    - finish support for 'struct iommu_device' in iommu drivers. All
    drivers now use the interface.

    - new functions in the IOMMU-API for explicit IO/TLB flushing. This
    will help to reduce the number of IO/TLB flushes when IOMMU drivers
    support this interface.

    - support for mt2712 in the Mediatek IOMMU driver

    - new IOMMU driver for QCOM hardware

    - system PM support for ARM-SMMU

    - shutdown method for ARM-SMMU-v3

    - some constification patches

    - various other small improvements and fixes"

    * tag 'iommu-updates-v4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (87 commits)
    iommu/vt-d: Don't be too aggressive when clearing one context entry
    iommu: Introduce Interface for IOMMU TLB Flushing
    iommu/s390: Constify iommu_ops
    iommu/vt-d: Avoid calling virt_to_phys() on null pointer
    iommu/vt-d: IOMMU Page Request needs to check if address is canonical.
    arm/tegra: Call bus_set_iommu() after iommu_device_register()
    iommu/exynos: Constify iommu_ops
    iommu/ipmmu-vmsa: Make ipmmu_gather_ops const
    iommu/ipmmu-vmsa: Rereserving a free context before setting up a pagetable
    iommu/amd: Rename a few flush functions
    iommu/amd: Check if domain is NULL in get_domain() and return -EBUSY
    iommu/mediatek: Fix a build warning of BIT(32) in ARM
    iommu/mediatek: Fix a build fail of m4u_type
    iommu: qcom: annotate PM functions as __maybe_unused
    iommu/pamu: Fix PAMU boot crash
    memory: mtk-smi: Degrade SMI init to module_init
    iommu/mediatek: Enlarge the validate PA range for 4GB mode
    iommu/mediatek: Disable iommu clock when system suspend
    iommu/mediatek: Move pgtable allocation into domain_alloc
    iommu/mediatek: Merge 2 M4U HWs into one iommu domain
    ...

    Linus Torvalds
     

05 Sep, 2017

1 commit

  • For HSMC controller, the register layout depends on the device i.e. the
    offset of setup, pulse, cycle, mode and timings registers is not the
    same. An helper is added to provide the correct register layout.

    Fixes: fe9d7cb22ef3 ("mfd: syscon: atmel-smc: Add new helpers to ease
    SMC regs manipulation")
    Suggested-by: Boris Brezillon
    Signed-off-by: Ludovic Desroches
    Acked-by: Boris Brezillon
    Acked-by: Nicolas Ferre
    Acked-by: Alexandre Belloni
    Signed-off-by: Lee Jones

    Ludovic Desroches
     

01 Sep, 2017

1 commit


22 Aug, 2017

2 commits

  • The initialization of MediaTek power manager(SCPSYS) is
    builtin_platform_driver, and SMI must depend on power-domain.
    Thus, currently subsys_initcall for SMI is unnecessary, SMI will be
    always probe defered by power-domain. Degrade it to module_init.

    In addition, there are two small changes about the probe sequence:
    1) Delete this two lines.
    if (!dev->pm_domain)
    return -EPROBE_DEFER;
    This is not helpful. the platform driver framework guarantee this.
    The "dev_pm_domain_attach" in the "platform_drv_probe" will return
    EPROBE_DEFER if its powerdomain is not ready.

    2) Add the probe-defer for the smi-larb device should waiting for
    smi-common.
    In mt2712, there are 2 smi-commons, 10 smi-larbs. All will be
    probe-defered by the power-domain, there is seldom case that
    smi-larb probe done before smi-common. then it will hang like
    this:

    Unable to handle kernel NULL pointer dereference at virtual address
    00000000 pgd = ffffff800a4e0000
    [00000000] *pgd=00000000beffe003[ 17.610026] , *pud=00000000beffe003
    ...
    [] mtk_smi_enable+0x1c/0xd0
    [] mtk_smi_larb_get+0x30/0x98
    [] mtk_mipicsi0_resume+0x38/0x1b8
    [] pm_generic_runtime_resume+0x3c/0x58
    [] __genpd_runtime_resume+0x38/0x98
    [] genpd_runtime_resume+0x164/0x220
    [] __rpm_callback+0x78/0xa0
    [] rpm_callback+0x38/0xa0
    [] rpm_resume+0x4a4/0x6f8
    [] __pm_runtime_resume+0x64/0xa0
    [] mtk_mipicsi0_probe+0x40c/0xb70
    [] platform_drv_probe+0x58/0xc0
    [] driver_probe_device+0x284/0x438
    [] __device_attach_driver+0xb4/0x160
    [] bus_for_each_drv+0x68/0xa8
    [] __device_attach+0xd4/0x168
    [] device_initial_probe+0x24/0x30
    [] bus_probe_device+0xa0/0xa8
    [] deferred_probe_work_func+0x94/0xf0
    [] process_one_work+0x1d8/0x6e0

    Signed-off-by: Yong Wu
    Signed-off-by: Joerg Roedel

    Yong Wu
     
  • The M4U IP blocks in mt2712 is MTK's generation2 M4U which use the
    ARM Short-descriptor like mt8173, and most of the HW registers are
    the same.

    The difference is that there are 2 M4U HWs in mt2712 while there's
    only one in mt8173. The purpose of 2 M4U HWs is for balance the
    bandwidth.

    Normally if there are 2 M4U HWs, there should be 2 iommu domains,
    each M4U has a iommu domain.

    Signed-off-by: Yong Wu
    Signed-off-by: Joerg Roedel

    Yong Wu
     

17 Aug, 2017

1 commit

  • Now that we have a custom printf format specifier, convert users of
    full_name to use %pOF instead. This is preparation to remove storing
    of the full path string for each node.

    Signed-off-by: Rob Herring
    Acked-by: Alexandre Belloni
    Acked-by: Roger Quadros
    Cc: Nicolas Ferre
    Cc: Alexandre Belloni
    Cc: Tony Lindgren
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-omap@vger.kernel.org
    Signed-off-by: Arnd Bergmann

    Rob Herring
     

15 Aug, 2017

1 commit


04 Aug, 2017

2 commits


27 Jul, 2017

3 commits

  • The converter function for translating ns timings in register values was
    initialized with a wrong function pointer. This resulted in wrong
    register values also for the setup and pulse registers when configuring
    the EBI interface trough dts.

    Includes a small fix in a comment of the smc driver, which was probably
    just a copy'n'paste mistake.

    Signed-off-by: Alexander Dahl
    Acked-by: Boris Brezillon
    Acked-by: Lee Jones
    Signed-off-by: Alexandre Belloni

    Alexander Dahl
     
  • As reported in [1] and in [2] it's not possible to set the device tree
    property 'atmel,smc-tdf-ns' to zero, although the SoC allows a setting
    of 0ns for the t_DF time.

    Allow this setting by doing the same thing as in the atmel nand
    controller driver by setting ncycles to ATMEL_SMC_MODE_TDF_MIN if zero
    is set in the dts.

    [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2017-March/490966.html
    [2] http://lists.infradead.org/pipermail/linux-arm-kernel/2017-July/520652.html

    Suggested-by: Boris Brezillon
    Signed-off-by: Alexander Dahl
    Acked-by: Boris Brezillon
    Signed-off-by: Alexandre Belloni

    Alexander Dahl
     
  • Setting optional EBI/SMC properties through device tree always fails due
    to wrong evaluation of the return value of
    atmel_ebi_xslate_smc_timings().

    If you put some of those properties in your dts file, but not
    'atmel,smc-tdf-ns' the local variable 'required' in
    atmel_ebi_xslate_smc_timings() stays on 'false' after the first 'if'
    block. This leads to setting 'ret' to -EINVAL in the first run of the
    following 'for' loop which is then the return value of this function.

    However if you set 'atmel,smc-tdf-ns' in the dts file and everything in
    atmel_ebi_xslate_smc_timings() works well, it returns the content of
    'required' which is 'true' then.

    So the function atmel_ebi_xslate_smc_timings() always returns non-zero
    which lets its call in atmel_ebi_xslate_smc_config() always fail and
    thus returning -EINVAL, so the EBI configuration for this node fails.

    Judging from the following code evaluating the local 'required' variable
    in atmel_ebi_xslate_smc_config() and the call of caps->xlate_config in
    atmel_ebi_dev_setup() it's probably right to only let the call fail if a
    negative error code is returned.

    Signed-off-by: Alexander Dahl
    Acked-by: Boris Brezillon
    Signed-off-by: Alexandre Belloni

    Alexander Dahl