Message ID | 20200306132620.4ADCF8030702@mail.baikalelectronics.ru (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | [1/2] dt-bindings: hwmon: Add Baikal-T1 PVT sensor bindings | expand |
On Fri, Mar 06, 2020 at 04:26:03PM +0300, Sergey.Semin@baikalelectronics.ru wrote: > From: Serge Semin <Sergey.Semin@baikalelectronics.ru> > > Baikal-T1 SoC is equipped with an embedded process, voltage and > temperature sensor to monitor the chip internal environment like > temperature, supply voltage and transistors performance. > > This bindings describes the external Baikal-T1 PVT control interfaces > like MMIO registers space, interrupt request number and clocks source. > These are then used by the corresponding hwmon device driver to > implement the sysfs files-based access to the sensors functionality. > > Signed-off-by: Maxim Kaurkin <maxim.kaurkin@baikalelectronics.ru> > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> > Signed-off-by: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru> > Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> > Cc: Paul Burton <paulburton@kernel.org> > Cc: Ralf Baechle <ralf@linux-mips.org> > --- > .../devicetree/bindings/hwmon/be,bt1-pvt.yaml | 100 ++++++++++++++++++ > 1 file changed, 100 insertions(+) > create mode 100644 Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml > > diff --git a/Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml b/Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml > new file mode 100644 > index 000000000000..d575d124d538 > --- /dev/null > +++ b/Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml > @@ -0,0 +1,100 @@ > +# SPDX-License-Identifier: GPL-2.0 Dual license > +# > +# Copyright (C) 2019 BAIKAL ELECTRONICS, JSC > +# > +# Baikal-T1 Process, Voltage, Temperature Sensor Device Tree Bindings. drop > +# > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/hwmon/be,bt1-pvt.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Baikal-T1 PVT Sensor Device Tree Bindings > + > +maintainers: > + - Serge Semin <fancer.lancer@gmail.com> > + > +description: | > + Baikal-T1 SoC provides an embedded process, voltage and temperature > + sensor to monitor an internal SoC environment (chip temperature, supply > + voltage and process monitor) and on time detect critical situations, > + which may cause the system instability and even damages. The IP-block > + is based on the Analog Bits PVT sensor, but is equipped with a dedicated > + control wrapper, which provides a MMIO registers-based access to the > + sensor core functionality (APB3-bus based) and exposes an additional > + functions like thresholds/data ready interrupts, its status and masks, > + measurements timeout. Its internal structure is depicted on the next > + diagram: > + Analog Bits core Bakal-T1 PVT control block > + +--------------------+ +------------------------+ > + | Temperature sensor |-+ +------| Sensors control | > + |--------------------| |<---En---| |------------------------| > + | Voltage sensor |-|<--Mode--| +--->| Sampled data | > + |--------------------| |<--Trim--+ | |------------------------| > + | Low-Vt sensor |-| | +--| Thresholds comparator | > + |--------------------| |---Data----| | |------------------------| > + | High-Vt sensor |-| | +->| Interrupts status | > + |--------------------| |--Valid--+-+ | |------------------------| > + | Standard-Vt sensor |-+ +---+--| Interrupts mask | > + +--------------------+ |------------------------| > + ^ | Interrupts timeout | > + | +------------------------+ > + | ^ ^ > + Rclk-----+----------------------------------------+ | > + APB3-------------------------------------------------+ > + > + This bindings describes the external Baikal-T1 PVT control interfaces > + like MMIO registers space, interrupt request number and clocks source. > + These are then used by the corresponding hwmon device driver to > + implement the sysfs files-based access to the sensors functionality. > + > +properties: > + compatible: > + const: be,bt1-pvt > + > + reg: > + maxItems: 1 > + > + interrupts: > + maxItems: 1 > + > + clocks: > + items: > + - description: PVT reference clock. > + - description: APB3 interface clock. > + > + clock-names: > + items: > + - const: ref > + - const: pclk > + > + "#thermal-sensor-cells": > + description: Baikal-T1 can be referenced as the CPU thermal-sensor. > + const: 0 > + > +additionalProperties: false > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + > +examples: > + - | > + #include <dt-bindings/interrupt-controller/mips-gic.h> > + #include <dt-bindings/clock/bt1-ccu.h> > + > + pvt: pvt@1F200000 { lowercase hex > + compatible = "be,bt1-pvt"; > + reg = <0x1F200000 0x1000>; > + #thermal-sensor-cells = <0>; > + > + interrupts = <GIC_SHARED 31 IRQ_TYPE_LEVEL_HIGH>; > + > + clocks = <&ccu_sys CCU_SYS_PVT_CLK>, > + <&ccu_sys CCU_SYS_APB_CLK>; > + clock-names = "ref", "pclk"; > + }; > +... > -- > 2.25.1 >
On Thu, Mar 12, 2020 at 05:13:04PM -0500, Rob Herring wrote: > On Fri, Mar 06, 2020 at 04:26:03PM +0300, Sergey.Semin@baikalelectronics.ru wrote: > > From: Serge Semin <Sergey.Semin@baikalelectronics.ru> > > > > Baikal-T1 SoC is equipped with an embedded process, voltage and > > temperature sensor to monitor the chip internal environment like > > temperature, supply voltage and transistors performance. > > > > This bindings describes the external Baikal-T1 PVT control interfaces > > like MMIO registers space, interrupt request number and clocks source. > > These are then used by the corresponding hwmon device driver to > > implement the sysfs files-based access to the sensors functionality. > > > > Signed-off-by: Maxim Kaurkin <maxim.kaurkin@baikalelectronics.ru> > > Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru> > > Signed-off-by: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru> > > Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> > > Cc: Paul Burton <paulburton@kernel.org> > > Cc: Ralf Baechle <ralf@linux-mips.org> > > --- > > .../devicetree/bindings/hwmon/be,bt1-pvt.yaml | 100 ++++++++++++++++++ > > 1 file changed, 100 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml > > > > diff --git a/Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml b/Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml > > new file mode 100644 > > index 000000000000..d575d124d538 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml > > @@ -0,0 +1,100 @@ > > +# SPDX-License-Identifier: GPL-2.0 > > Dual license > Ok. I'll add BSD-2-Clause here. > > +# > > +# Copyright (C) 2019 BAIKAL ELECTRONICS, JSC > > +# > > +# Baikal-T1 Process, Voltage, Temperature Sensor Device Tree Bindings. > > drop > Ok. > > +# > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/hwmon/be,bt1-pvt.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Baikal-T1 PVT Sensor Device Tree Bindings > > + > > +maintainers: > > + - Serge Semin <fancer.lancer@gmail.com> > > + > > +description: | > > + Baikal-T1 SoC provides an embedded process, voltage and temperature > > + sensor to monitor an internal SoC environment (chip temperature, supply > > + voltage and process monitor) and on time detect critical situations, > > + which may cause the system instability and even damages. The IP-block > > + is based on the Analog Bits PVT sensor, but is equipped with a dedicated > > + control wrapper, which provides a MMIO registers-based access to the > > + sensor core functionality (APB3-bus based) and exposes an additional > > + functions like thresholds/data ready interrupts, its status and masks, > > + measurements timeout. Its internal structure is depicted on the next > > + diagram: > > + Analog Bits core Bakal-T1 PVT control block > > + +--------------------+ +------------------------+ > > + | Temperature sensor |-+ +------| Sensors control | > > + |--------------------| |<---En---| |------------------------| > > + | Voltage sensor |-|<--Mode--| +--->| Sampled data | > > + |--------------------| |<--Trim--+ | |------------------------| > > + | Low-Vt sensor |-| | +--| Thresholds comparator | > > + |--------------------| |---Data----| | |------------------------| > > + | High-Vt sensor |-| | +->| Interrupts status | > > + |--------------------| |--Valid--+-+ | |------------------------| > > + | Standard-Vt sensor |-+ +---+--| Interrupts mask | > > + +--------------------+ |------------------------| > > + ^ | Interrupts timeout | > > + | +------------------------+ > > + | ^ ^ > > + Rclk-----+----------------------------------------+ | > > + APB3-------------------------------------------------+ > > + > > + This bindings describes the external Baikal-T1 PVT control interfaces > > + like MMIO registers space, interrupt request number and clocks source. > > + These are then used by the corresponding hwmon device driver to > > + implement the sysfs files-based access to the sensors functionality. > > + > > +properties: > > + compatible: > > + const: be,bt1-pvt > > + > > + reg: > > + maxItems: 1 > > + > > + interrupts: > > + maxItems: 1 > > + > > + clocks: > > + items: > > + - description: PVT reference clock. > > + - description: APB3 interface clock. > > + > > + clock-names: > > + items: > > + - const: ref > > + - const: pclk > > + > > + "#thermal-sensor-cells": > > + description: Baikal-T1 can be referenced as the CPU thermal-sensor. > > + const: 0 > > + > > +additionalProperties: false > > + > > +required: > > + - compatible > > + - reg > > + - interrupts > > + - clocks > > + - clock-names > > + > > +examples: > > + - | > > + #include <dt-bindings/interrupt-controller/mips-gic.h> > > + #include <dt-bindings/clock/bt1-ccu.h> > > + > > + pvt: pvt@1F200000 { > > lowercase hex > Ok. I'll also remove the bt1-ccu.h inclusion here, since that header doesn't exist in the kernel source tree at the moment. Regards, -Sergey > > + compatible = "be,bt1-pvt"; > > + reg = <0x1F200000 0x1000>; > > + #thermal-sensor-cells = <0>; > > + > > + interrupts = <GIC_SHARED 31 IRQ_TYPE_LEVEL_HIGH>; > > + > > + clocks = <&ccu_sys CCU_SYS_PVT_CLK>, > > + <&ccu_sys CCU_SYS_APB_CLK>; > > + clock-names = "ref", "pclk"; > > + }; > > +... > > -- > > 2.25.1 > >
diff --git a/Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml b/Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml new file mode 100644 index 000000000000..d575d124d538 --- /dev/null +++ b/Documentation/devicetree/bindings/hwmon/be,bt1-pvt.yaml @@ -0,0 +1,100 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# Copyright (C) 2019 BAIKAL ELECTRONICS, JSC +# +# Baikal-T1 Process, Voltage, Temperature Sensor Device Tree Bindings. +# +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/hwmon/be,bt1-pvt.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Baikal-T1 PVT Sensor Device Tree Bindings + +maintainers: + - Serge Semin <fancer.lancer@gmail.com> + +description: | + Baikal-T1 SoC provides an embedded process, voltage and temperature + sensor to monitor an internal SoC environment (chip temperature, supply + voltage and process monitor) and on time detect critical situations, + which may cause the system instability and even damages. The IP-block + is based on the Analog Bits PVT sensor, but is equipped with a dedicated + control wrapper, which provides a MMIO registers-based access to the + sensor core functionality (APB3-bus based) and exposes an additional + functions like thresholds/data ready interrupts, its status and masks, + measurements timeout. Its internal structure is depicted on the next + diagram: + Analog Bits core Bakal-T1 PVT control block + +--------------------+ +------------------------+ + | Temperature sensor |-+ +------| Sensors control | + |--------------------| |<---En---| |------------------------| + | Voltage sensor |-|<--Mode--| +--->| Sampled data | + |--------------------| |<--Trim--+ | |------------------------| + | Low-Vt sensor |-| | +--| Thresholds comparator | + |--------------------| |---Data----| | |------------------------| + | High-Vt sensor |-| | +->| Interrupts status | + |--------------------| |--Valid--+-+ | |------------------------| + | Standard-Vt sensor |-+ +---+--| Interrupts mask | + +--------------------+ |------------------------| + ^ | Interrupts timeout | + | +------------------------+ + | ^ ^ + Rclk-----+----------------------------------------+ | + APB3-------------------------------------------------+ + + This bindings describes the external Baikal-T1 PVT control interfaces + like MMIO registers space, interrupt request number and clocks source. + These are then used by the corresponding hwmon device driver to + implement the sysfs files-based access to the sensors functionality. + +properties: + compatible: + const: be,bt1-pvt + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + items: + - description: PVT reference clock. + - description: APB3 interface clock. + + clock-names: + items: + - const: ref + - const: pclk + + "#thermal-sensor-cells": + description: Baikal-T1 can be referenced as the CPU thermal-sensor. + const: 0 + +additionalProperties: false + +required: + - compatible + - reg + - interrupts + - clocks + - clock-names + +examples: + - | + #include <dt-bindings/interrupt-controller/mips-gic.h> + #include <dt-bindings/clock/bt1-ccu.h> + + pvt: pvt@1F200000 { + compatible = "be,bt1-pvt"; + reg = <0x1F200000 0x1000>; + #thermal-sensor-cells = <0>; + + interrupts = <GIC_SHARED 31 IRQ_TYPE_LEVEL_HIGH>; + + clocks = <&ccu_sys CCU_SYS_PVT_CLK>, + <&ccu_sys CCU_SYS_APB_CLK>; + clock-names = "ref", "pclk"; + }; +...