13e6cae8eSTim Harvey# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 23e6cae8eSTim Harvey%YAML 1.2 33e6cae8eSTim Harvey--- 43e6cae8eSTim Harvey$id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml# 53e6cae8eSTim Harvey$schema: http://devicetree.org/meta-schemas/core.yaml# 63e6cae8eSTim Harvey 73e6cae8eSTim Harveytitle: Gateworks System Controller 83e6cae8eSTim Harvey 93e6cae8eSTim Harveydescription: | 103e6cae8eSTim Harvey The Gateworks System Controller (GSC) is a device present across various 113e6cae8eSTim Harvey Gateworks product families that provides a set of system related features 123e6cae8eSTim Harvey such as the following (refer to the board hardware user manuals to see what 133e6cae8eSTim Harvey features are present) 143e6cae8eSTim Harvey - Watchdog Timer 153e6cae8eSTim Harvey - GPIO 163e6cae8eSTim Harvey - Pushbutton controller 173e6cae8eSTim Harvey - Hardware monitor with ADC's for temperature and voltage rails and 183e6cae8eSTim Harvey fan controller 193e6cae8eSTim Harvey 203e6cae8eSTim Harveymaintainers: 213e6cae8eSTim Harvey - Tim Harvey <tharvey@gateworks.com> 223e6cae8eSTim Harvey 233e6cae8eSTim Harveyproperties: 243e6cae8eSTim Harvey $nodename: 253e6cae8eSTim Harvey pattern: "gsc@[0-9a-f]{1,2}" 263e6cae8eSTim Harvey compatible: 273e6cae8eSTim Harvey const: gw,gsc 283e6cae8eSTim Harvey 293e6cae8eSTim Harvey reg: 303e6cae8eSTim Harvey description: I2C device address 313e6cae8eSTim Harvey maxItems: 1 323e6cae8eSTim Harvey 333e6cae8eSTim Harvey interrupts: 343e6cae8eSTim Harvey maxItems: 1 353e6cae8eSTim Harvey 363e6cae8eSTim Harvey interrupt-controller: true 373e6cae8eSTim Harvey 383e6cae8eSTim Harvey "#interrupt-cells": 393e6cae8eSTim Harvey const: 1 403e6cae8eSTim Harvey 413e6cae8eSTim Harvey "#address-cells": 423e6cae8eSTim Harvey const: 1 433e6cae8eSTim Harvey 443e6cae8eSTim Harvey "#size-cells": 453e6cae8eSTim Harvey const: 0 463e6cae8eSTim Harvey 473e6cae8eSTim Harvey adc: 483e6cae8eSTim Harvey type: object 49*42839dcaSRob Herring additionalProperties: false 503e6cae8eSTim Harvey description: Optional hardware monitoring module 513e6cae8eSTim Harvey 523e6cae8eSTim Harvey properties: 533e6cae8eSTim Harvey compatible: 543e6cae8eSTim Harvey const: gw,gsc-adc 553e6cae8eSTim Harvey 563e6cae8eSTim Harvey "#address-cells": 573e6cae8eSTim Harvey const: 1 583e6cae8eSTim Harvey 593e6cae8eSTim Harvey "#size-cells": 603e6cae8eSTim Harvey const: 0 613e6cae8eSTim Harvey 623e6cae8eSTim Harvey patternProperties: 63*42839dcaSRob Herring "^channel@[0-9a-f]+$": 643e6cae8eSTim Harvey type: object 65*42839dcaSRob Herring additionalProperties: false 663e6cae8eSTim Harvey description: | 673e6cae8eSTim Harvey Properties for a single ADC which can report cooked values 683e6cae8eSTim Harvey (i.e. temperature sensor based on thermister), raw values 693e6cae8eSTim Harvey (i.e. voltage rail with a pre-scaling resistor divider). 703e6cae8eSTim Harvey 713e6cae8eSTim Harvey properties: 723e6cae8eSTim Harvey reg: 733e6cae8eSTim Harvey description: Register of the ADC 743e6cae8eSTim Harvey maxItems: 1 753e6cae8eSTim Harvey 763e6cae8eSTim Harvey label: 773e6cae8eSTim Harvey description: Name of the ADC input 783e6cae8eSTim Harvey 793e6cae8eSTim Harvey gw,mode: 803e6cae8eSTim Harvey description: | 813e6cae8eSTim Harvey conversion mode: 823e6cae8eSTim Harvey 0 - temperature, in C*10 83ad738dddSTim Harvey 1 - pre-scaled 24-bit voltage value 843e6cae8eSTim Harvey 2 - scaled voltage based on an optional resistor divider 853e6cae8eSTim Harvey and optional offset 86ad738dddSTim Harvey 3 - pre-scaled 16-bit voltage value 87c239fea1STim Harvey 4 - fan tach input to report RPM's 883e6cae8eSTim Harvey $ref: /schemas/types.yaml#/definitions/uint32 89c239fea1STim Harvey enum: [0, 1, 2, 3, 4] 903e6cae8eSTim Harvey 913e6cae8eSTim Harvey gw,voltage-divider-ohms: 923e6cae8eSTim Harvey description: Values of resistors for divider on raw ADC input 933e6cae8eSTim Harvey maxItems: 2 943e6cae8eSTim Harvey items: 953e6cae8eSTim Harvey minimum: 1000 963e6cae8eSTim Harvey maximum: 1000000 973e6cae8eSTim Harvey 983e6cae8eSTim Harvey gw,voltage-offset-microvolt: 993e6cae8eSTim Harvey description: | 1003e6cae8eSTim Harvey A positive voltage offset to apply to a raw ADC 1013e6cae8eSTim Harvey (i.e. to compensate for a diode drop). 1023e6cae8eSTim Harvey minimum: 0 1033e6cae8eSTim Harvey maximum: 1000000 1043e6cae8eSTim Harvey 1053e6cae8eSTim Harvey required: 1063e6cae8eSTim Harvey - gw,mode 1073e6cae8eSTim Harvey - reg 1083e6cae8eSTim Harvey - label 1093e6cae8eSTim Harvey 1103e6cae8eSTim Harvey required: 1113e6cae8eSTim Harvey - compatible 1123e6cae8eSTim Harvey - "#address-cells" 1133e6cae8eSTim Harvey - "#size-cells" 1143e6cae8eSTim Harvey 1153e6cae8eSTim HarveypatternProperties: 1163e6cae8eSTim Harvey "^fan-controller@[0-9a-f]+$": 1173e6cae8eSTim Harvey type: object 118*42839dcaSRob Herring additionalProperties: false 1193e6cae8eSTim Harvey description: Optional fan controller 1203e6cae8eSTim Harvey 1213e6cae8eSTim Harvey properties: 1223e6cae8eSTim Harvey compatible: 1233e6cae8eSTim Harvey const: gw,gsc-fan 1243e6cae8eSTim Harvey 1253e6cae8eSTim Harvey "#address-cells": 1263e6cae8eSTim Harvey const: 1 1273e6cae8eSTim Harvey 1283e6cae8eSTim Harvey "#size-cells": 1293e6cae8eSTim Harvey const: 0 1303e6cae8eSTim Harvey 1313e6cae8eSTim Harvey reg: 1323e6cae8eSTim Harvey description: The fan controller base address 1333e6cae8eSTim Harvey maxItems: 1 1343e6cae8eSTim Harvey 1353e6cae8eSTim Harvey required: 1363e6cae8eSTim Harvey - compatible 1373e6cae8eSTim Harvey - reg 1383e6cae8eSTim Harvey - "#address-cells" 1393e6cae8eSTim Harvey - "#size-cells" 1403e6cae8eSTim Harvey 1413e6cae8eSTim Harveyrequired: 1423e6cae8eSTim Harvey - compatible 1433e6cae8eSTim Harvey - reg 1443e6cae8eSTim Harvey - interrupts 1453e6cae8eSTim Harvey - interrupt-controller 1463e6cae8eSTim Harvey - "#interrupt-cells" 1473e6cae8eSTim Harvey - "#address-cells" 1483e6cae8eSTim Harvey - "#size-cells" 1493e6cae8eSTim Harvey 1505be478f9SRob HerringadditionalProperties: false 1515be478f9SRob Herring 1523e6cae8eSTim Harveyexamples: 1533e6cae8eSTim Harvey - | 1543e6cae8eSTim Harvey #include <dt-bindings/gpio/gpio.h> 155b727db94SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/irq.h> 1563e6cae8eSTim Harvey i2c { 1573e6cae8eSTim Harvey #address-cells = <1>; 1583e6cae8eSTim Harvey #size-cells = <0>; 1593e6cae8eSTim Harvey 1603e6cae8eSTim Harvey gsc@20 { 1613e6cae8eSTim Harvey compatible = "gw,gsc"; 1623e6cae8eSTim Harvey reg = <0x20>; 1633e6cae8eSTim Harvey interrupt-parent = <&gpio1>; 164b727db94SKrzysztof Kozlowski interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 1653e6cae8eSTim Harvey interrupt-controller; 1663e6cae8eSTim Harvey #interrupt-cells = <1>; 1673e6cae8eSTim Harvey #address-cells = <1>; 1683e6cae8eSTim Harvey #size-cells = <0>; 1693e6cae8eSTim Harvey 1703e6cae8eSTim Harvey adc { 1713e6cae8eSTim Harvey compatible = "gw,gsc-adc"; 1723e6cae8eSTim Harvey #address-cells = <1>; 1733e6cae8eSTim Harvey #size-cells = <0>; 1743e6cae8eSTim Harvey 1753e6cae8eSTim Harvey channel@0 { /* A0: Board Temperature */ 1763e6cae8eSTim Harvey reg = <0x00>; 1773e6cae8eSTim Harvey label = "temp"; 1783e6cae8eSTim Harvey gw,mode = <0>; 1793e6cae8eSTim Harvey }; 1803e6cae8eSTim Harvey 1813e6cae8eSTim Harvey channel@2 { /* A1: Input Voltage (raw ADC) */ 1823e6cae8eSTim Harvey reg = <0x02>; 1833e6cae8eSTim Harvey label = "vdd_vin"; 1843e6cae8eSTim Harvey gw,mode = <1>; 1853e6cae8eSTim Harvey gw,voltage-divider-ohms = <22100 1000>; 1863e6cae8eSTim Harvey gw,voltage-offset-microvolt = <800000>; 1873e6cae8eSTim Harvey }; 1883e6cae8eSTim Harvey 1893e6cae8eSTim Harvey channel@b { /* A2: Battery voltage */ 1903e6cae8eSTim Harvey reg = <0x0b>; 1913e6cae8eSTim Harvey label = "vdd_bat"; 1923e6cae8eSTim Harvey gw,mode = <1>; 1933e6cae8eSTim Harvey }; 1943e6cae8eSTim Harvey }; 1953e6cae8eSTim Harvey 1963e6cae8eSTim Harvey fan-controller@2c { 1973e6cae8eSTim Harvey #address-cells = <1>; 1983e6cae8eSTim Harvey #size-cells = <0>; 1993e6cae8eSTim Harvey compatible = "gw,gsc-fan"; 2003e6cae8eSTim Harvey reg = <0x2c>; 2013e6cae8eSTim Harvey }; 2023e6cae8eSTim Harvey }; 2033e6cae8eSTim Harvey }; 204