From: Maxime Bizon <mbizon@freebox.fr>
To: Jonas Gorski <jonas.gorski@gmail.com>
Cc: linux-mips@linux-mips.org, Ralf Baechle <ralf@linux-mips.org>,
John Crispin <blogic@openwrt.org>,
Florian Fainelli <florian@openwrt.org>,
Kevin Cernekee <cernekee@gmail.com>,
devicetree-discuss@lists.ozlabs.org,
linux-kernel@vger.kernel.org
Subject: Re: [RFC] MIPS: BCM63XX: add initial Device Tree support
Date: Mon, 12 Nov 2012 12:18:14 +0100 [thread overview]
Message-ID: <1352719094.10405.18.camel@sakura.staff.proxad.net> (raw)
In-Reply-To: <1352638249-29298-1-git-send-email-jonas.gorski@gmail.com>
On Sun, 2012-11-11 at 13:50 +0100, Jonas Gorski wrote:
> This patch series adds initial Device Tree support to BCM63XX by adding
> bindings for interrupts, GPIOs and clocks to Device Tree. Finally it adds
> one "real" user, the serial driver, to the device tree boards.
> 51 files changed, 1993 insertions(+), 392 deletions(-)
I've already said what I think privately to you but I will do it again
The bcm63xx code base is IMO quite clean. It does not suffer from code
duplication, and god it would have taken far less time to write it the
"bad" way.
We have only *one* register file for all the SOCs, only the different
bits are visible.
We can even build a single kernel that support all SOCs/boards.
So what's the *point* of this ?
You *cannot* abstract hardware, you just can't guess now what the next
SOC peculiarity will be.
Quoting your patch "BCM63XX: switch to common clock and Device Tree"
+Required properties:
+- compatible: one of
+ a) "brcm,bcm63xx-clock"
+ Standard BCM63XX clock.
cool a nice abstraction, one register bit = one clock
+ b) "brcm,bcm63xx-sar-clock"
+ SAR/ATM clock, which requires a reset of the SAR/ATM block.
+ c) "brcm,bcm63xx-enetsw-clock"
+ Generic ethernet switch clock, which requires a reset of the block.
+ d) "brcm,bcm6368-enetsw-clock"
+ BCM6368 ethernet switch clock, which requires additional clocks to be
+ enabled during reset.
oops that abstraction did not fly because after enabling this particular
clock on this SOC you also need to toggle other bits.
that list is going to get longer and longer and at the end won't mean anything.
and this is supposed to be a *STABLE* API
We don't add syscall everyday, because we have to support them forever.
Why would it be ok to add such abstractions that prevent further code
refactoring because they are fixed in stone ?
--
Maxime
next prev parent reply other threads:[~2012-11-12 11:18 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-11 12:50 [RFC] MIPS: BCM63XX: add initial Device Tree support Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add generic fallback device trees Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add Device Tree glue code for IRQ handling Jonas Gorski
2012-11-13 5:00 ` Stephen Warren
2012-11-14 12:09 ` Jonas Gorski
2012-11-17 4:13 ` Stephen Warren
2012-11-11 12:50 ` [RFC] net: ethernet: bcm63xx_enet: use clk_{prepare_enable,disable_unprepare} Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add Device Tree clock definitions Jonas Gorski
2012-11-13 5:02 ` Stephen Warren
2012-11-14 12:11 ` Jonas Gorski
2012-11-17 4:15 ` Stephen Warren
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: switch to common clock and Device Tree Jonas Gorski
2012-11-13 5:04 ` Stephen Warren
2012-11-14 12:12 ` Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: register GPIO controller through " Jonas Gorski
2012-11-13 5:06 ` Stephen Warren
2012-11-14 12:13 ` Jonas Gorski
2012-11-11 12:50 ` [RFC] serial: bcm63xx_uart: allow probing " Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add serial blocks to Device Tree includes Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add empty Device Trees for all supported boards Jonas Gorski
2012-11-13 5:12 ` Stephen Warren
2012-11-14 12:15 ` Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: enable serial through Device Tree Jonas Gorski
[not found] ` <1352638249-29298-16-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-11-13 5:13 ` Stephen Warren
[not found] ` <50A1D6ED.50001-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-14 12:17 ` Jonas Gorski
[not found] ` <1352638249-29298-1-git-send-email-jonas.gorski-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add support for loading DTB Jonas Gorski
2012-11-11 12:50 ` [RFC] MIPS: BCM63XX: add simple Device Tree includes for all SoCs Jonas Gorski
2012-11-13 4:54 ` Stephen Warren
[not found] ` <50A1D290.3050409-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-11-13 17:56 ` David Daney
2012-11-11 12:50 ` [RFC] SPI: spi-bcm63xx: use clk_{prepare_enable,disable_unprepare} Jonas Gorski
2012-11-11 12:50 ` [RFC] bcm63xx-rng: " Jonas Gorski
2012-11-11 12:50 ` [RFC] serial: bcm63xx_uart: remove unnecessary include Jonas Gorski
2012-11-11 12:59 ` [RFC] MIPS: BCM63XX: add initial Device Tree support Jonas Gorski
2012-11-12 11:18 ` Maxime Bizon [this message]
2012-11-14 12:07 ` Jonas Gorski
2012-11-14 14:47 ` Maxime Bizon
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=1352719094.10405.18.camel@sakura.staff.proxad.net \
--to=mbizon@freebox.fr \
--cc=blogic@openwrt.org \
--cc=cernekee@gmail.com \
--cc=devicetree-discuss@lists.ozlabs.org \
--cc=florian@openwrt.org \
--cc=jonas.gorski@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.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 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).