summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-04-28ARM: ep93xx: keypad: stop using mach/platform.hArnd Bergmann
We can communicate the clock rate using platform data rather than setting a flag to use a particular value in the driver, which is cleaner and avoids the dependency. No platform in the kernel currently defines the ep93xx keypad device structure, so this is a rather pointless excercise. Any out of tree users are probably dead now, but if not, they have to change their platform code to match the new platform_data structure. Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-28ARM: ep93xx: move network platform data to separate headerArnd Bergmann
The header file is the only thing preventing us from building the driver in a cross-platform configuration, so move the structure we are interested in to the global platform_data location and enable compile testing. Acked-by: Alexander Sverdlin <alexander.sverdlin@gmail.com> Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-28Merge tag 'davinci-for-v5.2/soc' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into arm/soc This update for DaVinci SoC support simplifies the VBUS enable and overcurrent handling code in DA8XX OHCI driver by modeling vbus GPIO as a regulator. This unifies code for all users, device tree and non-device-tree. The OHCI driver patches have been acked by its maintainer. * tag 'davinci-for-v5.2/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: usb: ohci-da8xx: drop the vbus GPIO ARM: davinci: da830-evm: add a fixed regulator for ohci-da8xx ARM: davinci: omapl138-hawk: add a fixed regulator for ohci-da8xx usb: ohci-da8xx: disable the regulator if the overcurrent irq fired usb: ohci-da8xx: let the regulator framework keep track of use count ARM: davinci: add missing sentinels to GPIO lookup tables Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-28Merge tag 'pxa-for-5.2' of https://github.com/rjarzmik/linux into arm/socOlof Johansson
This is the pxa changes for 5.2 cycle : - only a little fix the PXA SSP removal path * tag 'pxa-for-5.2' of https://github.com/rjarzmik/linux: ARM: pxa: ssp: Fix "WARNING: invalid free of devm_ allocated data" Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-28Merge tag 'samsung-soc-5.2' of ↵Olof Johansson
https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/soc Samsung mach/soc changes for v5.2 1. Cleanup in mach code. 2. Add necessary fixes for Suspend to RAM on Exynos5422 boards (tested with Odroid XU3/XU4/HC1 family). Finally this brings a working S2R on these Odroid boards (still other drivers might have some issues but mach code seems to be finished). 3. Require MCPM for Exynos542x boards because otherwise not all of cores will come online. 4. GPIO regulator cleanup on S3C6410 Craig. * tag 'samsung-soc-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: s3c64xx: Tidy up handling of regulator GPIO lookups ARM: exynos: Set MCPM as mandatory for Exynos542x/5800 SoCs ARM: exynos: Fix infinite loops on CPU powerup failure ARM: exynos: Fix a leaked reference by adding missing of_node_put ARM: exynos: Fix undefined instruction during Exynos5422 resume ARM: exynos: Add CPU state management for Exynos542x under secure firmware ARM: exynos: Add Exynos SMC values for secure memory write ARM: exynos: Move Exynos542x CPU state reset to pm_prepare() Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-28Merge tag 'omap-for-v5.2/ti-sysc-signed' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/soc Driver changes for ti-sysc for v5.2 merge window This series of changes for ti-sysc interconnect target module driver gets us to the point where we can actually drop legacy platform data for many devices in favor of device tree data. To do this, we improve ti-sysc driver not to rely on platform data callbacks to manage module clocks, and handle more quirks needed for some devices. Also few minor fixes are needed, but were considered not needed to be sent separately as they only show up with this series. Then we drop several thousands of lines of legacy platform data for omap4, omap5, dra7, am335x and am437x. We drop platform data for mmc, i2c, gpio and uart devices to start with as those are typically easily tested on all devices. In case of unexpected issues, we can just add back the legacy platform data for a single device type if needed. Finally we add initial support for enabling and disabling some devices without legacy platform data callbacks. I was planning on sending the dropping of legacy platform data as a separate series, but already applied Roger's patch on top and pushed it out. Note that this series depends on related SoC and is based on those. * tag 'omap-for-v5.2/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (33 commits) bus: ti-sysc: Add generic enable/disable functions ARM: OMAP2+: Drop mcspi platform data for omap4 ARM: OMAP2+: Drop uart platform data for dra7 ARM: OMAP2+: Drop gpio platform data for dra7 ARM: OMAP2+: Drop i2c platform data for dra7 ARM: OMAP2+: Drop mmc platform data for dra7 ARM: OMAP2+: Drop uart platform data for omap5 ARM: OMAP2+: Drop gpio platform data for omap5 ARM: OMAP2+: Drop i2c platform data for omap5 ARM: OMAP2+: Drop mmc platform data for omap5 ARM: OMAP2+: Drop uart platform data for am33xx and am43xx ARM: OMAP2+: Drop gpio platform data for am33xx and am43xx ARM: OMAP2+: Drop i2c platform data for am33xx and am43xx ARM: OMAP2+: Drop mmc platform data for am330x and am43xx ARM: OMAP2+: Drop uart platform data for omap4 ARM: OMAP2+: Drop gpio platform data for omap4 ARM: OMAP2+: Drop i2c platform data for omap4 ARM: OMAP2+: Drop mmc platform data for omap4 Documentation: bus: ti-sysc: fix spelling mistakes "multipe" and "interconnet" bus: ti-sysc: Detect DMIC for debugging ... Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-28Merge tag 'omap-for-v5.2/soc-signed' of ↵Olof Johansson
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/soc SoC changes for omap variants for v5.2 merge window This series of changes mostly consists of ti-sysc interconnect driver related preparation work. With these changes and the related ti-sysc driver changes, we can start dropping legacy omap_hwmod_*data.c platform data for many devices. There are also two am335x and am437x related PM changes for secure devices that have ROM handling some parts and needs EFUSE power domain active. * tag 'omap-for-v5.2/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: pm33xx-core: Do not Turn OFF CEFUSE as PPA may be using it ARM: OMAP2+: Wakeupgen: AM43xx HS devices should save context like non-HS ARM: OMAP2+: Handle reset quirks for dynamically allocated modules ARM: OMAP2+: Remove hwmod .rev data and use local SoC checks instead ARM: OMAP2+: Allocate struct omap_hwmod based on dts data ARM: OMAP2+: Define _HWMOD_STATE_DEFAULT and use it ARM: OMAP2+: Prepare class allocation for dynamically allocated modules ARM: OMAP2+: Make interconnect target module allocation functions static ARM: OMAP2+: Fix potentially uninitialized return value for _setup_reset() ARM: dts: Fix dcan clkctrl clock for am3 Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-28ARM: stm32: add AMBA support for stm32 familyLudovic Barre
This patch enables AMBA support for stm32 family. stm32 family embeds different amba pl180 variants. Signed-off-by: Ludovic Barre <ludovic.barre@st.com> Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com> Signed-off-by: Olof Johansson <olof@lixom.net>
2019-04-14ARM: pxa: ssp: Fix "WARNING: invalid free of devm_ allocated data"YueHaibing
Since commit 1c459de1e645 ("ARM: pxa: ssp: use devm_ functions") kfree, iounmap, clk_put etc are not needed anymore in remove path. Fixes: 1c459de1e645 ("ARM: pxa: ssp: use devm_ functions") Signed-off-by: YueHaibing <yuehaibing@huawei.com> [ commit message spelling fix ] Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
2019-04-14ARM: s3c64xx: Tidy up handling of regulator GPIO lookupsCharles Keepax
Rather than unconditionally registering the GPIO lookup table only do so for devices that require it. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> [Fixed up to also handle wm5102 and wm5102 reva] Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2019-04-12usb: ohci-da8xx: drop the vbus GPIOBartosz Golaszewski
All users now setup a fixed regulator for the vbus supply. We can drop the vbus GPIO code. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-04-12ARM: davinci: da830-evm: add a fixed regulator for ohci-da8xxBartosz Golaszewski
Instead of directly using the vbus GPIO we should model it as a fixed regulator. Add all necessary fix-ups for the regulator to be registered and configure the vbus GPIO as its enable pin. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-04-12ARM: davinci: omapl138-hawk: add a fixed regulator for ohci-da8xxBartosz Golaszewski
Instead of directly using the vbus GPIO we should model it as a fixed regulator. Add all necessary fix-ups for the regulator to be registered and configure the vbus GPIO as its enable pin. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-04-12usb: ohci-da8xx: disable the regulator if the overcurrent irq firedBartosz Golaszewski
Historically the power supply management in this driver has been handled in two separate places in parallel. Device-tree users simply defined an appropriate regulator, while two boards with no DT support (da830-evm and omapl138-hawk) passed functions defined in their respective board files over platform data. These functions simply used legacy GPIO calls to watch the oc GPIO for interrupts and disable the vbus GPIO when the irq fires. Commit d193abf1c913 ("usb: ohci-da8xx: add vbus and overcurrent gpios") updated these GPIO calls to the modern API and moved them inside the driver. This however is not the optimal solution for the vbus GPIO which should be modeled as a fixed regulator that can be controlled with a GPIO. In order to keep the overcurrent protection available once we move the board files to using fixed regulators we need to disable the enable_reg regulator when the overcurrent indicator interrupt fires. Since we cannot call regulator_disable() from interrupt context, we need to switch to using a oneshot threaded interrupt. Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-04-12usb: ohci-da8xx: let the regulator framework keep track of use countBartosz Golaszewski
There's no reason to have a separate variable to keep track of the regulator state. The regulator core already does that. Remove reg_enabled from struct da8xx_ohci_hcd. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Acked-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-04-12ARM: davinci: add missing sentinels to GPIO lookup tablesBartosz Golaszewski
Some GPIO lookup tables defined in davinci board files are missing array sentinels. If an entry for given device cannot be found, this will cause a kernel panic. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
2019-04-10ARM: exynos: Set MCPM as mandatory for Exynos542x/5800 SoCsMarek Szyprowski
Support for Exynos5420/5422/5800 SoCs requires MCPM to properly boot all CPU cores on all currectly supported platforms: Peach Pit (Exynos5420), Odroid XU3/XU3lite/XU4/HC1 (Exynos5422) and Peach Pi (Exynos5800). Without it some CPU cores fail to come online. Remove then the ability to disable MCPM and make it mandatory when Exynos542x/5800 support is enabled. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2019-04-09bus: ti-sysc: Add generic enable/disable functionsRoger Quadros
For non legacy cases, add generic sysc_enable_module() and sysc_disable_module() functions. Signed-off-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-09ARM: OMAP2+: pm33xx-core: Do not Turn OFF CEFUSE as PPA may be using itKabir Sahane
This area is used to store keys by HSPPA in case of AM438x SOC. Leave it active. Signed-off-by: Kabir Sahane <x0153567@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-09ARM: OMAP2+: Wakeupgen: AM43xx HS devices should save context like non-HSAndrew F. Davis
Unlike some previous generation devices, AM43xx HS IRQ and Wakegen context is handled by the ROM for us, and no secure service call is needed or supported. Non-GP AM43xx devices should take the same path as GP. Signed-off-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-09ARM: exynos: Fix infinite loops on CPU powerup failureMarek Szyprowski
Add timeout to infinite loops during the CPU powerup procedures. It is better to report an error instead of busylooping for infinite time in case of failure. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2019-04-08ARM: OMAP2+: Drop mcspi platform data for omap4Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop uart platform data for dra7Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop gpio platform data for dra7Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop i2c platform data for dra7Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop mmc platform data for dra7Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop uart platform data for omap5Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop gpio platform data for omap5Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop i2c platform data for omap5Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop mmc platform data for omap5Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop uart platform data for am33xx and am43xxTony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop gpio platform data for am33xx and am43xxTony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop i2c platform data for am33xx and am43xxTony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop mmc platform data for am330x and am43xxTony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop uart platform data for omap4Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop gpio platform data for omap4Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop i2c platform data for omap4Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-08ARM: OMAP2+: Drop mmc platform data for omap4Tony Lindgren
We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-05Documentation: bus: ti-sysc: fix spelling mistakes "multipe" and "interconnet"Colin Ian King
There is are a couple of spelling mistakes in the Documentation. Fix them. Signed-off-by: Colin Ian King <colin.king@canonical.com> Reviewed-by: Mukesh Ojha <mojha@codeaurora.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-05bus: ti-sysc: Detect DMIC for debuggingTony Lindgren
Detect DMIC to see what we have connected if config DEBUG is enabled. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-05bus: ti-sysc: Handle swsup idle mode quirksTony Lindgren
In preparation of dropping interconnect target module platform data in favor of devicetree based data, we must pass swsup idle quirks to the platform data functions. For now, let's only tag the UART modules with the SWSUP_SIDLE_ACT quirk. The other modules will get tagged with swsup quirks as we drop the platform data and test the changes. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-05bus: ti-sysc: Pass clockactivity quirk to platform functionsTony Lindgren
We already have the clockactivity quirk set for some modules like i2c, timers and smartreflex. But we're not passing it to the platform functions yet. Let's start doing that in preparation of dropping interconnect target module platform data in favor of device tree based data. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-03bus: ti-sysc: Add quirk handling for external optional functional clockTony Lindgren
We cannot access mcpdm registers at all unless there is an optional pdmclk configured. As this is currently only needed for mcpdm, let's check for mcpdm in sysc_get_clocks(). If it turns out to be needed for other modules too, we can add more flags to the quirks table for this. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-03bus: ti-sysc: Add support for early quirks based on register addressTony Lindgren
At least mcpdm needs an optional external clock enabled to function and this clock typically comes from the PMIC. We can detect mcpdm based on the interconnect target module address and set a quirk flag early. To do this, let's initialize the clocks a bit later and add a new function for sysc_init_early_quirks(). Note that we cannot yet enable the early quirks for mcpdm until the optional external clocks are handled in the in the following patch. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-03bus: ti-sysc: Move rstctrl reset to happen laterTony Lindgren
We can do the rsstctrl a bit later, but need to deassert rstctrl reset before the clocks are enabled if asserted. Let's only init restctrl in sysc_init_resets() and do the reset later on just before we enable the device clocks. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-03bus: ti-sysc: Manage clocks for the interconnect target module in all casesTony Lindgren
We are currently not managing interconnect target module clocks in the for legacy platform data based case. This causes a problem for using the platform data based functions when dropping the platform data for the interconnect target module configuration. To avoid a situation where we need to populate the main and optional clocks also for the platform data based functions, let's just manage the clocks directly in ti-sysc driver. This means that until the interconnect target module confugration platform data is dropped our use count for clk_enable() will be 2 instead of 1. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-03bus: ti-sysc: Allocate mdata as needed and do platform data based init laterTony Lindgren
The platform data based init functions typically reset the interconnect target module configure the registers. As we may need the interconnect target module specific quirks configured based on the revision register, we want to move the platform data based init to happen later. Let's allocate mdata as needed so it's available for sysc_legacy_init() that we call with module clocks enabled from sysc_init_module(). Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-03bus: ti-sysc: Enable all clocks directly during init to read revisionTony Lindgren
The first thing we want to do is just read the module revision register to be able to configure the module specific quirks and configure the module registers. As the interconnect target module may not yet be properly configured and may need a reset first, we don't want to use pm_runtime_get() at this point. To read the revision register, let's just enable the all the clocks for the interconnect target module during init even if the optional clocks are not needed. That way we can read the revision register to configure the quirks needed for PM runtime. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-01bus: ti-sysc: Add separate functions for handling clocksTony Lindgren
At least McPDM module depends on an external optional clock to be usable. To make handling of the McPDM clock easier in the following patches, let's add separate functions for handling the main clocks and the optional clocks. Let's also add error handling to shut down already enabled clocks while at it. Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-04-01bus: ti-sysc: Move legacy platform data idling into separate functionsTony Lindgren
Let's move the legacy idle and enable into separate functions to simplify PM runtime functions a bit. Signed-off-by: Tony Lindgren <tony@atomide.com>