18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Gateworks System Controller 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidescription: | 108c2ecf20Sopenharmony_ci The Gateworks System Controller (GSC) is a device present across various 118c2ecf20Sopenharmony_ci Gateworks product families that provides a set of system related features 128c2ecf20Sopenharmony_ci such as the following (refer to the board hardware user manuals to see what 138c2ecf20Sopenharmony_ci features are present) 148c2ecf20Sopenharmony_ci - Watchdog Timer 158c2ecf20Sopenharmony_ci - GPIO 168c2ecf20Sopenharmony_ci - Pushbutton controller 178c2ecf20Sopenharmony_ci - Hardware monitor with ADC's for temperature and voltage rails and 188c2ecf20Sopenharmony_ci fan controller 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_cimaintainers: 218c2ecf20Sopenharmony_ci - Tim Harvey <tharvey@gateworks.com> 228c2ecf20Sopenharmony_ci - Robert Jones <rjones@gateworks.com> 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciproperties: 258c2ecf20Sopenharmony_ci $nodename: 268c2ecf20Sopenharmony_ci pattern: "gsc@[0-9a-f]{1,2}" 278c2ecf20Sopenharmony_ci compatible: 288c2ecf20Sopenharmony_ci const: gw,gsc 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci reg: 318c2ecf20Sopenharmony_ci description: I2C device address 328c2ecf20Sopenharmony_ci maxItems: 1 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci interrupts: 358c2ecf20Sopenharmony_ci maxItems: 1 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci interrupt-controller: true 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci "#interrupt-cells": 408c2ecf20Sopenharmony_ci const: 1 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci "#address-cells": 438c2ecf20Sopenharmony_ci const: 1 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci "#size-cells": 468c2ecf20Sopenharmony_ci const: 0 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci adc: 498c2ecf20Sopenharmony_ci type: object 508c2ecf20Sopenharmony_ci description: Optional hardware monitoring module 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci properties: 538c2ecf20Sopenharmony_ci compatible: 548c2ecf20Sopenharmony_ci const: gw,gsc-adc 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci "#address-cells": 578c2ecf20Sopenharmony_ci const: 1 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci "#size-cells": 608c2ecf20Sopenharmony_ci const: 0 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci patternProperties: 638c2ecf20Sopenharmony_ci "^channel@[0-9]+$": 648c2ecf20Sopenharmony_ci type: object 658c2ecf20Sopenharmony_ci description: | 668c2ecf20Sopenharmony_ci Properties for a single ADC which can report cooked values 678c2ecf20Sopenharmony_ci (i.e. temperature sensor based on thermister), raw values 688c2ecf20Sopenharmony_ci (i.e. voltage rail with a pre-scaling resistor divider). 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci properties: 718c2ecf20Sopenharmony_ci reg: 728c2ecf20Sopenharmony_ci description: Register of the ADC 738c2ecf20Sopenharmony_ci maxItems: 1 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ci label: 768c2ecf20Sopenharmony_ci description: Name of the ADC input 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci gw,mode: 798c2ecf20Sopenharmony_ci description: | 808c2ecf20Sopenharmony_ci conversion mode: 818c2ecf20Sopenharmony_ci 0 - temperature, in C*10 828c2ecf20Sopenharmony_ci 1 - pre-scaled 24-bit voltage value 838c2ecf20Sopenharmony_ci 2 - scaled voltage based on an optional resistor divider 848c2ecf20Sopenharmony_ci and optional offset 858c2ecf20Sopenharmony_ci 3 - pre-scaled 16-bit voltage value 868c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 878c2ecf20Sopenharmony_ci enum: [0, 1, 2, 3] 888c2ecf20Sopenharmony_ci 898c2ecf20Sopenharmony_ci gw,voltage-divider-ohms: 908c2ecf20Sopenharmony_ci description: Values of resistors for divider on raw ADC input 918c2ecf20Sopenharmony_ci maxItems: 2 928c2ecf20Sopenharmony_ci items: 938c2ecf20Sopenharmony_ci minimum: 1000 948c2ecf20Sopenharmony_ci maximum: 1000000 958c2ecf20Sopenharmony_ci 968c2ecf20Sopenharmony_ci gw,voltage-offset-microvolt: 978c2ecf20Sopenharmony_ci description: | 988c2ecf20Sopenharmony_ci A positive voltage offset to apply to a raw ADC 998c2ecf20Sopenharmony_ci (i.e. to compensate for a diode drop). 1008c2ecf20Sopenharmony_ci minimum: 0 1018c2ecf20Sopenharmony_ci maximum: 1000000 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ci required: 1048c2ecf20Sopenharmony_ci - gw,mode 1058c2ecf20Sopenharmony_ci - reg 1068c2ecf20Sopenharmony_ci - label 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci required: 1098c2ecf20Sopenharmony_ci - compatible 1108c2ecf20Sopenharmony_ci - "#address-cells" 1118c2ecf20Sopenharmony_ci - "#size-cells" 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_cipatternProperties: 1148c2ecf20Sopenharmony_ci "^fan-controller@[0-9a-f]+$": 1158c2ecf20Sopenharmony_ci type: object 1168c2ecf20Sopenharmony_ci description: Optional fan controller 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci properties: 1198c2ecf20Sopenharmony_ci compatible: 1208c2ecf20Sopenharmony_ci const: gw,gsc-fan 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci "#address-cells": 1238c2ecf20Sopenharmony_ci const: 1 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ci "#size-cells": 1268c2ecf20Sopenharmony_ci const: 0 1278c2ecf20Sopenharmony_ci 1288c2ecf20Sopenharmony_ci reg: 1298c2ecf20Sopenharmony_ci description: The fan controller base address 1308c2ecf20Sopenharmony_ci maxItems: 1 1318c2ecf20Sopenharmony_ci 1328c2ecf20Sopenharmony_ci required: 1338c2ecf20Sopenharmony_ci - compatible 1348c2ecf20Sopenharmony_ci - reg 1358c2ecf20Sopenharmony_ci - "#address-cells" 1368c2ecf20Sopenharmony_ci - "#size-cells" 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_cirequired: 1398c2ecf20Sopenharmony_ci - compatible 1408c2ecf20Sopenharmony_ci - reg 1418c2ecf20Sopenharmony_ci - interrupts 1428c2ecf20Sopenharmony_ci - interrupt-controller 1438c2ecf20Sopenharmony_ci - "#interrupt-cells" 1448c2ecf20Sopenharmony_ci - "#address-cells" 1458c2ecf20Sopenharmony_ci - "#size-cells" 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ciadditionalProperties: false 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ciexamples: 1508c2ecf20Sopenharmony_ci - | 1518c2ecf20Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 1528c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 1538c2ecf20Sopenharmony_ci i2c { 1548c2ecf20Sopenharmony_ci #address-cells = <1>; 1558c2ecf20Sopenharmony_ci #size-cells = <0>; 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci gsc@20 { 1588c2ecf20Sopenharmony_ci compatible = "gw,gsc"; 1598c2ecf20Sopenharmony_ci reg = <0x20>; 1608c2ecf20Sopenharmony_ci interrupt-parent = <&gpio1>; 1618c2ecf20Sopenharmony_ci interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 1628c2ecf20Sopenharmony_ci interrupt-controller; 1638c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 1648c2ecf20Sopenharmony_ci #address-cells = <1>; 1658c2ecf20Sopenharmony_ci #size-cells = <0>; 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci adc { 1688c2ecf20Sopenharmony_ci compatible = "gw,gsc-adc"; 1698c2ecf20Sopenharmony_ci #address-cells = <1>; 1708c2ecf20Sopenharmony_ci #size-cells = <0>; 1718c2ecf20Sopenharmony_ci 1728c2ecf20Sopenharmony_ci channel@0 { /* A0: Board Temperature */ 1738c2ecf20Sopenharmony_ci reg = <0x00>; 1748c2ecf20Sopenharmony_ci label = "temp"; 1758c2ecf20Sopenharmony_ci gw,mode = <0>; 1768c2ecf20Sopenharmony_ci }; 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci channel@2 { /* A1: Input Voltage (raw ADC) */ 1798c2ecf20Sopenharmony_ci reg = <0x02>; 1808c2ecf20Sopenharmony_ci label = "vdd_vin"; 1818c2ecf20Sopenharmony_ci gw,mode = <1>; 1828c2ecf20Sopenharmony_ci gw,voltage-divider-ohms = <22100 1000>; 1838c2ecf20Sopenharmony_ci gw,voltage-offset-microvolt = <800000>; 1848c2ecf20Sopenharmony_ci }; 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci channel@b { /* A2: Battery voltage */ 1878c2ecf20Sopenharmony_ci reg = <0x0b>; 1888c2ecf20Sopenharmony_ci label = "vdd_bat"; 1898c2ecf20Sopenharmony_ci gw,mode = <1>; 1908c2ecf20Sopenharmony_ci }; 1918c2ecf20Sopenharmony_ci }; 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci fan-controller@2c { 1948c2ecf20Sopenharmony_ci #address-cells = <1>; 1958c2ecf20Sopenharmony_ci #size-cells = <0>; 1968c2ecf20Sopenharmony_ci compatible = "gw,gsc-fan"; 1978c2ecf20Sopenharmony_ci reg = <0x2c>; 1988c2ecf20Sopenharmony_ci }; 1998c2ecf20Sopenharmony_ci }; 2008c2ecf20Sopenharmony_ci }; 201