* Re: [PATCH 2/5] iio: at91: Use different prescal, startup mask in MR for different IP [not found] ` <51E50864.6020904-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> @ 2013-07-16 11:30 ` Thomas Petazzoni 2013-07-16 19:03 ` Jonathan Cameron 0 siblings, 1 reply; 4+ messages in thread From: Thomas Petazzoni @ 2013-07-16 11:30 UTC (permalink / raw) To: Nicolas Ferre Cc: Josh Wu, Maxime Ripard, plagnioj-sclMFOaUSTBWk0Htik3J/w, linux-iio-u79uwXL29TY76Z2rM5mHXA, jic23-KWPb1pKIrIJaa/9Udqfwiw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ Dear Nicolas Ferre, On Tue, 16 Jul 2013 10:46:28 +0200, Nicolas Ferre wrote: > > Ok, that make sense. I will use compatible names for the capabilities in > > next version. Thanks. > > Hold on a little bit Josh, I know that Jean-Christophe is not in favor > of the use of multiple compatible strings. So, as the code is already > there, let's wait and see if we find another argument... I've asked exactly this question last week at Linaro Connect during the ARM SoC consolidation panel/discussion, where Grant Likely, Arnd Bergmann, Olof and others were answering Device Tree related questions. My question, which precisely had the at91-adc DT binding in mind was precisely whether we should use different compatible properties to identify different revisions of an IP block and let the driver handle those differences, or whether the DT binding should provide sufficient properties (register offsets, bit numbers, etc.) to make the driver independent of the IP revisions. And clearly, the answer was that different compatible properties should be used to identify the different versions of the IP block, and the driver should abstract out the differences. I.e, was has been done for at91-adc is completely the opposite of the best practices for Device Tree on ARM. See http://www.youtube.com/watch?v=zF_AXLgkFy4&feature=player_detailpage#t=1581s where I ask exactly this question, and get answers from Olof Johansson and Grant Likely. They clearly say that the solution of having separate compatible properties and a driver that handles the differences is the way to go. So the way at91-adc (and possibly other at91 drivers) is using the Device Tree is wrong, there should have been multiple compatible properties. It's a shame because this is something we did say when we submitted at91-adc and during the reviews, but the maintainer wasn't listening to our comments... Best regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/5] iio: at91: Use different prescal, startup mask in MR for different IP 2013-07-16 11:30 ` [PATCH 2/5] iio: at91: Use different prescal, startup mask in MR for different IP Thomas Petazzoni @ 2013-07-16 19:03 ` Jonathan Cameron [not found] ` <51E5990A.4050709-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Jonathan Cameron @ 2013-07-16 19:03 UTC (permalink / raw) To: Thomas Petazzoni Cc: Nicolas Ferre, Josh Wu, Maxime Ripard, plagnioj-sclMFOaUSTBWk0Htik3J/w, linux-iio-u79uwXL29TY76Z2rM5mHXA, jic23-KWPb1pKIrIJaa/9Udqfwiw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ On 07/16/2013 12:30 PM, Thomas Petazzoni wrote: > Dear Nicolas Ferre, > > On Tue, 16 Jul 2013 10:46:28 +0200, Nicolas Ferre wrote: > >>> Ok, that make sense. I will use compatible names for the capabilities in >>> next version. Thanks. >> >> Hold on a little bit Josh, I know that Jean-Christophe is not in favor >> of the use of multiple compatible strings. So, as the code is already >> there, let's wait and see if we find another argument... > > I've asked exactly this question last week at Linaro Connect during the > ARM SoC consolidation panel/discussion, where Grant Likely, Arnd > Bergmann, Olof and others were answering Device Tree related questions. > > My question, which precisely had the at91-adc DT binding in mind was > precisely whether we should use different compatible properties to > identify different revisions of an IP block and let the driver handle > those differences, or whether the DT binding should provide sufficient > properties (register offsets, bit numbers, etc.) to make the driver > independent of the IP revisions. And clearly, the answer was that > different compatible properties should be used to identify the > different versions of the IP block, and the driver should abstract out > the differences. I.e, was has been done for at91-adc is completely the > opposite of the best practices for Device Tree on ARM. > > See > http://www.youtube.com/watch?v=zF_AXLgkFy4&feature=player_detailpage#t=1581s > where I ask exactly this question, and get answers from Olof Johansson > and Grant Likely. They clearly say that the solution of having separate > compatible properties and a driver that handles the differences is the > way to go. So the way at91-adc (and possibly other at91 drivers) is > using the Device Tree is wrong, there should have been multiple > compatible properties. It's a shame because this is something we did say > when we submitted at91-adc and during the reviews, but the maintainer > wasn't listening to our comments... > Thanks for getting some clarity on this Thomas. So I'll ask the somewhat obvious question - how do we unwind from where we are to where we want to be wrt to the bindings? ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <51E5990A.4050709-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>]
* Re: [PATCH 2/5] iio: at91: Use different prescal, startup mask in MR for different IP [not found] ` <51E5990A.4050709-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> @ 2013-07-16 19:17 ` Thomas Petazzoni 2013-07-17 8:23 ` Nicolas Ferre 0 siblings, 1 reply; 4+ messages in thread From: Thomas Petazzoni @ 2013-07-16 19:17 UTC (permalink / raw) To: Jonathan Cameron Cc: Nicolas Ferre, Josh Wu, Maxime Ripard, plagnioj-sclMFOaUSTBWk0Htik3J/w, linux-iio-u79uwXL29TY76Z2rM5mHXA, jic23-KWPb1pKIrIJaa/9Udqfwiw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ Dear Jonathan Cameron, On Tue, 16 Jul 2013 20:03:38 +0100, Jonathan Cameron wrote: > On 07/16/2013 12:30 PM, Thomas Petazzoni wrote: > > I've asked exactly this question last week at Linaro Connect during the > > ARM SoC consolidation panel/discussion, where Grant Likely, Arnd > > Bergmann, Olof and others were answering Device Tree related questions. > > > > My question, which precisely had the at91-adc DT binding in mind was > > precisely whether we should use different compatible properties to > > identify different revisions of an IP block and let the driver handle > > those differences, or whether the DT binding should provide sufficient > > properties (register offsets, bit numbers, etc.) to make the driver > > independent of the IP revisions. And clearly, the answer was that > > different compatible properties should be used to identify the > > different versions of the IP block, and the driver should abstract out > > the differences. I.e, was has been done for at91-adc is completely the > > opposite of the best practices for Device Tree on ARM. > > > > See > > http://www.youtube.com/watch?v=zF_AXLgkFy4&feature=player_detailpage#t=1581s > > where I ask exactly this question, and get answers from Olof Johansson > > and Grant Likely. They clearly say that the solution of having separate > > compatible properties and a driver that handles the differences is the > > way to go. So the way at91-adc (and possibly other at91 drivers) is > > using the Device Tree is wrong, there should have been multiple > > compatible properties. It's a shame because this is something we did say > > when we submitted at91-adc and during the reviews, but the maintainer > > wasn't listening to our comments... > > > > Thanks for getting some clarity on this Thomas. So I'll ask the somewhat obvious > question - how do we unwind from where we are to where we want to be wrt to the > bindings? During Linaro Connect last week, there was some discussion about marking DT bindings as unstable for a little while, once they get reviewed by a group of DT "experts" that mark them as stable. Until they are stable, the kernel does not offer any ABI guarantees, and we are free to change the DT bindings as needed. Now, since this unstable/stable thing is not in place at the moment, deciding whether to break or not existing bindings is something to be decided by the maintainer of this platform, judging what is the best option depending on whether there are already many users of the DT for this platform or not, for example. Best regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/5] iio: at91: Use different prescal, startup mask in MR for different IP 2013-07-16 19:17 ` Thomas Petazzoni @ 2013-07-17 8:23 ` Nicolas Ferre 0 siblings, 0 replies; 4+ messages in thread From: Nicolas Ferre @ 2013-07-17 8:23 UTC (permalink / raw) To: Thomas Petazzoni, Jonathan Cameron Cc: Josh Wu, Maxime Ripard, plagnioj-sclMFOaUSTBWk0Htik3J/w, linux-iio-u79uwXL29TY76Z2rM5mHXA, jic23-KWPb1pKIrIJaa/9Udqfwiw, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ On 16/07/2013 21:17, Thomas Petazzoni : > Dear Jonathan Cameron, > > On Tue, 16 Jul 2013 20:03:38 +0100, Jonathan Cameron wrote: > >> On 07/16/2013 12:30 PM, Thomas Petazzoni wrote: >>> I've asked exactly this question last week at Linaro Connect during the >>> ARM SoC consolidation panel/discussion, where Grant Likely, Arnd >>> Bergmann, Olof and others were answering Device Tree related questions. >>> >>> My question, which precisely had the at91-adc DT binding in mind was >>> precisely whether we should use different compatible properties to >>> identify different revisions of an IP block and let the driver handle >>> those differences, or whether the DT binding should provide sufficient >>> properties (register offsets, bit numbers, etc.) to make the driver >>> independent of the IP revisions. And clearly, the answer was that >>> different compatible properties should be used to identify the >>> different versions of the IP block, and the driver should abstract out >>> the differences. I.e, was has been done for at91-adc is completely the >>> opposite of the best practices for Device Tree on ARM. >>> >>> See >>> http://www.youtube.com/watch?v=zF_AXLgkFy4&feature=player_detailpage#t=1581s >>> where I ask exactly this question, and get answers from Olof Johansson >>> and Grant Likely. They clearly say that the solution of having separate >>> compatible properties and a driver that handles the differences is the >>> way to go. So the way at91-adc (and possibly other at91 drivers) is >>> using the Device Tree is wrong, there should have been multiple >>> compatible properties. It's a shame because this is something we did say >>> when we submitted at91-adc and during the reviews, but the maintainer >>> wasn't listening to our comments... >>> >> >> Thanks for getting some clarity on this Thomas. So I'll ask the somewhat obvious >> question - how do we unwind from where we are to where we want to be wrt to the >> bindings? > > During Linaro Connect last week, there was some discussion about > marking DT bindings as unstable for a little while, once they get > reviewed by a group of DT "experts" that mark them as stable. Until > they are stable, the kernel does not offer any ABI guarantees, and we > are free to change the DT bindings as needed. > > Now, since this unstable/stable thing is not in place at the moment, > deciding whether to break or not existing bindings is something to be > decided by the maintainer of this platform, judging what is the best > option depending on whether there are already many users of the DT for > this platform or not, for example. I didn't had in mind that the current discussion about the addition of some properties could cast doubt on the entire at91-adc binding! The binding itself has several drawbacks and is kind of over engineered, I agree with that. Some register offsets in particular have nothing to do in a DT binding. On the other hand, some values are highly dependent on the SoC process itself and can't be stored in the driver because it would require to change the driver for each new SoC, depending on the electrical characteristics. In conclusion, we have to be cautious with this binding and make sure that we don't throw the baby out with the bath water. Moreover, at the time we are just beginning to be comfortable with DT on AT91 and beginning to overcome the difficulty of converting our platforms, I see this new step on the path to "mainline + DT stable" as another slowdown. Bye, -- Nicolas Ferre ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-07-17 8:23 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1373789069-11604-1-git-send-email-josh.wu@atmel.com> [not found] ` <1373789069-11604-3-git-send-email-josh.wu@atmel.com> [not found] ` <20130715125815.GC2962@lukather> [not found] ` <51E505EA.4060502@atmel.com> [not found] ` <51E50864.6020904@atmel.com> [not found] ` <51E50864.6020904-AIFe0yeh4nAAvxtiuMwx3w@public.gmane.org> 2013-07-16 11:30 ` [PATCH 2/5] iio: at91: Use different prescal, startup mask in MR for different IP Thomas Petazzoni 2013-07-16 19:03 ` Jonathan Cameron [not found] ` <51E5990A.4050709-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> 2013-07-16 19:17 ` Thomas Petazzoni 2013-07-17 8:23 ` Nicolas Ferre
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).