lkml.org 
[lkml]   [2019]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Using device tree overlays in Linux
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

\
 
 \ /
  Last update: 2019-04-06 08:08    [W:0.092 / U:1.916 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site