
Hi,
On Mon, Feb 27, 2017 at 5:53 PM, Andre Przywara andre.przywara@arm.com wrote:
Hi,
On 27/02/17 03:30, Chen-Yu Tsai wrote:
On Mon, Feb 27, 2017 at 8:26 AM, Andre Przywara andre.przywara@arm.com wrote:
Hi,
in the wake of the sunxi DM enablement series it became apparent that the current device tree files for the A64 SoC and its board are outdated.
Since Linux v4.10-rc1 there are now basic .dts files for the Allwinner A64 SoC and the Pine64 boards in the mainline kernel. Linux v4.11-rc1 added MMC and USB support. Because our preliminary device trees used in U-Boot differ significantly, let's update our copy with what's in the current Linus' master tree. Since in contrast to U-Boot the kernel still lacks support for Ethernet, we keep our preliminary nodes for that IP, but adjust it slightly to match the new clocks and reset bindings.
As the sun8i-emac driver is actually using the DT for the pinmux setup, we teach it how to cope with the new pinctrl bindings in the first two patches. This is probably becoming somewhat obsolete very soon (with DM GPIO support on the list already), however I consider these two patches as merely fixes for the existing driver to maintain bisectability. It would make sense to merge the new DTs before the DM patches, so we need to have something in place which works meanwhile.
Let me know what you think.
Cheers, Andre.
Andre Przywara (6): sunxi: GPIO: introduce sunxi_gpio_setup_dt_pins() net: sun8i-emac: use new, generic GPIO setup routine sunxi: dts: update sun50i-a64.dtsi from Linux sunxi: dts: update Pine64 .dts sunxi: dts: remove now obsolete pine64-common.dtsi sunxi: dts: add Bananapi M64 .dts
Could we keep this simple, and just do a "sync with the kernel" commit for sun50i, which also keeps the sun8i-emac specific bits. And also explicitly mention the git commit or tag you are syncing to.
So you mean to drop patch 1 and 2 and keep the old style pinctrl bindings around for the EMAC node? I can certainly do this (if others agree), but didn't want to dodge a more proper solution in the first place.
I've actually no preference on this. What I meant was you don't need four patches to do the sync-up, just one, i.e. copy sun50i*.{dts,dtsi} from the kernel, and patch back whatever the emac needs, since it's not in mainline yet.
I guess you could update sun8i-emac to deal with generic pinconf, or update the gpio driver, but that would be a separate series.
ChenYu
Another alternative would be to squash the functionality of patch 1 directly into sun8i_emac.c, so without the moving to pinmux.c. This would mean dropping patch 1/6 and just having a fix for the sun8i_emac.
Let me know what's the preferred solution here.
Cheers, Andre.
arch/arm/dts/Makefile | 3 +- arch/arm/dts/sun50i-a64-bananapi-m64.dts | 135 +++++++ arch/arm/dts/sun50i-a64-pine64-common.dtsi | 93 ----- arch/arm/dts/sun50i-a64-pine64-plus.dts | 16 +- arch/arm/dts/sun50i-a64-pine64.dts | 72 +++- arch/arm/dts/sun50i-a64.dtsi | 615 +++++++++-------------------- arch/arm/include/asm/arch-sunxi/gpio.h | 4 + arch/arm/mach-sunxi/pinmux.c | 77 ++++ drivers/net/sun8i_emac.c | 38 +- include/dt-bindings/clock/sun50i-a64-ccu.h | 134 +++++++ include/dt-bindings/reset/sun50i-a64-ccu.h | 98 +++++ 11 files changed, 706 insertions(+), 579 deletions(-) create mode 100644 arch/arm/dts/sun50i-a64-bananapi-m64.dts delete mode 100644 arch/arm/dts/sun50i-a64-pine64-common.dtsi create mode 100644 include/dt-bindings/clock/sun50i-a64-ccu.h create mode 100644 include/dt-bindings/reset/sun50i-a64-ccu.h
-- 2.8.2