diff mbox series

[1/2] dt-bindings: hwmon: Add Baikal-T1 PVT sensor bindings

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

Commit Message

Serge Semin March 6, 2020, 1:26 p.m. UTC
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

Comments

Rob Herring (Arm) March 12, 2020, 10:13 p.m. UTC | #1
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
>
Serge Semin March 13, 2020, 9:36 p.m. UTC | #2
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 mbox series

Patch

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";
+    };
+...