From: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
To: "pantelis.antoniou@konsulko.com" <pantelis.antoniou@konsulko.com>,
"frowand.list@gmail.com" <frowand.list@gmail.com>,
"robh+dt@kernel.org" <robh+dt@kernel.org>
Cc: "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: Using device tree overlays in Linux
Date: Thu, 4 Apr 2019 01:50:20 +0000 [thread overview]
Message-ID: <71fb0ff289e84c55bd92ecd96bc9aa76@svr-chch-ex1.atlnz.lc> (raw)
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.
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.
next reply other threads:[~2019-04-04 1:50 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-04 1:50 Chris Packham [this message]
2019-04-06 6:07 ` Using device tree overlays in Linux Rob Herring
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=71fb0ff289e84c55bd92ecd96bc9aa76@svr-chch-ex1.atlnz.lc \
--to=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 \
--cc=robh+dt@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.