[AMD Official Use Only - General] > -----Original Message----- > From: Simek, Michal <michal.simek@xxxxxxx> > Sent: Monday, October 16, 2023 1:32 PM > To: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>; Kundanala, Praveen > Teja <praveen.teja.kundanala@xxxxxxx>; srinivas.kandagatla@xxxxxxxxxx; > robh+dt@xxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx; conor+dt@xxxxxxxxxx; > devicetree@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx > Subject: Re: [PATCH 2/5] dt-bindings: nvmem: Convert xlnx,zynqmp-nvmem.txt > to yaml > > > > On 10/13/23 15:10, Krzysztof Kozlowski wrote: > > On 13/10/2023 15:06, Michal Simek wrote: > >> > >> > >> On 10/13/23 14:54, Krzysztof Kozlowski wrote: > >>> On 13/10/2023 14:08, Michal Simek wrote: > >>>> > >>>> > >>>> On 10/13/23 13:58, Krzysztof Kozlowski wrote: > >>>>> On 13/10/2023 13:51, Michal Simek wrote: > >>>>>> > >>>>>> > >>>>>> On 10/13/23 13:46, Krzysztof Kozlowski wrote: > >>>>>>> On 13/10/2023 13:22, Michal Simek wrote: > >>>>>>>>> > >>>>>>>>>> + > >>>>>>>>>> +required: > >>>>>>>>>> + - compatible > >>>>>>>>> > >>>>>>>>> required: block goes after patternProperties: block > >>>>>>>>> > >>>>>>>>>> + > >>>>>>>>>> +patternProperties: > >>>>>>>>>> + "^soc_revision@0$": > >>>>>>>>> > >>>>>>>>> Why do you define individual memory cells? Is this part of a > binding? > >>>>>>>>> IOW, OS/Linux requires this? > >>>>>>>> > >>>>>>>> nvmem has in kernel interface where you can reference to nodes. > >>>>>>>> nvmem_cell_get() calls. It means you should be able to describe > >>>>>>>> internal layout that's why names are used. And address in name > >>>>>>>> is there because of reg property is used to describe base offset and > size. > >>>>>>> > >>>>>>> That's not really what I am asking. Why internal layout of > >>>>>>> memory must be part of the bindings? > >>>>>> > >>>>>> It doesn't need to be but offsets are hardcoded inside the driver > >>>>>> itself and they can't be different. > >>>>> > >>>>> Hm, where? I opened drivers/nvmem/zynqmp_nvmem.c and I do not > see > >>>>> any hard-coded offsets. > >>>> > >>>> Current driver supports only soc revision from offset 0. > >>>> But if you look at 5/5 you need to define offsets where information is > present. > >>>> +#define SOC_VERSION_OFFSET 0x0 > >>>> +#define EFUSE_START_OFFSET 0xC > >>>> +#define EFUSE_END_OFFSET 0xFC > >>>> +#define EFUSE_PUF_START_OFFSET 0x100 > >>>> +#define EFUSE_PUF_MID_OFFSET 0x140 > >>>> +#define EFUSE_PUF_END_OFFSET 0x17F > >>> > >>> There is nothing like this in existing driver, so the argument that > >>> "I am adding this to the binding during conversion because driver needs it" > >>> is not true. Conversion is only a conversion. > >> > >> Conversion in 2/5 is adding only soc revision which is already there. > >> It is starting from 0 and world size is 1. And 0 is not listed > >> because that's start all the time. > >> > >> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tr > >> ee/drivers/nvmem/zynqmp_nvmem.c?h=v6.6-rc5#n39 > > > > This defines the nvmem config, not what should be where. > > > >> > >> And soc revision was also listed in origin binding example. > > > > Example is not a binding. Please drop enforcement of some specific > > nodes from the binding. > > ok. Fine. > Praveen: Please drop that descriptions about sub nodes. >[Kundanala, Praveen Teja] Okay. > > Thanks, > Michal