11:02 #periperi: < geertu> Welcome to the Core Group Chat Session! 11:02 #periperi: < uli___> good morning 11:02 #periperi: < horms> Thanks, nice to be back 11:02 #periperi: < geertu> Today's agenda: 11:02 -!- Irssi: Pasting 5 lines to #periperi. Press Ctrl-K if you wish to do this or Ctrl-C to cancel. 11:02 #periperi: < geertu> 1. Upcoming Gen3 development for the Core group, 11:02 #periperi: < geertu> 2. Topic/branch/merge organization of Gen3 work, 11:02 #periperi: < geertu> 3. DMA topology, 11:02 #periperi: < geertu> 4. CPG and boot mode via syscon (or not), 11:02 #periperi: < geertu> 5. Status check for tasks from last meeting - what is remaining? 11:03 #periperi: < morimoto> dammsan: which port is bock-w ? 11:04 #periperi: < dammsan> morimoto: 8004 11:04 #periperi: < morimoto> # this is not core topic, but now we have 2 board, and I will send it to Europe engineer 11:05 #periperi: < morimoto> # but because of papwer work, it will be next week 11:05 #periperi: < morimoto> dammsan: thanks 11:06 #periperi: < horms> morimoto: i use bockw sometimes, so lets co-ordinate here if you want to use the board 11:06 #periperi: < horms> uli___: 11:06 #periperi: < horms> uli___ also uses it, but usually while we are ase 11:06 #periperi: < horms> uli___ also uses it, but usually while we are ase 11:06 #periperi: < horms> uli___ also uses it, but usually while we are asleep 11:06 #periperi: < uli___> indeed 11:06 #periperi: < horms> (typing disaster!) 11:06 #periperi: < geertu> Topic 1. Upcoming Gen3 development for the Core group, 11:07 #periperi: < dammsan> geertu: right 11:07 #periperi: < dammsan> i intend to update the cpg series and the integration series 11:08 #periperi: < dammsan> and also work on irqc 11:08 #periperi: < dammsan> but i hope to keep the integration series small until we can stabilize the cpg and the pfc 11:08 #periperi: < dammsan> so focus must be on stabilizing pfc and cpg 11:09 #periperi: < geertu> Integration is the hardest w.r.t. merge conflicts (but that's actually topic 2) 11:09 #periperi: < horms> I plan to put integration series's into topic branches as they appear; only addrssing apply and build time dependencies 11:09 #periperi: < horms> (sorry, lets talk about that in topic2) 11:10 #periperi: < dammsan> (yeah, sorry, so what shall we talk about for topic1?) 11:10 #periperi: < geertu> Stabilize CPG and PFC 11:10 #periperi: < dammsan> ok =) 11:10 #periperi: < geertu> It seems dropping clock-output-names was not such a good idea... 11:10 #periperi: < dammsan> i did it because it seemed that mike turquette wanted us to do so 11:10 #periperi: < dammsan> but perhaps i misunderstood 11:11 #periperi: < geertu> No respnse from Mike yet (although he's alive, sent pull request, and replied to me in other personal email) 11:11 #periperi: < horms> I saw him last week; he was also alive then! 11:11 #periperi: < dammsan> i think we can work around things by registering names using in-driver generated names 11:11 #periperi: < dammsan> not exposing names in DT seems like a fine idea to me 11:12 #periperi: < geertu> Nope, all fixed-factor-clocks rely on clock-output-names in the parent clocks 11:12 #periperi: < dammsan> geertu: sure 11:12 #periperi: < dammsan> but can't we work around that somehow? 11:12 #periperi: < dammsan> by providing clock-output-name equivalent but from the driver? 11:12 #periperi: < geertu> the scif driver "works" (for scif2) as it assumes 115200 baud and doesn't program registers 11:13 #periperi: < dammsan> sure, i think that is the state of the entire CPG series 11:13 #periperi: < geertu> clk_of_get_parent_clock_name() looks in DT, it doesn't follow in-kernel clock topology 11:13 #periperi: < dammsan> maybe it should? 11:13 #periperi: < geertu> That's one option. 11:14 #periperi: < dammsan> so say it would work, then isn't omitting that parameter from DT a good idea? 11:14 #periperi: < geertu> I think "no clock-output-names" is meant for clocks with a single output, where the node name can be used instead 11:14 #periperi: < dammsan> ok i see 11:14 #periperi: < dammsan> so we could have one node per clock instead 11:14 #periperi: < geertu> It may be a good idea if the driver knows (like cpg) 11:14 #periperi: < dammsan> or perhaps we should extend the core to support index? 11:15 #periperi: < geertu> For mstp the driver doesn't know, so it comes up with mstp3.10 11:15 #periperi: < geertu> I'd like to wait for the clock people's response 11:15 #periperi: < dammsan> the cpg driver could do the same 11:15 #periperi: < dammsan> since we have the strings there anyway 11:15 #periperi: < geertu> Clocks work again just by re-adding clock-output-names to the dtsi only (no driver update needed) 11:16 #periperi: < dammsan> waiting for maintainer feedback is of course a good plan 11:16 #periperi: < dammsan> but is there something we could do in the meantime? 11:16 #periperi: < dammsan> we could re-add clock-output-names like you say 11:16 #periperi: < dammsan> or just fix the code in the cpg driver 11:16 #periperi: < geertu> It's not a problem in the cpg driver 11:16 #periperi: < geertu> and it can't be fixed there 11:17 #periperi: < geertu> only in core clock code 11:17 #periperi: < dammsan> oh, but this only triggers in the case of CPG and not in MSTP, right? 11:17 #periperi: < geertu> It doesn't trigger in mstp, because the only users of mstp clocks are devices, where clk_get() will do the right thing. 11:18 #periperi: < geertu> If you register e.g. a fixed-factor-clock as a child of an mstp clock, it will fail, too 11:18 #periperi: < dammsan> ok then consider me convinced =) 11:18 #periperi: < horms> +1 11:19 #periperi: < geertu> Basically it fails for every clock in DT where the parent has multiple clock outputs 11:19 #periperi: < dammsan> so we should wait for feedback? 11:20 #periperi: < dammsan> or does anyone feel like cooking up some core CCF code? =) 11:20 #periperi: < dammsan> maybe i simply misunderstood mike turquette 11:20 #periperi: < geertu> Not me, because I think the "no clock-output-names rule" is flawed 11:22 #periperi: < geertu> Any other upcoming gen3 work (irqc is already in the task list)? 11:22 #periperi: < shimoda> we should prepare thermal driver in Sep. 11:22 #periperi: < dammsan> does it make sense to pick up the GPIO stuff? 11:23 #periperi: < geertu> I have it included in today's renesas-drivers 11:23 #periperi: < dammsan> i think i prefer to keep the integration patch set small (and that's topic2 sorry) 11:23 #periperi: < shimoda> gen3 thermal seems not compatible with gen2 :) 11:23 #periperi: < geertu> Indeed, but thermal is I/O, not Core? 11:25 #periperi: < dammsan> geertu: how shall we split the core work then? 11:25 #periperi: < horms> possibly but the next I/O group meeting is not for 2 weeks, there won't be much September left then 11:25 #periperi: < horms> perhaps it is a topic for email? 11:25 #periperi: < shimoda> oops, my sheet is written as core 11:25 #periperi: < geertu> gpio lacks power-domains properties, but for now that works due to an obsolete CONFIG_ARCH_SHMOBILE_MULTI check in drivers/sh/pm_runtime.c 11:26 #periperi: < geertu> dammsan: what do you mean with "how shall we split the core work then?" 11:27 #periperi: < shimoda> horms: I will send thermal topic to periperi ml 11:27 #periperi: < geertu> I have PFC and CPG in renesas-drivers#topic/... 11:27 #periperi: < dammsan> i can deal with igeertu: i meant how to handle development of PFC and CPG 11:28 #periperi: < dammsan> morimoto: are you doing ok with PFC? 11:28 #periperi: < dammsan> do you need any help? 11:28 #periperi: < geertu> Simon has integration in renesas#topic/... 11:28 #periperi: < morimoto> I think I can send next version of PFC tommorrow 11:28 #periperi: < morimoto> I need to check PFC macro on BockW 11:28 #periperi: < dammsan> morimoto: why don't you reorder things to add your cleanup as incremental patch? 11:29 #periperi: < dammsan> or does the code become better if you make the cleanup first? 11:29 #periperi: < geertu> TOpic 2. Topic/branch/merge organization of Gen3 work, 11:29 #periperi: < dammsan> i guess i don't understand the need for the dependency 11:29 #periperi: < dammsan> geertu: can we discuss CPG development later? 11:29 #periperi: < geertu> The cleanup changes the name of a macro 11:30 #periperi: < geertu> sure 11:30 #periperi: < geertu> (in topic 4?) 11:30 #periperi: < dammsan> sure, sorry!! 11:31 #periperi: < dammsan> it is of course up to morimoto-san to decide about his cleanups 11:31 #periperi: < geertu> Apart from the macro cleanup, I think PFC should switch to an incremental model, at least for inclusion in renesas-drivers 11:31 #periperi: < geertu> same for integration 11:32 #periperi: < horms> geertu: can you clarify what you mean by incremental? 11:32 #periperi: < dammsan> geertu: from when? 11:32 #periperi: < geertu> What's ultimately submitted would be an interactive rebase result of the initial patches and the incrementals 11:32 #periperi: < dammsan> that means you consider it stable enough soon? 11:32 #periperi: < geertu> It doesn't make sense to keep on resubmitting (almost) the same series to the list, with a few pingroup entries (pfc) or device nodes (dtsi) added 11:33 #periperi: < horms> true 11:33 #periperi: < geertu> No one's gonna take patches before rc1 is released 11:33 #periperi: < horms> from my pov a small(ish) base patch is a good start that can be reviewed 11:33 #periperi: < geertu> while we want to keep developing, not rebasing and resubmitting 11:33 #periperi: < horms> as can any incremental patches that add needed support 11:34 #periperi: < horms> that way we review what we are using (which is probably smaller than everything) 11:34 #periperi: < horms> and by implication deffer reviewing the rest 11:34 #periperi: < geertu> So I'm happy seeing e.g. topic/gen3-cpg-v5 11:34 #periperi: < horms> in my opinion that makes sense particularly at this busy time 11:35 #periperi: < dammsan> i'm confused 11:35 #periperi: < dammsan> =) 11:35 #periperi: < dammsan> so what would you prefer? can you repeat please? 11:35 #periperi: < geertu> Of course we must make sure to have the base (refferred to by device nodes) covered, which is interrupts, clocks, and dmas 11:36 #periperi: < dammsan> geertu: but the base is not yet stable right? 11:36 #periperi: < geertu> It more or less is. 11:36 #periperi: < geertu> Except for the pesky clock-output-names 11:36 #periperi: < dammsan> yes, and that is used by every node =) 11:36 #periperi: < geertu> if we have to re-add them to the mstp nodes, that means it affects many patches 11:37 #periperi: < dammsan> right 11:37 #periperi: < dammsan> PFC seems much close at this point 11:37 #periperi: < geertu> indeed 11:38 #periperi: < geertu> For supporting other devices, there are usually two parts: 11:38 #periperi: < geertu> a. driver update (can be just a new DT compatible value added to the bindings) 11:38 #periperi: < geertu> b. integration (dtsi and defconfig) 11:38 #periperi: < geertu> a. is fairly independent, and I can take that in renesas-drivers#topic/... 11:39 #periperi: < geertu> b. is for Simon's renesas#topic/... 11:39 #periperi: < dammsan> b probably needs to be ordered right? 11:39 #periperi: < geertu> but usually each new patch depends contextually on the previous one 11:39 #periperi: < horms> yes, that seems likely 11:39 #periperi: < geertu> which means it must be "correct" when Simon applies it. 11:40 #periperi: < geertu> While a. I can easily update/replace 11:41 #periperi: < dammsan> we need to expose both a and b to a larger audience IMO 11:41 #periperi: < geertu> Right now the b.'s are stuck on clock-output-names 11:41 #periperi: < dammsan> yes 11:41 #periperi: < geertu> so all of them may need rework 11:41 #periperi: < dammsan> i agree with that observation 11:42 #periperi: < dammsan> but upstreaming of "a" can happen independently anyway 11:42 #periperi: < geertu> The a.'s can follow the standard patch submission rules to maintainers when deemed stable 11:42 #periperi: < geertu> yep 11:42 #periperi: < dammsan> so where are we with the core driver bits ("a")? 11:42 #periperi: < geertu> The b.'s have to go in through Simon's tree, right 11:43 #periperi: < horms> that is their upstream path 11:43 #periperi: < horms> for topic branches things are less fixed imho 11:43 #periperi: < geertu> scif just needs a vinding update 11:43 #periperi: < geertu> s/vinding/binding/ 11:43 #periperi: < geertu> so that can go upstream after rc1 11:43 #periperi: < dammsan> geertu: the silliness of SCIF2 is that included in that summary? =) 11:44 #periperi: < geertu> same for gpio 11:44 #periperi: < shimoda> dammsan: some timers and dmaengnie? 11:44 #periperi: < dammsan> shimoda: sure 11:44 #periperi: < horms> is scif2 secret; if so should it be omitted from mainline? 11:44 #periperi: < dammsan> secred irda, haha, what is this, 1984? 11:44 #periperi: < geertu> it's the console. So we have a secret black box the user is interacting with :-) 11:45 #periperi: < horms> figures 11:45 #periperi: < dammsan> but seriously, how do we handle DT in case of SCIF2? 11:45 #periperi: < dammsan> is that a I/O group problem perhaps? =) 11:45 #periperi: < geertu> We have the missing interrupt from an older datasheet, and the driver needs it 11:46 #periperi: < geertu> DT is integration, not I/O ;-) 11:46 #periperi: < geertu> so byebye secrecy 11:46 #periperi: < horms> sounds awkward 11:46 #periperi: < dammsan> hm, i thought every per-driver DT binding doc was part of driver development 11:47 #periperi: < dammsan> i was also hoping geert to make sure the r8a7795 SCIF DT binding doc went upstream 11:47 #periperi: < dammsan> together with the DMA bits 11:47 #periperi: < geertu> sure, after rc1 11:47 #periperi: < dammsan> sure, no stress 11:47 #periperi: < geertu> GregKH may already take scif-misc-v3, but only after rc1 11:48 #periperi: < dammsan> ok 11:48 #periperi: < horms> so this secreat irq, would be described in dt 11:48 #periperi: < geertu> What special DT binding is there for SCIF2? 11:48 #periperi: < geertu> The driver needs an IRQ 11:48 #periperi: < dammsan> so we don't have any particular devices to focus on now except the CPG and PFC? 11:48 #periperi: < horms> was that circulated publicly before we found out it was secret? 11:48 #periperi: < horms> (we can punt this topic if you like) 11:48 #periperi: < dammsan> geertu: i meant that we may have to special case it 11:49 #periperi: < dammsan> in the DT binding doc 11:49 #periperi: < dammsan> if it is special somehow 11:49 #periperi: < dammsan> (reminds me that i have to resend that CMT series) 11:49 #periperi: < geertu> v0.50 is from end of July, right? 11:49 #periperi: < horms> yes, iirc 11:49 #periperi: < horms> 21st July iirc 11:50 #periperi: < geertu> First public scif2 in r8a7795.dtsi is from Aug 6 11:50 #periperi: < dammsan> isn't it easy just to omit SCIF2? 11:50 #periperi: < geertu> So Morimoto-san should have known ;-) 11:50 #periperi: < dammsan> we can use HSCIF instead? 11:50 #periperi: < geertu> It's the console 11:50 #periperi: < dammsan> sometimes we can use other SCIF block on same pins 11:51 #periperi: < geertu> No, serial-0 only does scif2, I think 11:51 #periperi: < dammsan> wtf 11:51 #periperi: < dammsan> so shall we aim for DEBUG1 then? =) 11:52 #periperi: < dammsan> but seriously, what a mess 11:52 #periperi: < geertu> we can bitbang SDHI2 WP/CD on those lines 11:52 #periperi: < geertu> or GPIO ;-) 11:52 #periperi: < geertu> U-boot uses scif2 11:52 #periperi: < dammsan> hehe, must be better 11:52 #periperi: < dammsan> but u-boot is not interrupt driven =) 11:53 #periperi: < geertu> Obviously the interrupt is working 11:53 #periperi: < horms> if a patch can already be found by google then it ain't no secret anymore 11:53 #periperi: < dammsan> maybe we should just ask for update for the SCIF2 interrupt 11:53 #periperi: < dammsan> update for the deocumentation 11:53 #periperi: < dammsan> shimoda: morimoto: can we request update? 11:53 #periperi: < dammsan> this is silly 11:54 #periperi: < geertu> Are we actually using scif2, or are we using irda? 11:54 #periperi: < geertu> The MSTP clock indicates irda 11:54 #periperi: < geertu> and irda usually is scif-compatible 11:54 #periperi: < dammsan> we have non-SCIF compatible IRDA as well 11:54 #periperi: < shimoda> dammsan: sure, I or Morimoto-san request it 11:55 #periperi: < dammsan> shimoda: thanks please check about SCIF2 interrupt 11:55 #periperi: < dammsan> so it seems that the integration series is blocked on both CPG and SCIF2 11:56 #periperi: < geertu> hurray 11:56 #periperi: < geertu> Hence incrementals for now 11:56 #periperi: < dammsan> at least we have hardware now 11:56 #periperi: < geertu> BTW, who's "Europe engineer"? 11:56 #periperi: < dammsan> geertu: i think i should do one major resend in v9 11:57 #periperi: < dammsan> to fix up the things you requested 11:57 #periperi: < horms> we just meed sw to complete the set 11:57 #periperi: < dammsan> or do you prefer to get individual patches? 11:57 #periperi: < dammsan> i mean incremental ones? 11:58 #periperi: < geertu> v9 is integration, so that's up to Simon ;-) 11:58 #periperi: < dammsan> ok, about CPG you prefer incremental then? 11:58 #periperi: < horms> i prefer a fresh patchset if existing patches need updating 11:58 #periperi: < dammsan> ok, fresh patchset it will be then 11:58 #periperi: < horms> incremental is fine for new stuff 11:59 #periperi: < horms> thanks 11:59 #periperi: < geertu> For CPG, you would only update 2/5 clk: shmobile: Add Renesas R-Car Gen3 CPG support? 11:59 #periperi: < geertu> I don't mind if you just send that one 11:59 #periperi: < dammsan> sure, but i think i also missed your comment about 4/5 or something 11:59 #periperi: < dammsan> so > 1 patch -> resend series 12:00 #periperi: < geertu> yep 12:00 #periperi: < geertu> sounds fine 12:00 #periperi: < geertu> Next topic? 12:00 #periperi: < dammsan> if <=1 patch - resend individual patch 12:01 #periperi: < dammsan> sure 12:01 #periperi: < geertu> Topic 3. DMA topology, 12:02 #periperi: < geertu> we have dummy dma nodes now, so "dmas" can be added (albeit untested) 12:02 -!- Irssi: Pasting 8 lines to #periperi. Press Ctrl-K if you wish to do this or Ctrl-C to cancel. 12:02 #periperi: < geertu> R-Car Gen2 had two DMA controllers, which were equivalent. 12:02 #periperi: < geertu> As we dropped the shdma dma-multiplexer when implementing rcar-dmac, 12:02 #periperi: < geertu> DMA slaves were tied to a single DMA controller in .dtsi only. 12:02 #periperi: < geertu> On R-Car Gen3 the three DMA controllers are not equivalent: some DMA slaves 12:02 #periperi: < geertu> can be tied to channels 0-15 (the first instance) only, others can be tied to 12:02 #periperi: < geertu> channels 16-47 (i.e. the second or third instance) only. 12:02 #periperi: < geertu> For the latter, I used the second instance in .dtsi. 12:03 #periperi: < geertu> Do we have a plan to use the third dmac (on Gen3), or the second dmac (on Gen2) 12:03 #periperi: < geertu> ? 12:03 #periperi: < geertu> Is Laurent here? 12:03 #periperi: < dammsan> i have no special policy setting plan, but i'd like to describe the hardware via DT 12:04 #periperi: < geertu> Which means "dmas" should link to all relevant dmac nodes 12:04 #periperi: < geertu> and not just the first one 12:04 #periperi: < dammsan> yes, isn't that what we said during the montpellier peripericon? 12:04 #periperi: < dammsan> hurray for another unstable DTS bit! =) 12:05 #periperi: < geertu> In Montpellier, we said we'd start with links to one dmac, and see how to resolve the rest later 12:05 #periperi: < dammsan> now seems like a great time then 12:06 #periperi: < dammsan> adding more links to DT without driver support does not hurt, does it? 12:06 #periperi: < geertu> How? 12:06 #periperi: < geertu> Now we have 12:06 #periperi: < geertu> dmas = <&dmac1 0x31>, <&dmac1 0x30>; 12:06 #periperi: < geertu> dma-names = "tx", "rx"; 12:07 #periperi: < geertu> We can't easily extend that 12:07 #periperi: < geertu> Would this actually work? 12:07 #periperi: < dammsan> we can not have multiple identical dma-names? 12:07 #periperi: < geertu> dmas = <&dmac1 0x31>, <&dmac1 0x30>, <&dmac2 0x31>, <&dmac2 0x30>; 12:07 #periperi: < geertu> dma-names = "tx", "rx", "tx", "rx"; 12:07 #periperi: < geertu> I'm afraid not 12:07 #periperi: < dammsan> that's how i pictured it 12:08 #periperi: < geertu> It's also related to DMA load balancing 12:08 #periperi: < geertu> And the third dmac may be secret on Gen3 ;-) 12:08 #periperi: < dammsan> we could add some "dma-peer" property to the dma controller to point to the peers 12:08 #periperi: < geertu> Yes, that was one of the options we discussed in Montpellier 12:09 #periperi: < geertu> Perhaps the only sane one 12:09 #periperi: < geertu> Let's hope there are no "evil" DMA slaves that can be tied to the first and second dmac on gen3 12:09 #periperi: < geertu> while all others tie to second and third 12:10 #periperi: < geertu> or the the first exclusively 12:10 #periperi: < geertu> Anyway, without Laurent I think we should postpone this? 12:10 #periperi: < dammsan> the identical-dma-name proposal would support anything, right? 12:10 #periperi: < geertu> Yes 12:11 #periperi: < geertu> Probably needs updates the core DMA framework 12:11 #periperi: < dammsan> probably yes 12:12 #periperi: < geertu> Topic 4. CPG and boot mode via syscon (or not), 12:12 #periperi: < geertu> Laurent wanted to have a generic (also for non-shmobile) framework to obtain a boot mode value 12:13 #periperi: < geertu> instead 12:14 #periperi: < dammsan> that could perhaps be in gen4 if we have done that upfront 12:14 #periperi: < geertu> yeah 12:14 #periperi: < dammsan> i thought your syscon idea was great 12:15 #periperi: < geertu> The major disadvantage of the syscon idea is that we don't know yet how else we'll use the RST module 12:15 #periperi: < dammsan> but this may slightly overlap with the ES revision bits 12:15 #periperi: < geertu> w.r.t. CPU core management 12:15 #periperi: < dammsan> right 12:15 #periperi: < geertu> THE es bits in a different register on Gen3? 12:15 #periperi: < dammsan> i'm also concerned about RST of I/O devices 12:16 #periperi: < geertu> That's in the MSTP module? 12:16 #periperi: < dammsan> maybe so 12:16 #periperi: < geertu> i.e. more registers for each MSTP node 12:16 #periperi: < dammsan> but how do we perform actual reset? 12:17 #periperi: < dammsan> it is more of a question about how to perform reset instead of DT hardware description 12:17 #periperi: < dammsan> and i think that is similar to the boot mode discussion 12:17 #periperi: < dammsan> we need to figure out how to let the driver get the information 12:17 #periperi: < dammsan> and separate from that 12:17 #periperi: < dammsan> also need to figure out how to describe the hardware in DT 12:17 #periperi: < geertu> You mean resetting individual I/O devices, not the whole system? 12:17 #periperi: < dammsan> yes 12:18 #periperi: < geertu> What's the use case for that? 12:18 #periperi: < dammsan> similar to power domain, but without power savings 12:18 #periperi: < dammsan> it may be nice to get a clean start before probe() =) 12:19 #periperi: < dammsan> no special use case apart from that 12:19 #periperi: < geertu> So each device would have a power-domains property linking to the (generalized) MSTPx.y, not only for clock, but also for reset handling? 12:19 #periperi: < dammsan> at least for boot mode we have a need =) 12:19 #periperi: < dammsan> reset-domains 12:20 #periperi: < geertu> Actually we can have that in power-domains 12:20 #periperi: < dammsan> there is certainly overlap 12:20 #periperi: < geertu> Actually each MSTP clock has a corresponding module reset bit 12:20 #periperi: < dammsan> maybe the MSTP driver an hook up a notifier if there are reset registers present 12:21 #periperi: < geertu> perhaps 12:21 #periperi: < geertu> Sounds like for Gen-4 12:21 #periperi: < dammsan> and do stuff on BIND and UNBIND or similar 12:21 #periperi: < dammsan> sure 12:21 #periperi: < dammsan> but not _that_ difficult 12:21 #periperi: < dammsan> so about boot mode 12:21 #periperi: < dammsan> what do we do? 12:22 #periperi: < geertu> We can do the syscon way now. 12:22 #periperi: < geertu> Patches are available, need a small update for Gen3 12:22 #periperi: < geertu> It's easy to decide, in the absence of Laurent 12:22 #periperi: < geertu> ;-) 12:22 #periperi: < dammsan> so with the ES version we decided to go with DT compat string suffix 12:22 #periperi: < dammsan> to handle workarounds for special ES versions 12:23 #periperi: < dammsan> we never got around to runtime modify the DT bits based on ES version though 12:23 #periperi: < geertu> We haven't implemented changing the DT compat string based on probed ES version yet 12:23 #periperi: < dammsan> bingo 12:23 #periperi: < dammsan> =) 12:23 #periperi: < geertu> Do we have a need for ES now? 12:24 #periperi: < dammsan> so if we do that, then can we just deal with the boot mode there instead? 12:24 #periperi: < dammsan> but using syscon may be better 12:24 #periperi: < dammsan> no need for ES handling right now, but it may come up 12:25 #periperi: < dammsan> i'm totally fine with syscon, especially if we use SoC specific compat strings 12:25 #periperi: < geertu> "boot mode there" means purely in C, no DT update needed? 12:25 #periperi: < dammsan> yeah, detecting boot mode from C and stashing it in DT while modifying for ES anyway 12:25 #periperi: < geertu> I can update my syscon patch for Gen3, and resend? 12:26 #periperi: < dammsan> sounds good! 12:26 #periperi: < dammsan> so what is the risk for going the syscon route? 12:26 #periperi: < dammsan> apart from ticking off laurent =) 12:26 #periperi: < dammsan> you mentioned CPU reset 12:27 #periperi: < geertu> + rst: reset-controller@e616000 { 12:27 #periperi: < geertu> + compatible = "renesas,rst-r8a7790", "syscon"; 12:27 #periperi: < geertu> + reg = <0 0xe6160000 0 0x0100>; 12:27 #periperi: < geertu> + }; 12:27 #periperi: < dammsan> looking good!! 12:27 #periperi: < geertu> Does that pose a risk? 12:27 #periperi: < geertu> for future RST use? 12:28 #periperi: < dammsan> not what i can tell 12:28 #periperi: < geertu> cpg node needs 12:28 #periperi: < geertu> renesas,modemr = <&rst 0x60>; 12:29 #periperi: < geertu> Will cook up an incremental patch 12:29 #periperi: < dammsan> seems good to me 12:29 #periperi: < dammsan> thanks! 12:30 #periperi: < geertu> One minute left for 12:30 #periperi: < geertu> Topic 5. Status check for tasks from last meeting - what is remaining? 12:30 #periperi: < dammsan> thanks for uli___ and horms help with GPIO 12:30 #periperi: < horms> i did little 12:30 #periperi: < geertu> Add full (H)SCIF nodes to DT is partially done (need to re-add HSCIF pfc bits to make it work again) 12:30 #periperi: < horms> but its nice to see it moving forwards 12:30 #periperi: < geertu> Add gpio nodes to DT is done, modulo power-domains 12:31 #periperi: < uli___> should i resend that with clock-output-names restored now? :) 12:31 #periperi: < geertu> pfc Add r8a7795 support is wip 12:31 #periperi: < geertu> uli___: please wait, unless you want to game mailing list statistics 12:31 #periperi: < geertu> No changes for other tasks? 12:32 #periperi: < geertu> https://osdr.renesas.com/projects/linux-kernel-development/wiki/Core-todo-list 12:33 #periperi: < dammsan> not from me 12:34 #periperi: < shimoda> no update from me 12:36 #periperi: < geertu> OK, thanks for joining! 12:36 #periperi: < morimoto> geertu: my "Europe engineer" was 1st attack : for Laurent, Geert. 2nd attack Ulirch Wolfram 12:36 #periperi: < morimoto> We can send one board to Simon, but there is no paper work for him :) 12:37 #periperi: < dammsan> geertu: about CPG, i wonder what the next step really is 12:37 #periperi: < geertu> No paperwork means no fun, less earned value ;-) 12:37 #periperi: < geertu> dammsan: submit to clock maintainers? 12:38 #periperi: < morimoto> No paperwork No life :P 12:38 #periperi: < geertu> morimoto So Simon can just take a board on a plane? 12:38 #periperi: < dammsan> geertu: about the clks array handling, i think a static array is just fine 12:38 #periperi: < dammsan> in my mind apart from removing a spinlock 12:39 #periperi: < dammsan> it is just about figuring out how to deal with(out) clock-output-names 12:39 #periperi: < geertu> yeah, initially I though it was an array of "struct clk", not pointers 12:39 #periperi: < geertu> s/though/thought/ 12:39 #periperi: < geertu> Wasting a few pointers isn't that important. 12:39 #periperi: < dammsan> we will expand NR if needed on new SoCs ight? 12:39 #periperi: < geertu> I also thought about dropping clock-indices, like Laurent suggested. 12:39 #periperi: < dammsan> and may use a subset of the indices 12:40 #periperi: < geertu> But the reason for them is future expansion, right? 12:40 #periperi: < dammsan> i like having them there 12:40 #periperi: < dammsan> yes 12:40 #periperi: < geertu> Time for lunch here... 12:40 #periperi: < geertu> Bye! 12:40 #periperi: < dammsan> and i also like being able to search in DT files to figure out how things are connected 12:40 #periperi: < dammsan> ok bye bye 12:41 #periperi: < morimoto> geertu: Simon can get board from delivery car 12:41 #periperi: < shimoda> bye! 12:41 #periperi: < morimoto> bye 12:41 -!- morimoto [~user@relprex2.renesas.com] has left #periperi ["ERC Version 5.3 (IRC client for Emacs)"] 12:41 #periperi: < uli___> bye 12:54 #periperi: < horms> sorry to miss the last few minutes of the meeting: i had a minor baby crisis to attend to 13:46 -!- horms [~horms@121-80-213-238f1.hyg1.eonet.ne.jp] has quit [Quit: Leaving] 13:58 #periperi: < pinchartl> geertu: what bothers me with syscon for boot mode handling is that the register isn't part of the syscon IP core 13:59 #periperi: * pinchartl is back in Finland now 14:17 #periperi: < geertu> Welcome back (sort of)! 14:22 #periperi: < pinchartl> sorry for missing today's meeting 14:36 #periperi: < geertu> pinchartl: It is according to Figure 11.1 Block Diagram of RST (Gen3) 14:36 #periperi: < geertu> And 11.1.1 11.1.1 Features 14:36 #periperi: < geertu> The following functions are implemented by RST. 14:36 #periperi: < geertu> Latching of the levels on mode pins when PRESET# is negated 14:36 #periperi: < geertu> Mode monitoring register 14:40 #periperi: * geertu mutex_lock(salvator-x) 14:42 -!- shimoda [~shimoda@relprex3.renesas.com] has quit [Quit: WeeChat 0.4.2] 14:49 #periperi: < pinchartl> geertu: is RST a "syscon" ? 14:49 #periperi: < pinchartl> we have a SYSC IP core 14:49 #periperi: < pinchartl> that one is documented as system controller :-) 14:50 #periperi: < pinchartl> although it looks like a power controller 14:51 #periperi: < pinchartl> syscon is really a mean to stuff all kind of miscellaneous stuff in a catch-all API when standardizing an API would be difficult due to very system-specific features 14:51 #periperi: < geertu> Documentation/devicetree/bindings/mfd/syscon.txt 14:51 -!- Irssi: Pasting 8 lines to #periperi. Press Ctrl-K if you wish to do this or Ctrl-C to cancel. 14:51 #periperi: < geertu> System controller node represents a register region containing a set 14:51 #periperi: < geertu> of miscellaneous registers. The registers are not cohesive enough to 14:51 #periperi: < geertu> represent as any specific type of device. The typical use-case is for 14:51 #periperi: < geertu> some other node's driver, or platform-specific code, to acquire a 14:51 #periperi: < geertu> reference to the syscon node (e.g. by phandle, node path, or search 14:51 #periperi: < geertu> using a specific compatible value), interrogate the node (or associated 14:51 #periperi: < geertu> OS driver) to determine the location of the registers, and access the 14:51 #periperi: < geertu> registers directly. 14:51 #periperi: < pinchartl> the boot mode pins, on the other hand, seems like a quite well-defined function to me 14:51 #periperi: < pinchartl> yes, exactly 14:51 #periperi: < geertu> The watchdog will need alink to one of the RST registers, too 14:52 #periperi: < pinchartl> syscon is really a hack to access registers in unrelated IP cores when creating an API isn't worth it 14:53 #periperi: < pinchartl> by the way 14:53 #periperi: < pinchartl> the syscon driver is registered as a postcore_initcall() 14:54 #periperi: < pinchartl> and the CPG driver uses CLK_OF_DECLARE() 14:54 #periperi: < pinchartl> have you checked the ordering ? 14:55 #periperi: < geertu> The syscon driver is not instantiated 14:56 #periperi: < pinchartl> on ARM64, start_kernel() -> time_init() -> of_clk_init() -> CLK_OF_DECLARE callbacks 14:56 #periperi: < geertu> See syscon_regmap_lookup_by_phandle 14:57 #periperi: < pinchartl> indeed 14:57 #periperi: < geertu> And the node will still bind to a future renesas,rst-r8a7795 driver 14:58 #periperi: < pinchartl> there should be a big red flashing HACK sign in front of that code :-)