Message ID | 1448883753-19068-2-git-send-email-s.hauer@pengutronix.de (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Eduardo Valentin |
Headers | show |
On Mon, Nov 30, 2015 at 7:42 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote: > This adds the device tree binding documentation for the mediatek thermal > controller found on Mediatek MT8173 and other SoCs. > > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> > Reviewed-by: Daniel Kurtz <djkurtz@chromium.org> > Acked-by: Rob Herring <robh@kernel.org> > --- > .../bindings/thermal/mediatek-thermal.txt | 43 ++++++++++++++++++++++ > 1 file changed, 43 insertions(+) > create mode 100644 Documentation/devicetree/bindings/thermal/mediatek-thermal.txt > > diff --git a/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt b/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt > new file mode 100644 > index 0000000..81f9a51 > --- /dev/null > +++ b/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt > @@ -0,0 +1,43 @@ > +* Mediatek Thermal > + > +This describes the device tree binding for the Mediatek thermal controller > +which measures the on-SoC temperatures. This device does not have its own ADC, > +instead it directly controls the AUXADC via AHB bus accesses. For this reason > +this device needs phandles to the AUXADC. Also it controls a mux in the > +apmixedsys register space via AHB bus accesses, so a phandle to the APMIXEDSYS > +is also needed. > + > +Required properties: > +- compatible: "mediatek,mt8173-thermal" > +- reg: Address range of the thermal controller > +- interrupts: IRQ for the thermal controller > +- clocks, clock-names: Clocks needed for the thermal controller. required > + clocks are: > + "therm": Main clock needed for register access > + "auxadc": The AUXADC clock > +- resets: Reference to the reset controller controlling the thermal controller. > +- mediatek,auxadc: A phandle to the AUXADC which the thermal controller uses > +- mediatek,apmixedsys: A phandle to the APMIXEDSYS controller. > +- #thermal-sensor-cells : Should be 0. See ./thermal.txt for a description. > + > +Optional properties: > +- nvmem-cells: A phandle to the calibration data provided by a nvmem device. If > + unspecified default values shall be used. > +- nvmem-cell-names: Should be "calibration-data" > + > +Example: > + > + thermal: thermal@1100b000 { > + #thermal-sensor-cells = <1>; Tiny nit: this should now be: #thermal-sensor-cells = <0>; > + compatible = "mediatek,mt8173-thermal"; > + reg = <0 0x1100b000 0 0x1000>; > + interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>; > + clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>; > + clock-names = "therm", "auxadc"; > + resets = <&pericfg MT8173_PERI_THERM_SW_RST>; > + reset-names = "therm"; > + mediatek,auxadc = <&auxadc>; > + mediatek,apmixedsys = <&apmixedsys>; > + nvmem-cells = <&thermal_calibration_data>; > + nvmem-cell-names = "calibration-data"; > + }; > -- > 2.6.2 > > > _______________________________________________ > Linux-mediatek mailing list > Linux-mediatek@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-mediatek -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Dec 16, 2015 at 07:23:22PM +0800, Daniel Kurtz wrote: > On Mon, Nov 30, 2015 at 7:42 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote: > > This adds the device tree binding documentation for the mediatek thermal > > controller found on Mediatek MT8173 and other SoCs. > > > > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> > > Reviewed-by: Daniel Kurtz <djkurtz@chromium.org> > > Acked-by: Rob Herring <robh@kernel.org> > > --- > > .../bindings/thermal/mediatek-thermal.txt | 43 ++++++++++++++++++++++ > > 1 file changed, 43 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/thermal/mediatek-thermal.txt > > > > diff --git a/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt b/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt > > new file mode 100644 > > index 0000000..81f9a51 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt > > @@ -0,0 +1,43 @@ > > +* Mediatek Thermal > > + > > +This describes the device tree binding for the Mediatek thermal controller > > +which measures the on-SoC temperatures. This device does not have its own ADC, > > +instead it directly controls the AUXADC via AHB bus accesses. For this reason > > +this device needs phandles to the AUXADC. Also it controls a mux in the > > +apmixedsys register space via AHB bus accesses, so a phandle to the APMIXEDSYS > > +is also needed. > > + > > +Required properties: > > +- compatible: "mediatek,mt8173-thermal" > > +- reg: Address range of the thermal controller > > +- interrupts: IRQ for the thermal controller > > +- clocks, clock-names: Clocks needed for the thermal controller. required > > + clocks are: > > + "therm": Main clock needed for register access > > + "auxadc": The AUXADC clock > > +- resets: Reference to the reset controller controlling the thermal controller. > > +- mediatek,auxadc: A phandle to the AUXADC which the thermal controller uses > > +- mediatek,apmixedsys: A phandle to the APMIXEDSYS controller. > > +- #thermal-sensor-cells : Should be 0. See ./thermal.txt for a description. > > + > > +Optional properties: > > +- nvmem-cells: A phandle to the calibration data provided by a nvmem device. If > > + unspecified default values shall be used. > > +- nvmem-cell-names: Should be "calibration-data" > > + > > +Example: > > + > > + thermal: thermal@1100b000 { > > + #thermal-sensor-cells = <1>; > > Tiny nit: this should now be: > > #thermal-sensor-cells = <0>; This is actually not so tiny'shy. Why does this driver masks out all sensors available? Why don't we expose all of them and use id property to expose and identify each of them? -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Thu, Dec 17, 2015 at 11:23:31AM -0800, Eduardo Valentin wrote: > On Wed, Dec 16, 2015 at 07:23:22PM +0800, Daniel Kurtz wrote: > > On Mon, Nov 30, 2015 at 7:42 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote: > > > This adds the device tree binding documentation for the mediatek thermal > > > controller found on Mediatek MT8173 and other SoCs. > > > > > > Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> > > > Reviewed-by: Daniel Kurtz <djkurtz@chromium.org> > > > Acked-by: Rob Herring <robh@kernel.org> > > > --- > > > .../bindings/thermal/mediatek-thermal.txt | 43 ++++++++++++++++++++++ > > > 1 file changed, 43 insertions(+) > > > create mode 100644 Documentation/devicetree/bindings/thermal/mediatek-thermal.txt > > > > > > diff --git a/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt b/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt > > > new file mode 100644 > > > index 0000000..81f9a51 > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt > > > @@ -0,0 +1,43 @@ > > > +* Mediatek Thermal > > > + > > > +This describes the device tree binding for the Mediatek thermal controller > > > +which measures the on-SoC temperatures. This device does not have its own ADC, > > > +instead it directly controls the AUXADC via AHB bus accesses. For this reason > > > +this device needs phandles to the AUXADC. Also it controls a mux in the > > > +apmixedsys register space via AHB bus accesses, so a phandle to the APMIXEDSYS > > > +is also needed. > > > + > > > +Required properties: > > > +- compatible: "mediatek,mt8173-thermal" > > > +- reg: Address range of the thermal controller > > > +- interrupts: IRQ for the thermal controller > > > +- clocks, clock-names: Clocks needed for the thermal controller. required > > > + clocks are: > > > + "therm": Main clock needed for register access > > > + "auxadc": The AUXADC clock > > > +- resets: Reference to the reset controller controlling the thermal controller. > > > +- mediatek,auxadc: A phandle to the AUXADC which the thermal controller uses > > > +- mediatek,apmixedsys: A phandle to the APMIXEDSYS controller. > > > +- #thermal-sensor-cells : Should be 0. See ./thermal.txt for a description. > > > + > > > +Optional properties: > > > +- nvmem-cells: A phandle to the calibration data provided by a nvmem device. If > > > + unspecified default values shall be used. > > > +- nvmem-cell-names: Should be "calibration-data" > > > + > > > +Example: > > > + > > > + thermal: thermal@1100b000 { > > > + #thermal-sensor-cells = <1>; > > > > Tiny nit: this should now be: > > > > #thermal-sensor-cells = <0>; > > > This is actually not so tiny'shy. Why does this driver masks out all > sensors available? Why don't we expose all of them and use id property > to expose and identify each of them? This has been the case until v9 of this series. It was requested by Mediatek that the CPU frequency regulation works better when the maximum of all sensors is taken instead of only single sensors. We decided to expose the maximum of all sensors in the device tree. IN the end it will be easier to add additional sensors should we need them later than it is to get rid of sensors we don't need. Sascha
Hello Sascha, On Fri, Dec 18, 2015 at 08:16:33AM +0100, Sascha Hauer wrote: > On Thu, Dec 17, 2015 at 11:23:31AM -0800, Eduardo Valentin wrote: > > On Wed, Dec 16, 2015 at 07:23:22PM +0800, Daniel Kurtz wrote: > > > On Mon, Nov 30, 2015 at 7:42 PM, Sascha Hauer <s.hauer@pengutronix.de> wrote: > > > > +Example: <cut> > > > > + > > > > + thermal: thermal@1100b000 { > > > > + #thermal-sensor-cells = <1>; > > > > > > Tiny nit: this should now be: > > > > > > #thermal-sensor-cells = <0>; > > > > > > This is actually not so tiny'shy. Why does this driver masks out all > > sensors available? Why don't we expose all of them and use id property > > to expose and identify each of them? > > This has been the case until v9 of this series. It was requested by > Mediatek that the CPU frequency regulation works better when the maximum > of all sensors is taken instead of only single sensors. We decided to > expose the maximum of all sensors in the device tree. IN the end it will > be easier to add additional sensors should we need them later than it is > to get rid of sensors we don't need. Apologize as I completely missed this transition from v9 to v10. In fact, I really cannot understand the benefit of having such constraint implemented in the driver. In device tree you can mark a thermal zone as status disabled and it won't appear in your system. One can select which sensors / thermal zones are required. And even reuse same dtsi, and change status on dts per board. The combination of the above, with the possibility to select the maximum from thermal core / sysfs, would be bring much more flexibility for a system engineer, than having the maximum coded in the driver, because, well, changing that relation would require changing the code. If you keep the driver as simple as possible, changing the this setup later would be as simple as changing the dts(i). What do you think? BR, > > Sascha > > -- > Pengutronix e.K. | | > Industrial Linux Solutions | http://www.pengutronix.de/ | > Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- To unsubscribe from this list: send the line "unsubscribe linux-pm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt b/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt new file mode 100644 index 0000000..81f9a51 --- /dev/null +++ b/Documentation/devicetree/bindings/thermal/mediatek-thermal.txt @@ -0,0 +1,43 @@ +* Mediatek Thermal + +This describes the device tree binding for the Mediatek thermal controller +which measures the on-SoC temperatures. This device does not have its own ADC, +instead it directly controls the AUXADC via AHB bus accesses. For this reason +this device needs phandles to the AUXADC. Also it controls a mux in the +apmixedsys register space via AHB bus accesses, so a phandle to the APMIXEDSYS +is also needed. + +Required properties: +- compatible: "mediatek,mt8173-thermal" +- reg: Address range of the thermal controller +- interrupts: IRQ for the thermal controller +- clocks, clock-names: Clocks needed for the thermal controller. required + clocks are: + "therm": Main clock needed for register access + "auxadc": The AUXADC clock +- resets: Reference to the reset controller controlling the thermal controller. +- mediatek,auxadc: A phandle to the AUXADC which the thermal controller uses +- mediatek,apmixedsys: A phandle to the APMIXEDSYS controller. +- #thermal-sensor-cells : Should be 0. See ./thermal.txt for a description. + +Optional properties: +- nvmem-cells: A phandle to the calibration data provided by a nvmem device. If + unspecified default values shall be used. +- nvmem-cell-names: Should be "calibration-data" + +Example: + + thermal: thermal@1100b000 { + #thermal-sensor-cells = <1>; + compatible = "mediatek,mt8173-thermal"; + reg = <0 0x1100b000 0 0x1000>; + interrupts = <0 70 IRQ_TYPE_LEVEL_LOW>; + clocks = <&pericfg CLK_PERI_THERM>, <&pericfg CLK_PERI_AUXADC>; + clock-names = "therm", "auxadc"; + resets = <&pericfg MT8173_PERI_THERM_SW_RST>; + reset-names = "therm"; + mediatek,auxadc = <&auxadc>; + mediatek,apmixedsys = <&apmixedsys>; + nvmem-cells = <&thermal_calibration_data>; + nvmem-cell-names = "calibration-data"; + };