From: Rob Herring <robh@kernel.org>
To: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Cc: "pantelis.antoniou@konsulko.com" <pantelis.antoniou@konsulko.com>,
"frowand.list@gmail.com" <frowand.list@gmail.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Hamish Martin <Hamish.Martin@alliedtelesis.co.nz>
Subject: Re: Using device tree overlays in Linux
Date: Sat, 06 Apr 2019 01:07:16 -0500 [thread overview]
Message-ID: <5ca84216.1c69fb81.3205c.592c@mx.google.com> (raw)
In-Reply-To: <71fb0ff289e84c55bd92ecd96bc9aa76@svr-chch-ex1.atlnz.lc>
On Thu, Apr 04, 2019 at 01:50:20AM +0000, Chris Packham wrote:
> Hi,
>
> I'm implementing support for some modular Linux based systems using
> device tree overlays. The code is working but it seems a little more
> fiddly that than it should be so I'm wondering if I'm doing it right.
>
> An example of what I'm doing is
>
>
> arch/arm/boot/dts/Makefile:
> DTC_FLAGS_myboard += -@
>
> drivers/foo/Makefile:
> obj-y += myplugin.dtb.o
> obj-y += mydriver.o
>
> drivers/foo/myplugin.dts:
> /dts-v1/;
> /plugin/;
> /{
> fragment@0 {
> target = <&i2c0>;
> __overlay__ {
> gpio@74 {
> compatible = "nxp,pca9539";
> reg = <0x74>
> };
> };
> };
> };
>
> drivers/foo/mydriver.c:
> extern uint8_t __dtb_myplugin_begin[];
> extern uint8_t __dtb_myplugin_end[];
>
> int mydriver_probe(struct platform_device *pdev)
> {
> u32 size = __dtb_myplugin_end - __dtb_myplugin_begin;
> int overlay_id;
> int ret;
>
> ret = of_overlay_fdt_apply(__dtb_myplugin_begin,
> size, &overlay_id);
> return ret;
> }
>
>
> The first issue is that I need to add -@ to the DTC_FLAGS for my board
> dtb. I kind of understand that I only need -@ if my overlay targets
> something symbolic so I might not need it but I was surprised that there
> wasn't a Kconfig option that makes this happen automatically.
Whether overlays make sense or are needed are per board.
You could add a kconfig entry that drivers which depend on overlays
select, but turning on '-@' has to be per board (or SoC family if the
SoC maintainer is okay with that).
> externing things in C files makes checkpatch.pl complain. I see the
> of/unittests.c and rcar_du_of.c hide this with a macro. I was again
> surprised that there wasn't a common macro to declare these.
Feel free to propose something. There just aren't that many cases that
anyone has cared what checkpatch says.
Rob
next prev parent reply other threads:[~2019-04-06 6:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-04 1:50 Using device tree overlays in Linux Chris Packham
2019-04-06 6:07 ` Rob Herring [this message]
2019-04-08 1:05 ` Frank Rowand
2019-04-08 1:27 ` Chris Packham
2019-04-09 19:19 ` Frank Rowand
2019-04-09 20:54 ` Chris Packham
2019-04-09 19:33 ` Frank Rowand
2019-04-09 20:47 ` Chris Packham
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5ca84216.1c69fb81.3205c.592c@mx.google.com \
--to=robh@kernel.org \
--cc=Chris.Packham@alliedtelesis.co.nz \
--cc=Hamish.Martin@alliedtelesis.co.nz \
--cc=devicetree@vger.kernel.org \
--cc=frowand.list@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pantelis.antoniou@konsulko.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).