Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp324638imm; Fri, 1 Jun 2018 01:20:36 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLWWxHqd7yLjURJwQrHkAzBFwufkQd3U8IcnBHKRnM5VwF+i/UQP9vOo425d+7G4pDdzDlD X-Received: by 2002:a17:902:2927:: with SMTP id g36-v6mr10064652plb.303.1527841236354; Fri, 01 Jun 2018 01:20:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527841236; cv=none; d=google.com; s=arc-20160816; b=qak2e0zsTF6nwZJQ3FZYlTnshMUWS4jfgAusPM9FL+9KEvfhiKOCX4QZuCcB5YnKa7 h7SCGYB0ov2VciJTMNXVGG9y/hMPIAAvWayDhrkhS4/VPzgoCJP+6ZF7/mraZlh0oFgR oJcy2tyy/Y7Gn7r5+5PcFcjNYgUnhnVPzDV4GlH80jqfgYaLUQ5LA3ldx+Z6N5mKH7ZJ txfQjRh+I6t+3Y0x/QLHm0rMVgX8pfuuCfcIFESeZjgIkdzkoxa64eZp6If4KHSyFGmR DR4oWsulIZfcVFGC487ws9mwm2MnGPhzQwlmrDCGKa3wCBythTOq1K16s4MUMeidd99h 0XHQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:references:in-reply-to:mime-version :dkim-signature:arc-authentication-results; bh=VWIYTzv7hryqXZBzL9jphE3SXyYKZtxtPZRnpokZc9A=; b=LK4gAdELwl8WS0p43/TU01Haq5Xn8F3I13Ft0O3+pC+HFnSrHTuIKBZxELkLYspSs8 H5+vxJ/IOyFnc4rX9943vNc4g+zx1BeFt++KiwDyEDty3arL8v1t/3rA576JHEdxjyNb HOhAWLeTYJlhVhhBxrZkGQuVpJuCL3rJmce6Zq8edycZtnz9y807LDtFbc/CJuArjVpR mdqNSxgT2VYUOnqvZAguUm/mDFvmg5gaNBQb1UXC3IvYppDHuXZJIP09m+V9dTqaaDMd 4nXY6B4SkfMUlQbk+3oyXGYxgHpTrVf7OQWIAKESQIjmoSNAwF/rwBaCHdnPKIfRIM4D KdMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=fCxydOP8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z5-v6si37576948pln.562.2018.06.01.01.20.20; Fri, 01 Jun 2018 01:20:36 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=fCxydOP8; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751371AbeFAISs (ORCPT + 99 others); Fri, 1 Jun 2018 04:18:48 -0400 Received: from mail-vk0-f65.google.com ([209.85.213.65]:45924 "EHLO mail-vk0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750968AbeFAISi (ORCPT ); Fri, 1 Jun 2018 04:18:38 -0400 Received: by mail-vk0-f65.google.com with SMTP id n134-v6so14971018vke.12; Fri, 01 Jun 2018 01:18:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-transfer-encoding; bh=VWIYTzv7hryqXZBzL9jphE3SXyYKZtxtPZRnpokZc9A=; b=fCxydOP85Sonl9V0aPPgkNT5XCGO4GvzFKZIAkYoSunMjwfcouGe8joq3RtcRL99cy NoZ4lqhhmR0nRCxpMTpUixDBB+Sk/eq7xty3iVo7pBnkag6rBreAuaqLt4/Owmh2QWhr jou24KeiE3S+IF9I77N/cbOfyvgpReZK/gHP6pqzPPbgKoiBTk6/2/JJyvISJNYthbNq PE4QARqn4PfwoQ8gOMak9RYeG2ykSQ0Lyx/WoMrrsHgHOBFjBtptMEC61xmz59YkTGuI +/0asgukbfC/YAKTtVbR+RmfxuzAXaiVdHHDzlCqSj2cp3WCq6jS/n5Gg3MoIYNBMoIN Uahg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-transfer-encoding; bh=VWIYTzv7hryqXZBzL9jphE3SXyYKZtxtPZRnpokZc9A=; b=q4V8OzHqE9J/4YoxnxWQUEK3QfZkBrH+29iYtrGhb99KPii7HSoHRgRgYzof41SGwY s5lam8yUqKbToNwi7Haa57YPHeJhftKXco/yxeEZxlYOEUj8LzISJd19wXtQZWbpNd6d 1KyxTIVMnQk3F2tr6jKA05CsYbh4mGrwLmAoj7IRATOBHeaOmUtGiYC5IzZOSbzSHEQi fm9ms0caG3afG2fYzvG63Z9hbm7i4FKPf8hbufu8TrHptqoCRbboXGZLiFAk49BgEEWv sxulVtT9YB2CFYRjYT7uVdhgVsw/1PPB1MtGQYPe1NFOlShelc1y9pe1JKfevpDb4sz1 ckbA== X-Gm-Message-State: ALKqPwf1Ag+NTkRkozfxTHTt55Gmss+kTYl0GsGRi5qzd/X56AAslv0g PhrprTKpuau3Du64dZ0HLDuVdMrl3Yxxl10ub+0= X-Received: by 2002:a1f:2cc6:: with SMTP id s189-v6mr6032636vks.106.1527841116365; Fri, 01 Jun 2018 01:18:36 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a67:7a0a:0:0:0:0:0 with HTTP; Fri, 1 Jun 2018 01:18:35 -0700 (PDT) In-Reply-To: References: <1527154169-32380-1-git-send-email-michel.pollet@bp.renesas.com> <1527154169-32380-2-git-send-email-michel.pollet@bp.renesas.com> From: Geert Uytterhoeven Date: Fri, 1 Jun 2018 10:18:35 +0200 X-Google-Sender-Auth: ca-kOKv5lpTCWV3jvdojiV4ySOw Message-ID: Subject: Re: [PATCH v7 1/5] dt-bindings: Add the r9a06g032-sysctrl.h file To: M P Cc: Michel Pollet , Linux-Renesas , Simon Horman , Phil Edworthy , Michel Pollet , Michael Turquette , Stephen Boyd , Rob Herring , Mark Rutland , Geert Uytterhoeven , linux-clk , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Michel, On Thu, May 31, 2018 at 12:01 PM, M P wrote: > On Thu, 31 May 2018 at 10:32, Geert Uytterhoeven w= rote: >> On Thu, May 31, 2018 at 11:11 AM, M P wrote: >> > On Fri, 25 May 2018 at 11:31, Geert Uytterhoeven >> > wrote: >> >> On Thu, May 24, 2018 at 11:28 AM, Michel Pollet >> >> wrote: >> >> > This adds the constants necessary to use the renesas,r9a06g032-sysc= trl >> > node. >> >> >> > @@ -0,0 +1,187 @@ >> >> > +/* SPDX-License-Identifier: GPL-2.0 */ >> >> > +/* >> >> > + * R9A06G032 sysctrl IDs >> >> > + * >> >> > + * Copyright (C) 2018 Renesas Electronics Europe Limited >> >> > + * >> >> > + * Michel Pollet , >> >> > + * Derived from zx-reboot.c >> >> > + */ >> >> > + >> >> > +#ifndef __DT_BINDINGS_R9A06G032_SYSCTRL_H__ >> >> > +#define __DT_BINDINGS_R9A06G032_SYSCTRL_H__ >> >> > + >> >> > +#define R9A06G032_CLKOUT 0 >> >> > +#define R9A06G032_CLK_PLL_USB 1 >> >> > +#define R9A06G032_CLK_48 1 /* AKA CLK_PLL_US= B */ >> >> > +#define R9A06G032_CLKOUT_D10 2 >> >> > +#define R9A06G032_CLKOUT_D16 3 >> >> > +#define R9A06G032_MSEBIS_CLK 3 /* AKA CLKOUT_D16= */ >> >> > +#define R9A06G032_MSEBIM_CLK 3 /* AKA CLKOUT_D16= */ >> >> > +#define R9A06G032_CLKOUT_D160 4 >> >> > +#define R9A06G032_CLKOUT_D1OR2 5 >> >> > +#define R9A06G032_CLK_DDRPHY_PLLCLK 5 /* AKA CLKOUT_D1O= R2 */ >> > >> >> [...] >> > >> >> I have 3 comments: >> > >> >> 1. I had expected this list to match (both name- and order-wise) >> > Appendix >> >> C ("Clock Tree Structure") in the RZ/N1[DSL] User=E2=80=99s Man= ual: System >> >> Introduction, Multiplexing, Electrical and Mechanical Informati= on. >> >> That would make it easier to review. >> > >> > Well, that document was made a *long* time after the internal document= ation >> > we used to generate the clock lists. There are a few things we had to = do: >> > >> > * Renumber peripherals. We decided a long time ago that u-boot and lin= ux >> > would stick to zero based peripherals, and not one based numbers. It's= next >> > to impossible to keep mixing number based across software base, so we = use >> > UART0 while the hardware manual mentions UART1 -- It *is* documented >> > extensively with out SDK, and makes life using linux a lot easier. It'= s >> > across all our SDK, u-boot, webapps readmes, howtos etc. >> > >> > * Rename some peripherals. Plenty of peripherals names made little sen= se >> > and had zero consistency, in fact, many names were different depending= on >> > the place they were used! -- "flashnand"+"nand_flash"+"FNAND" etc, >> > "QUADSPI"+"QSPI" etc etc so we also re-normalized the names to match l= inux >> > conventions. >> > >> > * Other internal reasons I can't document here >> > >> > Also, the value here are made up anyway -- so I've decided to sort the= m to >> > make sure any clock that has a parent is numbered *after* the parent..= . >> >> Well, all of that combines makes it very hard for us to review the list. > > I understand -- the previous format was a lot more readable, here I had t= o > work to make the table as small as I could, and quite a few bits of reada= bility > were lost in the process. It's already a huge file. > > I'm not sure if that would help, but here is the link to the old table > format I used > https://github.com/renesas-rz/rzn1_linux/blob/rzn1-stable/drivers/clk/rzn= 1/rzn1-clkctrl-tables.h > > I had to throw that away to make up the new composite table that now cont= ains > what was in the device tree file before. However the names are the same. > > Perhaps I could change how I encode the register/bit pairs to use 8+8 bit= s to > make the hex constants more readable? Alternatively, you can use a macro to pack them, cfr. MOD_CLK_PACK() in renesas-cpg-mssr. >> >> 2. These definitions seems to be a mix of: >> >> 1. Internal core clocks, >> >> 2. Other core clocks, >> >> 3. Module clocks. >> > >> >> The internal clocks do not need to be referenced from DT, so I = would >> >> not make them part of the DT bindings. >> > >> > Why? I'm told that "Bindings aren't for linux" -- why can't I imagine >> > 'something' needing them? Why would I decide NOT to include them, >> > as they are there? I 'factored' a few of them to the same number when >> >> Just general safety w.r.t. unchangeable DT definitions: anything that is >> not listed here cannot be declared wrong later. > > Well, I need these #define *somewhere* as I use them in my driver. So wha= t > do you want me to do? > + Remove the header, move the constants into the driver? > + Use hard coded numbers in the DT and remove the header entirely? > + Duplicate the header, keep the full one with the driver, and only list > the CA7+UART0 one in the dt-binding and duplicate the ones I need as > I go along? None of these. You can just move the #defines that will never be needed from DT into the driver source file. Cfr. "Internal Core Clocks" in drivers/clk/renesas/r8a7795-cpg-mssr.c. >> > applicable. >> >> You're 100% sure they're the same? > > Yes, the script logic hasn't changed in 2 years, and we've been using tha= t > hierarchy extensively since. > Basically the logic is that if a clock doesn't have a gate and isn't a di= visor > of some sort, it's factored with it's parent clock... it used to be > done with a DT > alias of the same name. OK. >> > This is all done automatically BTW -- a script takes the original cloc= king >> > spreadsheet, and converts it into a table, correcting 'human input' as= it >> > goes along. >> >> So the internal spreadsheet doesn't match the public documentation neith= er? > > Nope, as usual, people who wrote the documentation went their own way at > some point, and didn't backport any changes they made. Well, I guess we'll have to live with that... Gr{oetje,eeting}s, Geert --=20 Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k= .org In personal conversations with technical people, I call myself a hacker. Bu= t when I'm talking to journalists I just say "programmer" or something like t= hat. -- Linus Torvalds