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 - Robert Jones <rjones@gateworks.com> 233e6cae8eSTim Harvey 243e6cae8eSTim Harveyproperties: 253e6cae8eSTim Harvey $nodename: 263e6cae8eSTim Harvey pattern: "gsc@[0-9a-f]{1,2}" 273e6cae8eSTim Harvey compatible: 283e6cae8eSTim Harvey const: gw,gsc 293e6cae8eSTim Harvey 303e6cae8eSTim Harvey reg: 313e6cae8eSTim Harvey description: I2C device address 323e6cae8eSTim Harvey maxItems: 1 333e6cae8eSTim Harvey 343e6cae8eSTim Harvey interrupts: 353e6cae8eSTim Harvey maxItems: 1 363e6cae8eSTim Harvey 373e6cae8eSTim Harvey interrupt-controller: true 383e6cae8eSTim Harvey 393e6cae8eSTim Harvey "#interrupt-cells": 403e6cae8eSTim Harvey const: 1 413e6cae8eSTim Harvey 423e6cae8eSTim Harvey "#address-cells": 433e6cae8eSTim Harvey const: 1 443e6cae8eSTim Harvey 453e6cae8eSTim Harvey "#size-cells": 463e6cae8eSTim Harvey const: 0 473e6cae8eSTim Harvey 483e6cae8eSTim Harvey adc: 493e6cae8eSTim Harvey type: object 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: 633e6cae8eSTim Harvey "^channel@[0-9]+$": 643e6cae8eSTim Harvey type: object 653e6cae8eSTim Harvey description: | 663e6cae8eSTim Harvey Properties for a single ADC which can report cooked values 673e6cae8eSTim Harvey (i.e. temperature sensor based on thermister), raw values 683e6cae8eSTim Harvey (i.e. voltage rail with a pre-scaling resistor divider). 693e6cae8eSTim Harvey 703e6cae8eSTim Harvey properties: 713e6cae8eSTim Harvey reg: 723e6cae8eSTim Harvey description: Register of the ADC 733e6cae8eSTim Harvey maxItems: 1 743e6cae8eSTim Harvey 753e6cae8eSTim Harvey label: 763e6cae8eSTim Harvey description: Name of the ADC input 773e6cae8eSTim Harvey 783e6cae8eSTim Harvey gw,mode: 793e6cae8eSTim Harvey description: | 803e6cae8eSTim Harvey conversion mode: 813e6cae8eSTim Harvey 0 - temperature, in C*10 82ad738dddSTim Harvey 1 - pre-scaled 24-bit voltage value 833e6cae8eSTim Harvey 2 - scaled voltage based on an optional resistor divider 843e6cae8eSTim Harvey and optional offset 85ad738dddSTim Harvey 3 - pre-scaled 16-bit voltage value 863e6cae8eSTim Harvey $ref: /schemas/types.yaml#/definitions/uint32 87ad738dddSTim Harvey enum: [0, 1, 2, 3] 883e6cae8eSTim Harvey 893e6cae8eSTim Harvey gw,voltage-divider-ohms: 903e6cae8eSTim Harvey description: Values of resistors for divider on raw ADC input 913e6cae8eSTim Harvey maxItems: 2 923e6cae8eSTim Harvey items: 933e6cae8eSTim Harvey minimum: 1000 943e6cae8eSTim Harvey maximum: 1000000 953e6cae8eSTim Harvey 963e6cae8eSTim Harvey gw,voltage-offset-microvolt: 973e6cae8eSTim Harvey description: | 983e6cae8eSTim Harvey A positive voltage offset to apply to a raw ADC 993e6cae8eSTim Harvey (i.e. to compensate for a diode drop). 1003e6cae8eSTim Harvey minimum: 0 1013e6cae8eSTim Harvey maximum: 1000000 1023e6cae8eSTim Harvey 1033e6cae8eSTim Harvey required: 1043e6cae8eSTim Harvey - gw,mode 1053e6cae8eSTim Harvey - reg 1063e6cae8eSTim Harvey - label 1073e6cae8eSTim Harvey 1083e6cae8eSTim Harvey required: 1093e6cae8eSTim Harvey - compatible 1103e6cae8eSTim Harvey - "#address-cells" 1113e6cae8eSTim Harvey - "#size-cells" 1123e6cae8eSTim Harvey 1133e6cae8eSTim HarveypatternProperties: 1143e6cae8eSTim Harvey "^fan-controller@[0-9a-f]+$": 1153e6cae8eSTim Harvey type: object 1163e6cae8eSTim Harvey description: Optional fan controller 1173e6cae8eSTim Harvey 1183e6cae8eSTim Harvey properties: 1193e6cae8eSTim Harvey compatible: 1203e6cae8eSTim Harvey const: gw,gsc-fan 1213e6cae8eSTim Harvey 1223e6cae8eSTim Harvey "#address-cells": 1233e6cae8eSTim Harvey const: 1 1243e6cae8eSTim Harvey 1253e6cae8eSTim Harvey "#size-cells": 1263e6cae8eSTim Harvey const: 0 1273e6cae8eSTim Harvey 1283e6cae8eSTim Harvey reg: 1293e6cae8eSTim Harvey description: The fan controller base address 1303e6cae8eSTim Harvey maxItems: 1 1313e6cae8eSTim Harvey 1323e6cae8eSTim Harvey required: 1333e6cae8eSTim Harvey - compatible 1343e6cae8eSTim Harvey - reg 1353e6cae8eSTim Harvey - "#address-cells" 1363e6cae8eSTim Harvey - "#size-cells" 1373e6cae8eSTim Harvey 1383e6cae8eSTim Harveyrequired: 1393e6cae8eSTim Harvey - compatible 1403e6cae8eSTim Harvey - reg 1413e6cae8eSTim Harvey - interrupts 1423e6cae8eSTim Harvey - interrupt-controller 1433e6cae8eSTim Harvey - "#interrupt-cells" 1443e6cae8eSTim Harvey - "#address-cells" 1453e6cae8eSTim Harvey - "#size-cells" 1463e6cae8eSTim Harvey 1473e6cae8eSTim Harveyexamples: 1483e6cae8eSTim Harvey - | 1493e6cae8eSTim Harvey #include <dt-bindings/gpio/gpio.h> 1503e6cae8eSTim Harvey i2c { 1513e6cae8eSTim Harvey #address-cells = <1>; 1523e6cae8eSTim Harvey #size-cells = <0>; 1533e6cae8eSTim Harvey 1543e6cae8eSTim Harvey gsc@20 { 1553e6cae8eSTim Harvey compatible = "gw,gsc"; 1563e6cae8eSTim Harvey reg = <0x20>; 1573e6cae8eSTim Harvey interrupt-parent = <&gpio1>; 1583e6cae8eSTim Harvey interrupts = <4 GPIO_ACTIVE_LOW>; 1593e6cae8eSTim Harvey interrupt-controller; 1603e6cae8eSTim Harvey #interrupt-cells = <1>; 1613e6cae8eSTim Harvey #address-cells = <1>; 1623e6cae8eSTim Harvey #size-cells = <0>; 1633e6cae8eSTim Harvey 1643e6cae8eSTim Harvey adc { 1653e6cae8eSTim Harvey compatible = "gw,gsc-adc"; 1663e6cae8eSTim Harvey #address-cells = <1>; 1673e6cae8eSTim Harvey #size-cells = <0>; 1683e6cae8eSTim Harvey 1693e6cae8eSTim Harvey channel@0 { /* A0: Board Temperature */ 1703e6cae8eSTim Harvey reg = <0x00>; 1713e6cae8eSTim Harvey label = "temp"; 1723e6cae8eSTim Harvey gw,mode = <0>; 1733e6cae8eSTim Harvey }; 1743e6cae8eSTim Harvey 1753e6cae8eSTim Harvey channel@2 { /* A1: Input Voltage (raw ADC) */ 1763e6cae8eSTim Harvey reg = <0x02>; 1773e6cae8eSTim Harvey label = "vdd_vin"; 1783e6cae8eSTim Harvey gw,mode = <1>; 1793e6cae8eSTim Harvey gw,voltage-divider-ohms = <22100 1000>; 1803e6cae8eSTim Harvey gw,voltage-offset-microvolt = <800000>; 1813e6cae8eSTim Harvey }; 1823e6cae8eSTim Harvey 1833e6cae8eSTim Harvey channel@b { /* A2: Battery voltage */ 1843e6cae8eSTim Harvey reg = <0x0b>; 1853e6cae8eSTim Harvey label = "vdd_bat"; 1863e6cae8eSTim Harvey gw,mode = <1>; 1873e6cae8eSTim Harvey }; 1883e6cae8eSTim Harvey }; 1893e6cae8eSTim Harvey 1903e6cae8eSTim Harvey fan-controller@2c { 1913e6cae8eSTim Harvey #address-cells = <1>; 1923e6cae8eSTim Harvey #size-cells = <0>; 1933e6cae8eSTim Harvey compatible = "gw,gsc-fan"; 1943e6cae8eSTim Harvey reg = <0x2c>; 1953e6cae8eSTim Harvey }; 1963e6cae8eSTim Harvey }; 1973e6cae8eSTim Harvey }; 198