On 17/01/2024 04:24, Jingbao Qiu wrote: > On Wed, Jan 17, 2024 at 12:58 AM Krzysztof Kozlowski > <krzysztof.kozlowski@xxxxxxxxxx> wrote: >> >> On 16/01/2024 17:29, Jingbao Qiu wrote: >>> On Wed, Jan 17, 2024 at 12:03 AM Krzysztof Kozlowski >>> <krzysztof.kozlowski@xxxxxxxxxx> wrote: >>>> >>>> On 16/01/2024 16:51, Jingbao Qiu wrote: >>>>>>> CV1800 is a RISCV based SOC that includes an RTC module. The RTC >>>>>>> module has an OSC oscillator >>>>>> >>>>>> >>>>>> I am not going to read pages of description. Please write concise replies. >>>>> >>>>> Thanks, What I mean is that this hardware includes two functions, RTC >>>>> and POR. How should I describe their relationship? >>>> >>>> Your POR does not need to take any resources, so no need to describe any >>>> relationship. >>>> >>>> ... >>>> >>>>>>> Your suggestion is, firstly, the por submodule does not have any >>>>>>> resources, so it should be deleted. >>>>>> >>>>>> So where did you delete it? I still see it in this patch. >>>>> >>>>> Should I completely delete him? How can a por driver obtain device information? >>>> >>>> Delete completely. >>>> >>>> Device information? What is this? We already agreed you don't have any >>>> resources for POR. >>>> >>>> .... >>>> >>>>>> Device is only one thing, not two. >>>>>> >>>>>>> reg = <0x5025000 0x2000>; >>>>>>> interrupts = <17 IRQ_TYPE_LEVEL_HIGH>; >>>>>>> clocks = <&osc>; >>>>>>> }; >>>>>>> However, in reality, the POR submodule does not use IRQ and CLK. >>>>>>> Please do not hesitate to teach. Thanks. >>>>>> >>>>>> I expect one device node. How many drivers you have does not matter: you >>>>>> can instantiate 100 Linux devices in 100 Linux device drivers. >>>>> >>>>> I understand what you mean. A device node corresponds to multiple drivers. >>>>> Should I completely delete the POR device tree node and add it when >>>>> submitting the POR driver? >>>> >>>> ? I wrote it in previous messages and twice in this thread. Completely >>>> delete. You do not add it back! Because if you ever intended to add it >>>> back, it should be added since beginning. I don't understand what >>>> submitting later would solve. >>>> >>>>> If that's the case, how can I explain that the rtc device tree node >>>>> uses the syscon tag? >>>>> How can I describe a POR device in DTS? POR is a submodule of RTC, and >>>>> it also has corresponding drivers. >>>> >>>> I said, there is no need for POR in DTS, because you have nothing there. >>>> Why do you insist on putting it on DTS? >>>> >>>>> It's just that his resources are only shared with RTC's Reg. >>>> >>>> What resources? Reg? That's not a separate resource. >> >> I meant, separate from the RTC. I had impression that IO space is shared >> or mixed with RTC? If it is separate, why it wasn't listed? >> >>> >>> I'm very sorry about this. >>> But I found a binding file that only contains Reg and Compatible. >>> >>> rtc@80920000 { >>> compatible = "cirrus,ep9301-rtc"; >>> reg = <0x80920000 0x100>; >>> }; >>> >>> Link: Documentation/devicetree/bindings/rtc/cirrus,ep9301-rtc.yaml >> >> And? >> >>> >>>> >>>> To summarize: Drop POR from DTS and never bring it back, unless you come >>>> with some different arguments, which you did not say already. >>>> >>> >>> You are right, if there is no por device tree node, how can the por >>> driver obtain the Reg? >> >> The same as currently. Does your POR node has reg? No, so according to >> your logic it cannot obtain address space. >> >> Children Linux devices share regmap with parent device. >> > > Thanks, Power-On-Reset/POR driver requires Reg to complete its functions. > The compatible of POR is required in DTS to load the corresponding driver. No, it is not needed. I also wrote to in previous messages to keep drivers out of this. They are not related to this topic and don't use them as arguments. > The POR driver was not submitted in the patch. However, this patch requires > the addition of RTC in DTS. Considering the future addition of POR No. Bindings *MUST BE COMPLETE*, not depend on some other drivers. Submit *COMPLETE* bindings for entire hardware. Then submit complete DTS. I don't care about the drivers and they do not have to be complete. > driver, I added a POR node. > I'm not sure why the POR node needs to be deleted, just because it > only has the compatible attribute? This is like a tenth message and I was explaining it multiple times. Go back to previous emails. > Or maybe it's because I didn't submit the POR driver, so I need to > delete the POR node. Please don't mention drivers anymore in this discussions. It only confuses you. > I found an example. > > st: timer@fffffd00 { > compatible = "atmel,at91rm9200-st", "syscon", "simple-mfd"; > reg = <0xfffffd00 0x100>; > interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; > clocks = <&slow_xtal>; > watchdog { > compatible = "atmel,at91rm9200-wdt"; > }; > }; > > Link:arch/arm/boot/dts/microchip/at91rm9200.dtsi:114 > > Like this, when the por driver insmod is activated, the por driver can > obtain the regs of the parent device. Example of what? What is the question? I found a bug in Linux, so can I create such bug again? This discussion is fruitless and tiresome. You are repeating the same issues and asking the same questions. Best regards, Krzysztof