* [PATCH 1/2] watchdog: davinci_wdt: add restart function
From: David Lechner @ 2017-12-11 17:21 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1513012869-7647-1-git-send-email-david@lechnology.com>
This adds a restart function to the davinci watchdog timer driver.
This is copied from arch/arm/mach-davinci/time.c and will allow us to
remove the code from there.
Signed-off-by: David Lechner <david@lechnology.com>
---
drivers/watchdog/davinci_wdt.c | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/drivers/watchdog/davinci_wdt.c b/drivers/watchdog/davinci_wdt.c
index 2f46487..3e4c592 100644
--- a/drivers/watchdog/davinci_wdt.c
+++ b/drivers/watchdog/davinci_wdt.c
@@ -140,6 +140,42 @@ static unsigned int davinci_wdt_get_timeleft(struct watchdog_device *wdd)
return wdd->timeout - timer_counter;
}
+static int davinci_wdt_restart(struct watchdog_device *wdd,
+ unsigned long action, void *data)
+{
+ struct davinci_wdt_device *davinci_wdt = watchdog_get_drvdata(wdd);
+ u32 tgcr, wdtcr;
+
+ /* disable, internal clock source */
+ iowrite32(0, davinci_wdt->base + TCR);
+
+ /* reset timer, set mode to 64-bit watchdog, and unreset */
+ tgcr = 0;
+ iowrite32(tgcr, davinci_wdt->base + TGCR);
+ tgcr = TIMMODE_64BIT_WDOG | TIM12RS_UNRESET | TIM34RS_UNRESET;
+ iowrite32(tgcr, davinci_wdt->base + TGCR);
+
+ /* clear counter and period regs */
+ iowrite32(0, davinci_wdt->base + TIM12);
+ iowrite32(0, davinci_wdt->base + TIM34);
+ iowrite32(0, davinci_wdt->base + PRD12);
+ iowrite32(0, davinci_wdt->base + PRD34);
+
+ /* put watchdog in pre-active state */
+ wdtcr = WDKEY_SEQ0 | WDEN;
+ iowrite32(wdtcr, davinci_wdt->base + WDTCR);
+
+ /* put watchdog in active state */
+ wdtcr = WDKEY_SEQ1 | WDEN;
+ iowrite32(wdtcr, davinci_wdt->base + WDTCR);
+
+ /* write an invalid value to the WDKEY field to trigger a restart */
+ wdtcr = 0x00004000;
+ iowrite32(wdtcr, davinci_wdt->base + WDTCR);
+
+ return 0;
+}
+
static const struct watchdog_info davinci_wdt_info = {
.options = WDIOF_KEEPALIVEPING,
.identity = "DaVinci/Keystone Watchdog",
@@ -151,6 +187,7 @@ static const struct watchdog_ops davinci_wdt_ops = {
.stop = davinci_wdt_ping,
.ping = davinci_wdt_ping,
.get_timeleft = davinci_wdt_get_timeleft,
+ .restart = davinci_wdt_restart,
};
static int davinci_wdt_probe(struct platform_device *pdev)
@@ -195,6 +232,7 @@ static int davinci_wdt_probe(struct platform_device *pdev)
watchdog_set_drvdata(wdd, davinci_wdt);
watchdog_set_nowayout(wdd, 1);
+ watchdog_set_restart_priority(wdd, 128);
wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
davinci_wdt->base = devm_ioremap_resource(dev, wdt_mem);
--
2.7.4
^ permalink raw reply related
* [PATCH 0/2] ARM: davinici: move watchdog restart from mach to drivers
From: David Lechner @ 2017-12-11 17:21 UTC (permalink / raw)
To: linux-arm-kernel
This series moves the watchdog restart code from arch/arm/mach-davinci
to drivers/watchdog.
Tested working on LEGO MINDSTORMS EV3 (TI AM1808 processor).
David Lechner (2):
watchdog: davinci_wdt: add restart function
ARM: davinci: remove watchdog reset
arch/arm/mach-davinci/board-da830-evm.c | 1 -
arch/arm/mach-davinci/board-da850-evm.c | 1 -
arch/arm/mach-davinci/board-dm355-evm.c | 1 -
arch/arm/mach-davinci/board-dm355-leopard.c | 1 -
arch/arm/mach-davinci/board-dm365-evm.c | 1 -
arch/arm/mach-davinci/board-dm644x-evm.c | 1 -
arch/arm/mach-davinci/board-dm646x-evm.c | 2 -
arch/arm/mach-davinci/board-mityomapl138.c | 1 -
arch/arm/mach-davinci/board-neuros-osd2.c | 1 -
arch/arm/mach-davinci/board-omapl138-hawk.c | 1 -
arch/arm/mach-davinci/board-sffsdr.c | 1 -
arch/arm/mach-davinci/clock.h | 3 --
arch/arm/mach-davinci/da8xx-dt.c | 1 -
arch/arm/mach-davinci/devices-da8xx.c | 13 -------
arch/arm/mach-davinci/devices.c | 7 +---
arch/arm/mach-davinci/include/mach/common.h | 1 -
arch/arm/mach-davinci/include/mach/da8xx.h | 1 -
arch/arm/mach-davinci/time.c | 57 -----------------------------
drivers/watchdog/davinci_wdt.c | 38 +++++++++++++++++++
19 files changed, 39 insertions(+), 94 deletions(-)
--
2.7.4
^ permalink raw reply
* [PATCH v4 5/5] ARM: ep93xx: ts72xx: Add support for BK3 board - ts72xx derivative
From: Hartley Sweeten @ 2017-12-11 17:17 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171130235140.12243-6-lukma@denx.de>
On Thursday, November 30, 2017 4:52 PM, Lukasz Majewski wrote:
>
> The BK3 board is a derivative of the ts72xx reference design.
Lukasz,
I was just reviewing the other TS-72xx boards and noticed this:
<snip>
> +/* BK3 specific defines */
> +#define BK3_CPLDVER_PHYS_BASE 0x23400000
> +#define BK3_CPLDVER_VIRT_BASE 0xfebfd000
> +#define BK3_CPLDVER_SIZE 0x00001000
> +
<snip>
> +static struct map_desc bk3_io_desc[] __initdata = {
> + {
> + .virtual = BK3_CPLDVER_VIRT_BASE,
> + .pfn = __phys_to_pfn(BK3_CPLDVER_PHYS_BASE),
> + .length = BK3_CPLDVER_SIZE,
> + .type = MT_DEVICE,
> + }
> +};
> +
This register appears to be common to all the TS-72xx boards.
I don't think Arnd has pulled the series yet. Would you mind renaming the
defines and rebasing this patch? The BK3 board and other TS-72xx boards
can then have a common .map_io.
Thanks,
Hartley
^ permalink raw reply
* [PATCH v2] net: ethernet: arc: fix error handling in emac_rockchip_probe
From: David Miller @ 2017-12-11 17:13 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171209115133.19205-1-branislav@radocaj.org>
From: Branislav Radocaj <branislav@radocaj.org>
Date: Sat, 9 Dec 2017 12:51:33 +0100
> If clk_set_rate() fails, we should disable clk before return.
> Found by Linux Driver Verification project (linuxtesting.org).
>
> Signed-off-by: Branislav Radocaj <branislav@radocaj.org>
> ---
>
> Changes since v2:
> * Improved inconsistent failure handling of clock rate setting
> * For completeness of usecase, added arc_emac_probe error handling
This doesn't apply to any of my trees.
^ permalink raw reply
* mainline/master boot bisection: v4.15-rc3 on peach-pi #3228-staging
From: Daniel Vetter @ 2017-12-11 17:05 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <51e6d7fb-ac9e-a59f-ea63-ad06219b429d@collabora.com>
On Mon, Dec 11, 2017 at 11:30 AM, Guillaume Tucker
<guillaume.tucker@collabora.com> wrote:
> Hi Daniel,
>
> Please see below, I've had several bisection results pointing at
> that commit over the week-end on mainline but also on linux-next
> and net-next. While the peach-pi is a bit flaky at the moment
> and is likely to have more than one issue, it does seem like this
> commit is causing some well reproducible kernel hang.
>
> Here's a re-run with v4.15-rc3 showing the issue:
>
> https://lava.collabora.co.uk/scheduler/job/1018478
>
> and here's another one with the change mentioned below reverted:
>
> https://lava.collabora.co.uk/scheduler/job/1018479
>
> They both show a warning about "unbalanced disables for lcd_vdd",
> I don't know if this is related as I haven't investigated any
> further. It does appear to reliably hang with v4.15-rc3 and
> boot most of the time with the commit reverted though.
>
> The automated kernelci.org bisection is still an experimental
> tool and it may well be a false positive, so please take this
> result with a pinch of salt...
The patch just very minimal moves the connector cleanup around (so
timing change), but except when you unload a driver (or maybe that
funny EPROBE_DEFER stuff) it shouldn't matter. So if you don't have
more info than "seems to hang a bit more" I have no idea what's wrong.
The patch itself should work, at least it survived quite some serious
testing we do on everything.
-Daniel
> Hope this helps!
>
> Best wishes,
> Guillaume
>
>
> -------- Forwarded Message --------
> Subject: mainline/master boot bisection: v4.15-rc3 on peach-pi #3228-staging
> Date: Mon, 11 Dec 2017 08:25:55 +0000 (UTC)
> From: kernelci.org bot <bot@kernelci.org>
> To: guillaume.tucker at collabora.com
>
> Bisection result for mainline/master (v4.15-rc3) on peach-pi
>
> Good known revision:
>
> c6b3e96 Merge branch 'for-linus' of
> git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
>
> Bad known revision:
>
> 50c4c4e Linux 4.15-rc3
>
> Extra parameters:
>
> Tree: mainline
> Branch: master
> Target: peach-pi
> Lab: lab-collabora
> Defconfig: exynos_defconfig
> Plan: boot
>
>
> Breaking commit found:
>
> -------------------------------------------------------------------------------
> commit a703c55004e1c5076d57e43771b3e11117796ea0
> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> Date: Mon Dec 4 21:48:18 2017 +0100
>
> drm: safely free connectors from connector_iter
> In
> commit 613051dac40da1751ab269572766d3348d45a197
> Author: Daniel Vetter <daniel.vetter@ffwll.ch>
> Date: Wed Dec 14 00:08:06 2016 +0100
> drm: locking&new iterators for connector_list
> we've went to extreme lengths to make sure connector iterations
> works
> in any context, without introducing any additional locking context.
> This worked, except for a small fumble in the implementation:
> When we actually race with a concurrent connector unplug event, and
> our temporary connector reference turns out to be the final one, then
> everything breaks: We call the connector release function from
> whatever context we happen to be in, which can be an irq/atomic
> context. And connector freeing grabs all kinds of locks and stuff.
> Fix this by creating a specially safe put function for
> connetor_iter,
> which (in this rare case) punts the cleanup to a worker.
> Reported-by: Ben Widawsky <ben@bwidawsk.net>
> Cc: Ben Widawsky <ben@bwidawsk.net>
> Fixes: 613051dac40d ("drm: locking&new iterators for connector_list")
> Cc: Dave Airlie <airlied@gmail.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: <stable@vger.kernel.org> # v4.11+
> Reviewed-by: Dave Airlie <airlied@gmail.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Link:
> https://patchwork.freedesktop.org/patch/msgid/20171204204818.24745-1-daniel.vetter at ffwll.ch
>
> diff --git a/drivers/gpu/drm/drm_connector.c
> b/drivers/gpu/drm/drm_connector.c
> index 25f4b2e..4820141 100644
> --- a/drivers/gpu/drm/drm_connector.c
> +++ b/drivers/gpu/drm/drm_connector.c
> @@ -152,6 +152,16 @@ static void drm_connector_free(struct kref *kref)
> connector->funcs->destroy(connector);
> }
> +static void drm_connector_free_work_fn(struct work_struct *work)
> +{
> + struct drm_connector *connector =
> + container_of(work, struct drm_connector, free_work);
> + struct drm_device *dev = connector->dev;
> +
> + drm_mode_object_unregister(dev, &connector->base);
> + connector->funcs->destroy(connector);
> +}
> +
> /**
> * drm_connector_init - Init a preallocated connector
> * @dev: DRM device
> @@ -181,6 +191,8 @@ int drm_connector_init(struct drm_device *dev,
> if (ret)
> return ret;
> + INIT_WORK(&connector->free_work, drm_connector_free_work_fn);
> +
> connector->base.properties = &connector->properties;
> connector->dev = dev;
> connector->funcs = funcs;
> @@ -529,6 +541,18 @@ void drm_connector_list_iter_begin(struct drm_device
> *dev,
> }
> EXPORT_SYMBOL(drm_connector_list_iter_begin);
> +/*
> + * Extra-safe connector put function that works in any context. Should only
> be
> + * used from the connector_iter functions, where we never really expect to
> + * actually release the connector when dropping our final reference.
> + */
> +static void
> +drm_connector_put_safe(struct drm_connector *conn)
> +{
> + if (refcount_dec_and_test(&conn->base.refcount.refcount))
> + schedule_work(&conn->free_work);
> +}
> +
> /**
> * drm_connector_list_iter_next - return next connector
> * @iter: connectr_list iterator
> @@ -561,7 +585,7 @@ drm_connector_list_iter_next(struct
> drm_connector_list_iter *iter)
> spin_unlock_irqrestore(&config->connector_list_lock, flags);
> if (old_conn)
> - drm_connector_put(old_conn);
> + drm_connector_put_safe(old_conn);
> return iter->conn;
> }
> @@ -580,7 +604,7 @@ void drm_connector_list_iter_end(struct
> drm_connector_list_iter *iter)
> {
> iter->dev = NULL;
> if (iter->conn)
> - drm_connector_put(iter->conn);
> + drm_connector_put_safe(iter->conn);
> lock_release(&connector_list_iter_dep_map, 0, _RET_IP_);
> }
> EXPORT_SYMBOL(drm_connector_list_iter_end);
> diff --git a/drivers/gpu/drm/drm_mode_config.c
> b/drivers/gpu/drm/drm_mode_config.c
> index cda8bfa..cc78b3d 100644
> --- a/drivers/gpu/drm/drm_mode_config.c
> +++ b/drivers/gpu/drm/drm_mode_config.c
> @@ -431,6 +431,8 @@ void drm_mode_config_cleanup(struct drm_device *dev)
> drm_connector_put(connector);
> }
> drm_connector_list_iter_end(&conn_iter);
> + /* connector_iter drops references in a work item. */
> + flush_scheduled_work();
> if (WARN_ON(!list_empty(&dev->mode_config.connector_list))) {
> drm_connector_list_iter_begin(dev, &conn_iter);
> drm_for_each_connector_iter(connector, &conn_iter)
> diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
> index df9807a..a4649c5 100644
> --- a/include/drm/drm_connector.h
> +++ b/include/drm/drm_connector.h
> @@ -916,6 +916,14 @@ struct drm_connector {
> uint8_t num_h_tile, num_v_tile;
> uint8_t tile_h_loc, tile_v_loc;
> uint16_t tile_h_size, tile_v_size;
> +
> + /**
> + * @free_work:
> + *
> + * Work used only by &drm_connector_iter to be able to clean up a
> + * connector from any context.
> + */
> + struct work_struct free_work;
> };
> #define obj_to_connector(x) container_of(x, struct drm_connector, base)
> -------------------------------------------------------------------------------
>
>
> Git bisection log:
>
> -------------------------------------------------------------------------------
> git bisect start
> # good: [c6b3e9693f8a32ba3b07e2f2723886ea2aff4e94] Merge branch 'for-linus'
> of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
> git bisect good c6b3e9693f8a32ba3b07e2f2723886ea2aff4e94
> # bad: [50c4c4e268a2d7a3e58ebb698ac74da0de40ae36] Linux 4.15-rc3
> git bisect bad 50c4c4e268a2d7a3e58ebb698ac74da0de40ae36
> # bad: [e9ef1fe312b533592e39cddc1327463c30b0ed8d] Merge
> git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
> git bisect bad e9ef1fe312b533592e39cddc1327463c30b0ed8d
> # bad: [77071bc6c472bb0b36818f3e9595114cdf98c86d] Merge tag 'media/v4.15-2'
> of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
> git bisect bad 77071bc6c472bb0b36818f3e9595114cdf98c86d
> # bad: [4066aa72f9f2886105c6f747d7f9bd4f14f53c12] Merge tag
> 'drm-fixes-for-v4.15-rc3' of git://people.freedesktop.org/~airlied/linux
> git bisect bad 4066aa72f9f2886105c6f747d7f9bd4f14f53c12
> # bad: [96980844bb4b74d2e7ce93d907670658e39a3992] Merge tag
> 'drm-intel-fixes-2017-12-07' of git://anongit.freedesktop.org/drm/drm-intel
> into drm-fixes
> git bisect bad 96980844bb4b74d2e7ce93d907670658e39a3992
> # bad: [120a264f9c2782682027d931d83dcbd22e01da80] drm/exynos: gem: Drop
> NONCONTIG flag for buffers allocated without IOMMU
> git bisect bad 120a264f9c2782682027d931d83dcbd22e01da80
> # good: [2bf257d662509553ae226239e7dc1c3d00636ca6] drm/ttm: roundup the
> shrink request to prevent skip huge pool
> git bisect good 2bf257d662509553ae226239e7dc1c3d00636ca6
> # good: [db8f884ca7fe6af64d443d1510464efe23826131] Merge branch
> 'drm-fixes-4.15' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
> git bisect good db8f884ca7fe6af64d443d1510464efe23826131
> # bad: [bd3a3a2e92624942a143e485c83e641b2492d828] Merge tag
> 'drm-misc-fixes-2017-12-06' of git://anongit.freedesktop.org/drm/drm-misc
> into drm-fixes
> git bisect bad bd3a3a2e92624942a143e485c83e641b2492d828
> # bad: [a703c55004e1c5076d57e43771b3e11117796ea0] drm: safely free
> connectors from connector_iter
> git bisect bad a703c55004e1c5076d57e43771b3e11117796ea0
> # first bad commit: [a703c55004e1c5076d57e43771b3e11117796ea0] drm: safely
> free connectors from connector_iter
> -------------------------------------------------------------------------------
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
^ permalink raw reply
* [PATCH 02/12] mtd: nand: add reworked Marvell NAND controller driver
From: Boris Brezillon @ 2017-12-11 17:05 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211175506.0b8ea4d1@xps13>
On Mon, 11 Dec 2017 17:55:06 +0100
Miquel RAYNAL <miquel.raynal@free-electrons.com> wrote:
> On Mon, 11 Dec 2017 13:27:30 -0300
> Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> wrote:
>
> > On 7 December 2017 at 17:18, Miquel Raynal
> > <miquel.raynal@free-electrons.com> wrote:
> > > Add marvell_nand driver which aims at replacing the existing
> > > pxa3xx_nand driver.
> > >
> > > The new driver intends to be easier to understand and follows the
> > > brand new NAND framework rules by implementing hooks for every
> > > pattern the controller might support and referencing them inside a
> > > parser object that will be given to the core at each ->exec_op()
> > > call.
> > >
> > > Raw accessors are implemented, useful to test/debug
> > > memory/filesystem corruptions. Userspace binaries contained in the
> > > mtd-utils package may now be used and their output trusted.
> > >
> > > Timings may not be kept from the bootloader anymore, the timings
> > > used for instance in U-Boot were not optimal and it supposed to
> > > have NAND support (and initialized) in the bootloader.
> > >
> > > Thanks to the improved timings, implementation of ONFI mode 5
> > > support (with EDO managed by adding a delay on data sampling),
> > > merging the commands together and optimizing writes in the command
> > > registers, the new driver may achieve faster throughputs in both
> > > directions. Measurements show an improvement of about +23% read
> > > throughput and +24% write throughput. These measurements have been
> > > done with an Armada-385-DB-AP (4kiB NAND pages forced in 4-bit
> > > strength BCH ECC correction) using the userspace tool 'flash_speed'
> > > from the MTD test suite.
> > >
> > > Besides these important topics, the new driver addresses several
> > > unsolved known issues in the old driver which:
> > > - did not work with ECC soft neither with ECC none ;
> > > - relied on naked read/write (which is unchanged) while the NFCv1
> > > embedded in the pxa3xx platforms do not implement it, so several
> > > NAND commands did not actually ever work without any notice (like
> > > reading the ONFI PARAM_PAGE or SET/GET_FEATURES) ;
> > > - wrote the OOB data correctly, but was not able to read it
> > > correctly past the first OOB data chunk ;
> > > - did not displayed ECC bytes ;
> > > - used device tree bindings that did not allow more than one NAND
> > > chip, and did not allow to choose the correct chip select if not
> > > incrementing from 0. Plus, the Ready/Busy line used had to be 0.
> > >
> > > Old device tree bindings are still supported but deprecated. A more
> > > hierarchical view has to be used to keep the controller and the NAND
> > > chip structures clearly separated both inside the device tree and
> > > also in the driver code.
> > >
> >
> > So, is this driver fully compatible with the current pxa3xx-nand
> > driver?
>
> It should be!
>
> >
> > Have you tested with U-Boot's driver (based on the pxa3xx-nand)?
> >
> > I recally some subtle issues with the fact that U-Boot and Linux had
> > to agree about the BBT format.
>
> I kept the pxa3xx_nand driver BBT format.
>
> This is something I mistakenly omitted from the commit message:
>
> There are 5 supported layouts in the driver (the same as withing the
> pxa3xx_nand driver):
> 1/ Page: 512B, strength 1b/512B (hamming)
> 2/ Page: 2kiB, strength 4b/2kiB (hamming)
> 3/ page: 2kiB, strength 16b/2kiB (BCH)
> 4/ page: 4kiB, strength 16b/2kiB (BCH)
> 5/ page: 4kiB, strength 32b/2kiB (BCH)
Are you sure of #5? I thought the engine was only capable of modifying
the ECC block size, not the strength. If this is the case, then mode #5
is actually 16b/1024kiB.
>
> Layout 2 has been tested with CM_X300 compulab module (PXA SoC) with
> and without DMA.
> Layout 4 has been tested with an Armada 385 db, an Armada 7040 DB and
> an Armada 8040 DB.
> Layout 5 has been tested with an Armada 398 db.
>
> Layout 1 has been tested with the Armada 385 db with some hacks.
> Layout 3 has been tested with the Armada 385 db with some other hacks,
> that is why I am concerned about the other thread on the MTD mailing
> list "wait timeout when scanning for BB" where a 2kiB page with
> 16b/2048B strength is in use.
>
> Regards,
> Miqu?l
^ permalink raw reply
* [PATCH v2 3/4] thermal: armada: add support for CP110
From: Gregory CLEMENT @ 2017-12-11 17:02 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211152731.glkkes5errcxmsvz@sapphire.tkos.co.il>
Hi Baruch,
On lun., d?c. 11 2017, Baruch Siach <baruch@tkos.co.il> wrote:
> Hi Miquel,
>
> On Mon, Dec 11, 2017 at 04:09:32PM +0100, Miquel RAYNAL wrote:
>> On Sun, 3 Dec 2017 13:11:23 +0200
>> Baruch Siach <baruch@tkos.co.il> wrote:
>>
>> > The CP110 component is integrated in the Armada 8k and 7k lines of
>> > processors.
>> >
>> > This patch also adds an option of offset to the MSB of the control
>> > register. The existing DT binding for Armada 38x refers to a single
>> > 32 bit control register. It turns out that this is actually only the
>> > MSB of the control area. Changing the binding to fix that would break
>> > existing DT files, so the Armada 38x binding is left as is.
>> >
>> > The new CP110 binding increases the size of the control area to 64
>> > bits, thus moving the MSB to offset 4.
>> >
>> > Signed-off-by: Baruch Siach <baruch@tkos.co.il>
>> > ---
>> > v2: No change
>> > ---
>> > drivers/thermal/armada_thermal.c | 24 ++++++++++++++++++++++--
>> > 1 file changed, 22 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/drivers/thermal/armada_thermal.c
>> > b/drivers/thermal/armada_thermal.c index 0eb82097571f..59b75f63945d
>> > 100644 --- a/drivers/thermal/armada_thermal.c
>> > +++ b/drivers/thermal/armada_thermal.c
>> > @@ -73,6 +73,7 @@ struct armada_thermal_data {
>> > unsigned int temp_shift;
>> > unsigned int temp_mask;
>> > unsigned int is_valid_shift;
>> > + unsigned int control_msb_offset;
>> > };
>> >
>> > static void armadaxp_init_sensor(struct platform_device *pdev,
>> > @@ -142,12 +143,14 @@ static void armada375_init_sensor(struct
>> > platform_device *pdev, static void armada380_init_sensor(struct
>> > platform_device *pdev, struct armada_thermal_priv *priv)
>> > {
>> > - unsigned long reg = readl_relaxed(priv->control);
>> > + void __iomem *control_msb =
>> > + priv->control + priv->data->control_msb_offset;
>> > + unsigned long reg = readl_relaxed(control_msb);
>> >
>> > /* Reset hardware once */
>> > if (!(reg & A380_HW_RESET)) {
>> > reg |= A380_HW_RESET;
>> > - writel(reg, priv->control);
>> > + writel(reg, control_msb);
>> > mdelay(10);
>> > }
>> > }
>> > @@ -266,6 +269,19 @@ static const struct armada_thermal_data
>> > armada_ap806_data = { .signed_sample = true,
>> > };
>> >
>> > +static const struct armada_thermal_data armada_cp110_data = {
>> > + .is_valid = armada_is_valid,
>> > + .init_sensor = armada380_init_sensor,
>>
>> I see the initialization for CP110 thermal IP is close to
>> Armada-380's, but, as you point it in the commit log it is still
>> different.
>>
>> I don't know what is the best way to handle this but until now each
>> new compatible had his own ->init_sensor function, shouldn't we do
>> the same here as changes are requested? This would naturally avoid the
>> situation with Armada-380 bindings.
>
> I'm not sure I understand your suggestion.
>
> There is no difference between the CP110 and the Armada 38x, as far as I can
> see. The only quirk is that the existing Armada 38x DT binding is wrong I that
> the 'reg' property references the control MSB, while leaving the LSB
> out. We
Well I would not say it was wrong but more incomplete :)
> can't change the Armada 38x binding without breaking existing DTs. The
> 'control_msb_offset' field that this patch adds allows correct binding for
> CP110, while keeping compatibility with the existing Armada 38x
> binding.
I am not against adding a new compatible string for CP110 but ot be
honest the new binding for CP110 does not bring anything as you don't
use at all the LSB register.
Actually, if on Armada 375 we initially mapped the LSB register it was
to support an very early release of the SoC (stepping Z) and only for
resetting its value. So I guess you started to write the AP860 part
based on the Armada 375 and then found that we could map a more complete
range of the registers.
>
> How would a separate init_sensor routine improve things?
So yes please do it, thanks to this you won't have to add the
control_msb_offset member and can use a clean function. Moreover if in
the future we see some usefulness for this LSB register then we could use
the new compatible for the Armada 38x.
Thanks,
Gregory
>
> baruch
>
> --
> http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
> =}------------------------------------------------ooO--U--Ooo------------{=
> - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
^ permalink raw reply
* [PATCH 20/20] ARM: dts: imx6qdl-hummingboard2: rename regulators to match schematic
From: Russell King @ 2017-12-11 16:59 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
Make the regulators match the schematic - name the regulators after
one of their schematic supply names, and arrange them into their
heirarchy.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2-emmc.dtsi | 4 +-
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 86 ++++++++++++++---------
2 files changed, 56 insertions(+), 34 deletions(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2-emmc.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2-emmc.dtsi
index 1aa97817e751..f400405381a7 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2-emmc.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2-emmc.dtsi
@@ -64,8 +64,8 @@
&usdhc3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usdhc3>;
- vmmc-supply = <®_3p3v>;
- vqmmc-supply = <®_3p3v>;
+ vmmc-supply = <&v_3v2>;
+ vqmmc-supply = <&v_3v2>;
bus-width = <8>;
non-removable;
status = "okay";
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 1089f693ebde..117c4daf31e9 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -52,20 +52,29 @@
linux,rc-map-name = "rc-rc6-mce";
};
- reg_3p3v: regulator-3p3v {
+ v_3v2: regulator-v-3v2 {
compatible = "regulator-fixed";
- regulator-name = "VCC_3V2";
- regulator-min-microvolt = <3300000>;
+ regulator-always-on;
regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ regulator-name = "v_3v2";
+ };
+
+ v_5v0: regulator-v-5v0 {
+ compatible = "regulator-fixed";
regulator-always-on;
+ regulator-max-microvolt = <5000000>;
+ regulator-min-microvolt = <5000000>;
+ regulator-name = "v_5v0";
};
- reg_1p8v: regulator-1p8v {
+ vcc_1p8: regulator-vcc-1p8 {
compatible = "regulator-fixed";
- regulator-name = "VCC_1V8";
- regulator-min-microvolt = <1800000>;
- regulator-max-microvolt = <1800000>;
regulator-always-on;
+ regulator-max-microvolt = <1800000>;
+ regulator-min-microvolt = <1800000>;
+ regulator-name = "vcc_1p8";
+ vin-supply = <&v_3v2>;
};
v_sd: regulator-v-sd {
@@ -78,53 +87,62 @@
regulator-min-microvolt = <3300000>;
regulator-name = "v_sd";
startup-delay-us = <1000>;
+ vin-supply = <&v_3v2>;
};
- reg_usbh2_vbus: regulator-usb-h1-vbus {
+ v_usb1: regulator-v-usb1 {
compatible = "regulator-fixed";
enable-active-high;
- gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
+ gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard2_usbh1_vbus>;
- regulator-name = "V_USB2";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
+ pinctrl-0 = <&pinctrl_hummingboard2_usbotg_vbus>;
regulator-always-on;
+ regulator-max-microvolt = <5000000>;
+ regulator-min-microvolt = <5000000>;
+ regulator-name = "v_usb1";
+ vin-supply = <&v_5v0>;
};
- reg_usbotg_vbus: regulator-usb-otg-vbus {
+ v_usb2: regulator-v-usb2 {
+ /* USB hub port 1 */
compatible = "regulator-fixed";
enable-active-high;
- gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+ gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard2_usbotg_vbus>;
- regulator-name = "V_USB1";
- regulator-min-microvolt = <5000000>;
+ pinctrl-0 = <&pinctrl_hummingboard2_usbh1_vbus>;
+ regulator-always-on;
regulator-max-microvolt = <5000000>;
+ regulator-min-microvolt = <5000000>;
+ regulator-name = "v_usb2";
+ vin-supply = <&v_5v0>;
};
- reg_usbh3_vbus: regulator-usb-h2-vbus {
+ v_usb3: regulator-v-usb3 {
+ /* USB hub port 3 */
compatible = "regulator-fixed";
enable-active-high;
- enable-gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
+ gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbh2_vbus>;
- regulator-name = "V_USB3";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
regulator-always-on;
+ regulator-max-microvolt = <5000000>;
+ regulator-min-microvolt = <5000000>;
+ regulator-name = "v_usb3";
+ vin-supply = <&v_5v0>;
};
- reg_usbh4_vbus: regulator-usb-h3-vbus {
+ v_usb4: regulator-v-usb4 {
+ /* USB hub port 4 */
compatible = "regulator-fixed";
enable-active-high;
- enable-gpio = <&gpio7 10 GPIO_ACTIVE_HIGH>;
+ gpio = <&gpio7 10 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbh3_vbus>;
- regulator-name = "V_USB4";
- regulator-min-microvolt = <5000000>;
- regulator-max-microvolt = <5000000>;
regulator-always-on;
+ regulator-max-microvolt = <5000000>;
+ regulator-min-microvolt = <5000000>;
+ regulator-name = "v_usb4";
+ vin-supply = <&v_5v0>;
};
sound-sgtl5000 {
@@ -176,9 +194,9 @@
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_sgtl5000>;
reg = <0x0a>;
- VDDA-supply = <®_3p3v>;
- VDDIO-supply = <®_3p3v>;
- VDDD-supply = <®_1p8v>;
+ VDDA-supply = <&v_3v2>;
+ VDDD-supply = <&vcc_1p8>;
+ VDDIO-supply = <&v_3v2>;
};
};
@@ -488,7 +506,7 @@
disable-over-current;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbotg_id>;
- vbus-supply = <®_usbotg_vbus>;
+ vbus-supply = <&v_usb1>;
status = "okay";
};
@@ -516,3 +534,7 @@
pinctrl-0 = <&pinctrl_hummingboard2_uart3>;
status = "okay";
};
+
+&vcc_3v3 {
+ vin-supply = <&v_3v2>;
+};
--
2.7.4
^ permalink raw reply related
* [PATCH 19/20] ARM: dts: imx6qdl-hummingboard2: add v1.5 som with eMMC
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
Add support for the v1.5 SOM with TI Wi-Fi and eMMC. As the pinmux
settings are different for the microsom, we need to use a separate
board-level dts for this as there is no support for overlays.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/Makefile | 2 +
.../boot/dts/imx6dl-hummingboard2-emmc-som-v15.dts | 55 +++++++++++++++++++
.../boot/dts/imx6q-hummingboard2-emmc-som-v15.dts | 63 ++++++++++++++++++++++
3 files changed, 120 insertions(+)
create mode 100644 arch/arm/boot/dts/imx6dl-hummingboard2-emmc-som-v15.dts
create mode 100644 arch/arm/boot/dts/imx6q-hummingboard2-emmc-som-v15.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b72799b464b5..458e2c886c0e 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -389,6 +389,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
imx6dl-hummingboard-emmc-som-v15.dtb \
imx6dl-hummingboard-som-v15.dtb \
imx6dl-hummingboard2.dtb \
+ imx6dl-hummingboard2-emmc-som-v15.dtb \
imx6dl-hummingboard2-som-v15.dtb \
imx6dl-icore.dtb \
imx6dl-icore-rqs.dtb \
@@ -450,6 +451,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
imx6q-hummingboard-emmc-som-v15.dtb \
imx6q-hummingboard-som-v15.dtb \
imx6q-hummingboard2.dtb \
+ imx6q-hummingboard2-emmc-som-v15.dtb \
imx6q-hummingboard2-som-v15.dtb \
imx6q-icore.dtb \
imx6q-icore-ofcap10.dtb \
diff --git a/arch/arm/boot/dts/imx6dl-hummingboard2-emmc-som-v15.dts b/arch/arm/boot/dts/imx6dl-hummingboard2-emmc-som-v15.dts
new file mode 100644
index 000000000000..80313c13bcdb
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-hummingboard2-emmc-som-v15.dts
@@ -0,0 +1,55 @@
+/*
+ * Device Tree file for SolidRun HummingBoard2
+ * Copyright (C) 2015 Rabeeh Khoury <rabeeh@solid-run.com>
+ * Based on work by Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License.
+ *
+ * This file is distributed in the hope that it will be useful
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+/dts-v1/;
+
+#include "imx6dl.dtsi"
+#include "imx6qdl-sr-som.dtsi"
+#include "imx6qdl-sr-som-emmc.dtsi"
+#include "imx6qdl-sr-som-ti.dtsi"
+#include "imx6qdl-hummingboard2.dtsi"
+
+/ {
+ model = "SolidRun HummingBoard2 Solo/DualLite (1.5som+emmc)";
+ compatible = "solidrun,hummingboard2/dl", "fsl,imx6dl";
+};
diff --git a/arch/arm/boot/dts/imx6q-hummingboard2-emmc-som-v15.dts b/arch/arm/boot/dts/imx6q-hummingboard2-emmc-som-v15.dts
new file mode 100644
index 000000000000..1998ebfa0fe0
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-hummingboard2-emmc-som-v15.dts
@@ -0,0 +1,63 @@
+/*
+ * Device Tree file for SolidRun HummingBoard2
+ * Copyright (C) 2015 Rabeeh Khoury <rabeeh@solid-run.com>
+ * Based on work by Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License.
+ *
+ * This file is distributed in the hope that it will be useful
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-sr-som.dtsi"
+#include "imx6qdl-sr-som-emmc.dtsi"
+#include "imx6qdl-sr-som-ti.dtsi"
+#include "imx6qdl-hummingboard2.dtsi"
+
+/ {
+ model = "SolidRun HummingBoard2 Dual/Quad (1.5som+emmc)";
+ compatible = "solidrun,hummingboard2/q", "fsl,imx6q";
+};
+
+&sata {
+ status = "okay";
+ fsl,transmit-level-mV = <1104>;
+ fsl,transmit-boost-mdB = <0>;
+ fsl,transmit-atten-16ths = <9>;
+ fsl,no-spread-spectrum;
+};
--
2.7.4
^ permalink raw reply related
* [PATCH 18/20] ARM: dts: imx6qdl-hummingboard2: add v1.5 som without eMMC
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
Add support for the v1.5 SOM with TI Wi-Fi but without eMMC. As the
pinmux settings are different for the microsom, we need to use a
separate board-level dts for this as there is no support for overlays.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/Makefile | 2 +
arch/arm/boot/dts/imx6dl-hummingboard2-som-v15.dts | 54 +++++++++++++++++++
arch/arm/boot/dts/imx6q-hummingboard2-som-v15.dts | 62 ++++++++++++++++++++++
3 files changed, 118 insertions(+)
create mode 100644 arch/arm/boot/dts/imx6dl-hummingboard2-som-v15.dts
create mode 100644 arch/arm/boot/dts/imx6q-hummingboard2-som-v15.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index a757e2dd60c4..b72799b464b5 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -389,6 +389,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
imx6dl-hummingboard-emmc-som-v15.dtb \
imx6dl-hummingboard-som-v15.dtb \
imx6dl-hummingboard2.dtb \
+ imx6dl-hummingboard2-som-v15.dtb \
imx6dl-icore.dtb \
imx6dl-icore-rqs.dtb \
imx6dl-nit6xlite.dtb \
@@ -449,6 +450,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
imx6q-hummingboard-emmc-som-v15.dtb \
imx6q-hummingboard-som-v15.dtb \
imx6q-hummingboard2.dtb \
+ imx6q-hummingboard2-som-v15.dtb \
imx6q-icore.dtb \
imx6q-icore-ofcap10.dtb \
imx6q-icore-ofcap12.dtb \
diff --git a/arch/arm/boot/dts/imx6dl-hummingboard2-som-v15.dts b/arch/arm/boot/dts/imx6dl-hummingboard2-som-v15.dts
new file mode 100644
index 000000000000..e61ef1156f8b
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-hummingboard2-som-v15.dts
@@ -0,0 +1,54 @@
+/*
+ * Device Tree file for SolidRun HummingBoard2
+ * Copyright (C) 2015 Rabeeh Khoury <rabeeh@solid-run.com>
+ * Based on work by Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License.
+ *
+ * This file is distributed in the hope that it will be useful
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+/dts-v1/;
+
+#include "imx6dl.dtsi"
+#include "imx6qdl-sr-som.dtsi"
+#include "imx6qdl-sr-som-ti.dtsi"
+#include "imx6qdl-hummingboard2.dtsi"
+
+/ {
+ model = "SolidRun HummingBoard2 Solo/DualLite (1.5som)";
+ compatible = "solidrun,hummingboard2/dl", "fsl,imx6dl";
+};
diff --git a/arch/arm/boot/dts/imx6q-hummingboard2-som-v15.dts b/arch/arm/boot/dts/imx6q-hummingboard2-som-v15.dts
new file mode 100644
index 000000000000..d3ad7329cd6d
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-hummingboard2-som-v15.dts
@@ -0,0 +1,62 @@
+/*
+ * Device Tree file for SolidRun HummingBoard2
+ * Copyright (C) 2015 Rabeeh Khoury <rabeeh@solid-run.com>
+ * Based on work by Russell King
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License.
+ *
+ * This file is distributed in the hope that it will be useful
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * Or, alternatively
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-sr-som.dtsi"
+#include "imx6qdl-sr-som-ti.dtsi"
+#include "imx6qdl-hummingboard2.dtsi"
+
+/ {
+ model = "SolidRun HummingBoard2 Dual/Quad (1.5som)";
+ compatible = "solidrun,hummingboard2/q", "fsl,imx6q";
+};
+
+&sata {
+ status = "okay";
+ fsl,transmit-level-mV = <1104>;
+ fsl,transmit-boost-mdB = <0>;
+ fsl,transmit-atten-16ths = <9>;
+ fsl,no-spread-spectrum;
+};
--
2.7.4
^ permalink raw reply related
* [PATCH 17/20] ARM: dts: imx6qdl-hummingboard2: add PWM3 support
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 6954d4875cd8..1089f693ebde 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -361,6 +361,12 @@
>;
};
+ pinctrl_hummingboard2_pwm3: pwm3grp {
+ fsl,pins = <
+ MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
+ >;
+ };
+
pinctrl_hummingboard2_sgtl5000: hummingboard2-sgtl5000 {
fsl,pins = <
MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x130b0
@@ -463,6 +469,12 @@
status = "okay";
};
+&pwm3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_hummingboard2_pwm3>;
+ status = "okay";
+};
+
&ssi1 {
status = "okay";
};
--
2.7.4
^ permalink raw reply related
* [PATCH 16/20] ARM: dts: imx6*-hummingboard2: split out eMMC support
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
eMMC is optional on HB2 boards, and may be implemented by the SOM. Move
it out of the base HB2 include file.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6dl-hummingboard2.dts | 1 +
arch/arm/boot/dts/imx6q-hummingboard2.dts | 1 +
arch/arm/boot/dts/imx6qdl-hummingboard2-emmc.dtsi | 72 +++++++++++++++++++++++
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 26 --------
4 files changed, 74 insertions(+), 26 deletions(-)
create mode 100644 arch/arm/boot/dts/imx6qdl-hummingboard2-emmc.dtsi
diff --git a/arch/arm/boot/dts/imx6dl-hummingboard2.dts b/arch/arm/boot/dts/imx6dl-hummingboard2.dts
index 99b6cce13175..b12cd87f3f94 100644
--- a/arch/arm/boot/dts/imx6dl-hummingboard2.dts
+++ b/arch/arm/boot/dts/imx6dl-hummingboard2.dts
@@ -45,6 +45,7 @@
#include "imx6qdl-sr-som.dtsi"
#include "imx6qdl-sr-som-brcm.dtsi"
#include "imx6qdl-hummingboard2.dtsi"
+#include "imx6qdl-hummingboard2-emmc.dtsi"
/ {
model = "SolidRun HummingBoard2 Solo/DualLite";
diff --git a/arch/arm/boot/dts/imx6q-hummingboard2.dts b/arch/arm/boot/dts/imx6q-hummingboard2.dts
index fab388a0f673..5249f53dcdbc 100644
--- a/arch/arm/boot/dts/imx6q-hummingboard2.dts
+++ b/arch/arm/boot/dts/imx6q-hummingboard2.dts
@@ -45,6 +45,7 @@
#include "imx6qdl-sr-som.dtsi"
#include "imx6qdl-sr-som-brcm.dtsi"
#include "imx6qdl-hummingboard2.dtsi"
+#include "imx6qdl-hummingboard2-emmc.dtsi"
/ {
model = "SolidRun HummingBoard2 Dual/Quad";
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2-emmc.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2-emmc.dtsi
new file mode 100644
index 000000000000..1aa97817e751
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2-emmc.dtsi
@@ -0,0 +1,72 @@
+/*
+ * Device Tree file for SolidRun HummingBoard2
+ * Copyright (C) 2015 Rabeeh Khoury <rabeeh@solid-run.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+&iomuxc {
+ hummingboard2 {
+ pinctrl_hummingboard2_usdhc3: hummingboard2-usdhc3 {
+ fsl,pins = <
+ MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
+ MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
+ MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
+ MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
+ MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
+ MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
+ MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
+ MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
+ MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
+ MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
+ MX6QDL_PAD_SD3_RST__SD3_RESET 0x17059
+ >;
+ };
+ };
+};
+
+&usdhc3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_hummingboard2_usdhc3>;
+ vmmc-supply = <®_3p3v>;
+ vqmmc-supply = <®_3p3v>;
+ bus-width = <8>;
+ non-removable;
+ status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 52ed580cf64a..6954d4875cd8 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -441,22 +441,6 @@
>;
};
- pinctrl_hummingboard2_usdhc3: hummingboard2-usdhc3 {
- fsl,pins = <
- MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
- MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
- MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
- MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
- MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
- MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
- MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
- MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
- MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
- MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
- MX6QDL_PAD_SD3_RST__SD3_RESET 0x17059
- >;
- };
-
pinctrl_hummingboard2_uart3: hummingboard2-uart3 {
fsl,pins = <
MX6QDL_PAD_EIM_D25__UART3_TX_DATA 0x1b0b1
@@ -515,16 +499,6 @@
status = "okay";
};
-&usdhc3 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard2_usdhc3>;
- vmmc-supply = <®_3p3v>;
- vqmmc-supply = <®_3p3v>;
- bus-width = <8>;
- non-removable;
- status = "okay";
-};
-
&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_uart3>;
--
2.7.4
^ permalink raw reply related
* [PATCH 15/20] ARM: dts: imx6*-hummingboard2: rework regulators
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
From: Lucas Stach <dev@lynxeye.de>
Name the regulators according to the voltage rails they are feeding in
the schematic. The USB 2-4 regulators are fixed regulators and are always
on, as they are not a VBUS supply for a single USB host port on the i.MX6,
but supply VBUS to ports behind a USB hub and there is currently no way
to model this in mainline.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 6fbfa970a0a7..52ed580cf64a 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -54,7 +54,7 @@
reg_3p3v: regulator-3p3v {
compatible = "regulator-fixed";
- regulator-name = "3P3V";
+ regulator-name = "VCC_3V2";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
@@ -62,7 +62,7 @@
reg_1p8v: regulator-1p8v {
compatible = "regulator-fixed";
- regulator-name = "1P8V";
+ regulator-name = "VCC_1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
@@ -80,15 +80,16 @@
startup-delay-us = <1000>;
};
- reg_usbh1_vbus: regulator-usb-h1-vbus {
+ reg_usbh2_vbus: regulator-usb-h1-vbus {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbh1_vbus>;
- regulator-name = "usb_h1_vbus";
+ regulator-name = "V_USB2";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
+ regulator-always-on;
};
reg_usbotg_vbus: regulator-usb-otg-vbus {
@@ -97,33 +98,33 @@
gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbotg_vbus>;
- regulator-name = "usb_otg_vbus";
+ regulator-name = "V_USB1";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
};
- reg_usbh2_vbus: regulator-usb-h2-vbus {
- compatible = "regulator-gpio";
+ reg_usbh3_vbus: regulator-usb-h2-vbus {
+ compatible = "regulator-fixed";
enable-active-high;
enable-gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbh2_vbus>;
- regulator-name = "usb_h2_vbus";
+ regulator-name = "V_USB3";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- regulator-boot-on;
+ regulator-always-on;
};
- reg_usbh3_vbus: regulator-usb-h3-vbus {
- compatible = "regulator-gpio";
+ reg_usbh4_vbus: regulator-usb-h3-vbus {
+ compatible = "regulator-fixed";
enable-active-high;
enable-gpio = <&gpio7 10 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbh3_vbus>;
- regulator-name = "usb_h3_vbus";
+ regulator-name = "V_USB4";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
- regulator-boot-on;
+ regulator-always-on;
};
sound-sgtl5000 {
@@ -484,7 +485,6 @@
&usbh1 {
disable-over-current;
- vbus-supply = <®_usbh1_vbus>;
status = "okay";
};
--
2.7.4
^ permalink raw reply related
* [PATCH 14/20] ARM: dts: imx6*-hummingboard2: remove redundant PWM disables
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
From: Lucas Stach <dev@lynxeye.de>
The PWM nodes are already disabled in the imx6qdl.dtsi, so there
is no need to disable them again in the board DTS.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 8 --------
1 file changed, 8 deletions(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 2a63c992b62c..6fbfa970a0a7 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -478,14 +478,6 @@
status = "okay";
};
-&pwm3 {
- status = "disabled";
-};
-
-&pwm4 {
- status = "disabled";
-};
-
&ssi1 {
status = "okay";
};
--
2.7.4
^ permalink raw reply related
* [PATCH 13/20] ARM: dts: imx6*-hummingboard2: remove non-mainline property from RTC
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
From: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 9d5c3b2d3494..2a63c992b62c 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -167,7 +167,6 @@
pcf8523: rtc at 68 {
compatible = "nxp,pcf8523";
reg = <0x68>;
- nxp,12p5_pf;
};
sgtl5000: codec at 0a {
--
2.7.4
^ permalink raw reply related
* [PATCH 12/20] ARM: dts: imx6*-hummingboard2: fix PCIe reset polarity
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
From: Lucas Stach <dev@lynxeye.de>
The driver always uses active-low, but better describe reality in the DT.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 4ddc4b73b9ae..9d5c3b2d3494 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -469,7 +469,7 @@
&pcie {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_pcie_reset>;
- reset-gpio = <&gpio2 11 0>;
+ reset-gpio = <&gpio2 11 GPIO_ACTIVE_LOW>;
status = "okay";
};
--
2.7.4
^ permalink raw reply related
* [PATCH 11/20] ARM: dts: imx6*-hummingboard2: remove LDB node
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
From: Lucas Stach <dev@lynxeye.de>
It's disabled by default and the data mapping is supposed to be
retrieved from the attached panel driver in mainline.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index dfbcdf33b84c..4ddc4b73b9ae 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -466,15 +466,6 @@
};
};
-&ldb {
- status = "disabled";
-
- lvds-channel at 0 {
- fsl,data-mapping = "spwg";
- fsl,data-width = <18>;
- };
-};
-
&pcie {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_pcie_reset>;
--
2.7.4
^ permalink raw reply related
* [PATCH 10/20] ARM: dts: imx6*-hummingboard2: add SGTL5000 VDDD supply
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
From: Lucas Stach <dev@lynxeye.de>
VDDD is supplied by VCC_1P8 on HB2.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index ab809ee0c58c..dfbcdf33b84c 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -178,6 +178,7 @@
reg = <0x0a>;
VDDA-supply = <®_3p3v>;
VDDIO-supply = <®_3p3v>;
+ VDDD-supply = <®_1p8v>;
};
};
--
2.7.4
^ permalink raw reply related
* [PATCH 09/20] ARM: dts: imx6*-hummingboard2: fix formatting
From: Russell King @ 2017-12-11 16:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
From: Lucas Stach <dev@lynxeye.de>
Trivial formatting change.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 7e94548c0de7..ab809ee0c58c 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -482,9 +482,9 @@
};
&pwm1 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_hummingboard2_pwm1>;
- status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_hummingboard2_pwm1>;
+ status = "okay";
};
&pwm3 {
@@ -534,9 +534,7 @@
&usdhc3 {
pinctrl-names = "default";
- pinctrl-0 = <
- &pinctrl_hummingboard2_usdhc3
- >;
+ pinctrl-0 = <&pinctrl_hummingboard2_usdhc3>;
vmmc-supply = <®_3p3v>;
vqmmc-supply = <®_3p3v>;
bus-width = <8>;
--
2.7.4
^ permalink raw reply related
* [PATCH 08/20] ARM: dts: imx6*-hummingboard2: convert to more conventional vmmc-supply
From: Russell King @ 2017-12-11 16:57 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 4723bb279e57..7e94548c0de7 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -52,11 +52,6 @@
linux,rc-map-name = "rc-rc6-mce";
};
- usdhc2_pwrseq: usdhc2-pwrseq {
- compatible = "mmc-pwrseq-simple";
- reset-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;
- };
-
reg_3p3v: regulator-3p3v {
compatible = "regulator-fixed";
regulator-name = "3P3V";
@@ -73,6 +68,18 @@
regulator-always-on;
};
+ v_sd: regulator-v-sd {
+ compatible = "regulator-fixed";
+ gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_hummingboard2_vmmc>;
+ regulator-boot-on;
+ regulator-max-microvolt = <3300000>;
+ regulator-min-microvolt = <3300000>;
+ regulator-name = "v_sd";
+ startup-delay-us = <1000>;
+ };
+
reg_usbh1_vbus: regulator-usb-h1-vbus {
compatible = "regulator-fixed";
enable-active-high;
@@ -391,7 +398,6 @@
fsl,pins = <
MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071
MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b071
- MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x1b0b0
>;
};
@@ -428,6 +434,12 @@
>;
};
+ pinctrl_hummingboard2_vmmc: hummingboard2-vmmc {
+ fsl,pins = <
+ MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x1b0b0
+ >;
+ };
+
pinctrl_hummingboard2_usdhc3: hummingboard2-usdhc3 {
fsl,pins = <
MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
@@ -515,7 +527,7 @@
&pinctrl_hummingboard2_usdhc2_aux
&pinctrl_hummingboard2_usdhc2_200mhz
>;
- mmc-pwrseq = <&usdhc2_pwrseq>;
+ vmmc-supply = <&v_sd>;
cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
status = "okay";
};
--
2.7.4
^ permalink raw reply related
* [PATCH 07/20] ARM: dts: imx6*-hummingboard2: use proper gpio flags definitions
From: Russell King @ 2017-12-11 16:57 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
Use proper gpio flag definitions for GPIOs rather than using opaque
uninformative numbers.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index b632eb73e85c..4723bb279e57 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -46,7 +46,7 @@
ir_recv: ir-receiver {
compatible = "gpio-ir-receiver";
- gpios = <&gpio7 9 1>;
+ gpios = <&gpio7 9 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_gpio7_9>;
linux,rc-map-name = "rc-rc6-mce";
@@ -76,7 +76,7 @@
reg_usbh1_vbus: regulator-usb-h1-vbus {
compatible = "regulator-fixed";
enable-active-high;
- gpio = <&gpio1 0 0>;
+ gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbh1_vbus>;
regulator-name = "usb_h1_vbus";
@@ -87,7 +87,7 @@
reg_usbotg_vbus: regulator-usb-otg-vbus {
compatible = "regulator-fixed";
enable-active-high;
- gpio = <&gpio3 22 0>;
+ gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbotg_vbus>;
regulator-name = "usb_otg_vbus";
@@ -98,7 +98,7 @@
reg_usbh2_vbus: regulator-usb-h2-vbus {
compatible = "regulator-gpio";
enable-active-high;
- enable-gpio = <&gpio2 13 0>;
+ enable-gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbh2_vbus>;
regulator-name = "usb_h2_vbus";
@@ -110,7 +110,7 @@
reg_usbh3_vbus: regulator-usb-h3-vbus {
compatible = "regulator-gpio";
enable-active-high;
- enable-gpio = <&gpio7 10 0>;
+ enable-gpio = <&gpio7 10 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hummingboard2_usbh3_vbus>;
regulator-name = "usb_h3_vbus";
--
2.7.4
^ permalink raw reply related
* [PATCH 06/20] ARM: dts: imx6*-hummingboard2: fix SD card detect
From: Russell King @ 2017-12-11 16:57 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
Fix the SD card detect signal, which was missing the polarity
specification, and the pull-up necessary for proper signalling.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 676160ef2718..b632eb73e85c 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -389,7 +389,7 @@
pinctrl_hummingboard2_usdhc2_aux: hummingboard2-usdhc2-aux {
fsl,pins = <
- MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x13071
+ MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071
MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x1b071
MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30 0x1b0b0
>;
@@ -516,7 +516,7 @@
&pinctrl_hummingboard2_usdhc2_200mhz
>;
mmc-pwrseq = <&usdhc2_pwrseq>;
- cd-gpios = <&gpio1 4 0>;
+ cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
status = "okay";
};
--
2.7.4
^ permalink raw reply related
* [PATCH 05/20] ARM: dts: imx6*-hummingboard2: add Broadcom Wi-Fi include
From: Russell King @ 2017-12-11 16:57 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
The Broadcom Wi-Fi was moved out to a separate include file. Add the
include.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6dl-hummingboard2.dts | 1 +
arch/arm/boot/dts/imx6q-hummingboard2.dts | 1 +
2 files changed, 2 insertions(+)
diff --git a/arch/arm/boot/dts/imx6dl-hummingboard2.dts b/arch/arm/boot/dts/imx6dl-hummingboard2.dts
index 30e042822ec6..99b6cce13175 100644
--- a/arch/arm/boot/dts/imx6dl-hummingboard2.dts
+++ b/arch/arm/boot/dts/imx6dl-hummingboard2.dts
@@ -43,6 +43,7 @@
#include "imx6dl.dtsi"
#include "imx6qdl-sr-som.dtsi"
+#include "imx6qdl-sr-som-brcm.dtsi"
#include "imx6qdl-hummingboard2.dtsi"
/ {
diff --git a/arch/arm/boot/dts/imx6q-hummingboard2.dts b/arch/arm/boot/dts/imx6q-hummingboard2.dts
index 8dcad5668c17..fab388a0f673 100644
--- a/arch/arm/boot/dts/imx6q-hummingboard2.dts
+++ b/arch/arm/boot/dts/imx6q-hummingboard2.dts
@@ -43,6 +43,7 @@
#include "imx6q.dtsi"
#include "imx6qdl-sr-som.dtsi"
+#include "imx6qdl-sr-som-brcm.dtsi"
#include "imx6qdl-hummingboard2.dtsi"
/ {
--
2.7.4
^ permalink raw reply related
* [PATCH 04/20] ARM: dts: imx6*-hummingboard2: move microsom includes into .dts
From: Russell King @ 2017-12-11 16:57 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
Move the microsom includes into the .dts files.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6dl-hummingboard2.dts | 1 +
arch/arm/boot/dts/imx6q-hummingboard2.dts | 1 +
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 1 -
3 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/imx6dl-hummingboard2.dts b/arch/arm/boot/dts/imx6dl-hummingboard2.dts
index 207ce329534a..30e042822ec6 100644
--- a/arch/arm/boot/dts/imx6dl-hummingboard2.dts
+++ b/arch/arm/boot/dts/imx6dl-hummingboard2.dts
@@ -42,6 +42,7 @@
/dts-v1/;
#include "imx6dl.dtsi"
+#include "imx6qdl-sr-som.dtsi"
#include "imx6qdl-hummingboard2.dtsi"
/ {
diff --git a/arch/arm/boot/dts/imx6q-hummingboard2.dts b/arch/arm/boot/dts/imx6q-hummingboard2.dts
index b850111ddf34..8dcad5668c17 100644
--- a/arch/arm/boot/dts/imx6q-hummingboard2.dts
+++ b/arch/arm/boot/dts/imx6q-hummingboard2.dts
@@ -42,6 +42,7 @@
/dts-v1/;
#include "imx6q.dtsi"
+#include "imx6qdl-sr-som.dtsi"
#include "imx6qdl-hummingboard2.dtsi"
/ {
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 2dfd8f5887fc..676160ef2718 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -38,7 +38,6 @@
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
-#include "imx6qdl-sr-som.dtsi"
/ {
chosen {
--
2.7.4
^ permalink raw reply related
* [PATCH 03/20] ARM: dts: imx6qdl-hummingboard2: rename microsom include
From: Russell King @ 2017-12-11 16:57 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171211165631.GW10595@n2100.armlinux.org.uk>
Rename microsom include to imx6qdl-sr-som.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
index 72226ccf3e34..2dfd8f5887fc 100644
--- a/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-hummingboard2.dtsi
@@ -38,7 +38,7 @@
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
-#include "imx6qdl-microsom.dtsi"
+#include "imx6qdl-sr-som.dtsi"
/ {
chosen {
--
2.7.4
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox