devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: arm@kernel.org
Cc: "Andrew Lunn" <andrew@lunn.ch>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Tony Lindgren" <tony@atomide.com>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Liviu Dudau" <liviu.dudau@arm.com>,
	"Masahiro Yamada" <yamada.masahiro@socionext.com>,
	"Thierry Reding" <thierry.reding@gmail.com>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Kevin Hilman" <khilman@kernel.org>,
	"Gregory Clement" <gregory.clement@bootlin.com>,
	"Michal Simek" <michal.simek@xilinx.com>,
	"Krzysztof Kozlowski" <krzk@kernel.org>,
	"Joel Stanley" <joel@jms.id.au>,
	"Andy Gross" <andy.gross@linaro.org>,
	devicetree@vger.kernel.org, "Jason Cooper" <jason@lakedaemon.net>,
	"Simon Horman" <horms@verge.net.au>,
	linux-arm-kernel@lists.infradead.org,
	"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
	"Shawn Guo" <shawnguo@kernel.org>,
	"Andreas Färber" <afaerber@suse.de>,
	"Daniel Mack" <daniel@zonque.org>
Subject: Moving ARM dts files
Date: Tue, 4 Dec 2018 12:36:49 -0600	[thread overview]
Message-ID: <20181204183649.GA5716@bogus> (raw)

Olof, Arnd,

I've put together a script to move the dts files and update the 
makefiles. It doesn't handle files not following a common prefix which 
isn't many and some includes within the dts files will need some fixups 
by hand.

MAINTAINERS will also need updating.

A few questions:

Do we want to move absolutely everything to subdirs? There's quite a 
few platforms with only 1-2 platforms. I haven't added these to the 
list yet, but can.

Do any vendors need another level of directories? davinci, omap, nspire, 
etc. for TI for example.

What to do with armv7m.dtsi? I guess it should remain and we just fixup 
the include. There may be a few other cross vendor things.


Sub-arch maintainers, 
'vendor_map' below is the mapping of file prefix to new subdirectory 
(the SoC vendor prefix). Please comment if there are any issues.

Rob

8<-----------------------------------------------------------
#!/usr/bin/env python3

import os
import re
from git import Git
import glob

vendor_map = {
    'imx': 'fsl',
    'ls': 'fsl',
    'vf': 'fsl',
    'qcom': 'qcom',
    'am3' : 'ti',
    'am4' : 'ti',
    'am5' : 'ti',
    'da' : 'ti',
    'dm' : 'ti',
    'dra' : 'ti',
    'keystone' : 'ti',
    'omap' : 'ti',
    'nspire' : 'ti',
    'armada' : 'marvell',
    'berlin' : 'marvell',
    'dove' : 'marvell',
    'kirkwood' : 'marvell',
    'orion' : 'marvell',
    'pxa' : 'marvell',
    'mvebu' : 'marvell',
    'mmp2' : 'marvell',
    'arm-' : 'arm',
    'integ' : 'arm',
    've' : 'arm',
    'aspeed' : 'aspeed',
    'at91' : 'atmel',
    'sama' : 'atmel',
    'bcm' : 'brcm',
    'exynos' : 'samsung',
    's3c' : 'samsung',
    's5p' : 'samsung',
    'gemini' : 'cortina',
    'hi3' : 'hisilicon',
    'hip' : 'hisilicon',
    'hisi' : 'hisilicon',
    'mt' : 'mediatek',
    'meson' : 'amlogic',
    'owl' : 'actions',
    'r7' : 'renesas',
    'r8' : 'renesas',
    'r9' : 'renesas',
    'rk' : 'rockchip',
    'socfpga' : 'altera',
    'st' : 'st',
    'spear' : 'st',
    'sun' : 'allwinner',
    'tegra' : 'nvidia',
    'zynq' : 'xilinx',
    'wm' : 'wm',
    'uniph' : 'socionext',
    'zx' : 'zte',
}

if __name__ == "__main__":
    g = Git('.')

    g.checkout("HEAD", "arch/arm/boot/dts/Makefile")
    dts_make = open("arch/arm/boot/dts/Makefile", "r").read()

    # make entries 1 line
    make2 = re.sub(r'\\\n', '', dts_make)

    for k,v in vendor_map.items():
        for f in glob.iglob("arch/arm/boot/dts/" + k + "*.*"):
            new_dir = "arch/arm/boot/dts/" + v + "/"
            base = os.path.splitext(os.path.basename(f))[0]

            os.makedirs(new_dir, exist_ok=True)
            g.mv(f, new_dir)

            # Remove the file from the makefile
            dts_make = re.sub('.*' + base + r'\.dtb.*\\\n', '', dts_make)
            dts_make = re.sub('.*' + base + r'\.dtb', '', dts_make)

            # extract the matching makefile entry
            reg = re.search(r'.*' + base + r'.*', make2)
            if not reg:
                continue

            entry = reg.group(0)
            make2 = re.sub(r'.*' + base + r'.*', '', make2)
            if entry:
                makefile = open(new_dir + 'Makefile', 'a+')
                print(entry, file=makefile)
                makefile.close()


    for d in sorted(glob.iglob("arch/arm/boot/dts/*/")):
        dts_make += 'subdir-y += ' + d.split(os.path.sep)[-2] + '\n'

        # Add license and sort entries of sub-dir makefile
        vendor_make = '# SPDX-License-Identifier: GPL-2.0\n'
        make_lines = open(d + 'Makefile', 'r').readlines()
        for l in sorted(make_lines):
            vendor_make += l

        vendor_make = re.sub(r'\t', r'\\\n\t', vendor_make)

        f = open(d + 'Makefile', 'w')
        f.write(vendor_make)
        f.close()
        g.add(d + 'Makefile')

    # Remove entries with no dtbs left
    dts_make = re.sub(r'.*\+= \\\n\n', '', dts_make)

    open("arch/arm/boot/dts/Makefile", "w").write(dts_make)
    g.add("arch/arm/boot/dts/Makefile")

             reply	other threads:[~2018-12-04 18:36 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-04 18:36 Rob Herring [this message]
2018-12-04 18:47 ` Moving ARM dts files Alexandre Belloni
2018-12-04 19:09   ` Rob Herring
2018-12-04 22:21 ` Simon Horman
2018-12-05  1:22 ` Andreas Färber
     [not found]   ` <9c2b5528-679a-928e-3150-aa383a4f0405-l3A5Bk7waGM@public.gmane.org>
2018-12-05  4:17     ` Rob Herring
2018-12-05 17:33       ` Tom Rini
2018-12-06 13:32       ` Andreas Färber
2018-12-06 19:06         ` Rob Herring
2018-12-06 20:06           ` Mark Brown
     [not found]             ` <20181206200652.GB3084-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2018-12-06 20:49               ` Olof Johansson
2018-12-07 14:57             ` Rob Herring
2018-12-07 15:16               ` Mark Brown
     [not found]                 ` <20181207151625.GC6510-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2018-12-07 15:29                   ` Rob Herring
2018-12-06 20:14           ` Tom Rini
2018-12-05  4:18 ` Masahiro Yamada
2018-12-05  9:48   ` Michal Simek
2018-12-05  6:02 ` Jisheng Zhang
2018-12-05  8:19   ` Linus Walleij
2018-12-05  8:34     ` Jisheng Zhang
2018-12-05  9:04       ` Linus Walleij
2018-12-05 15:01     ` Rob Herring
2018-12-05 21:03       ` Linus Walleij
2018-12-06 13:39       ` Uwe Kleine-König
2018-12-06 13:58         ` Rob Herring
2018-12-06 14:05           ` Alexandre Belloni
2018-12-06 14:30             ` Linus Walleij
2018-12-06 16:57               ` Rob Herring
2018-12-06 22:12                 ` Linus Walleij
2018-12-07 23:35                   ` Tony Lindgren
2018-12-05  8:13 ` Nicolas.Ferre
2018-12-05 15:14 ` Neil Armstrong
2018-12-05 17:36 ` Li Yang
2018-12-07 22:33 ` Rob Herring
2018-12-08  9:25   ` Krzysztof Kozlowski
2018-12-08 22:40   ` Linus Walleij
2018-12-11 15:58   ` Olof Johansson
2018-12-08 10:07 ` Ian Campbell

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=20181204183649.GA5716@bogus \
    --to=robh@kernel.org \
    --cc=afaerber@suse.de \
    --cc=alexandre.belloni@bootlin.com \
    --cc=andrew@lunn.ch \
    --cc=andy.gross@linaro.org \
    --cc=arm@kernel.org \
    --cc=daniel@zonque.org \
    --cc=devicetree@vger.kernel.org \
    --cc=f.fainelli@gmail.com \
    --cc=gregory.clement@bootlin.com \
    --cc=horms@verge.net.au \
    --cc=jason@lakedaemon.net \
    --cc=joel@jms.id.au \
    --cc=khilman@kernel.org \
    --cc=krzk@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=liviu.dudau@arm.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=michal.simek@xilinx.com \
    --cc=shawnguo@kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=tony@atomide.com \
    --cc=yamada.masahiro@socionext.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).