1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: Gateworks System Controller 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotdescription: | 10c66ec88fSEmmanuel Vadot The Gateworks System Controller (GSC) is a device present across various 11c66ec88fSEmmanuel Vadot Gateworks product families that provides a set of system related features 12c66ec88fSEmmanuel Vadot such as the following (refer to the board hardware user manuals to see what 13c66ec88fSEmmanuel Vadot features are present) 14c66ec88fSEmmanuel Vadot - Watchdog Timer 15c66ec88fSEmmanuel Vadot - GPIO 16c66ec88fSEmmanuel Vadot - Pushbutton controller 17c66ec88fSEmmanuel Vadot - Hardware monitor with ADC's for temperature and voltage rails and 18c66ec88fSEmmanuel Vadot fan controller 19c66ec88fSEmmanuel Vadot 20c66ec88fSEmmanuel Vadotmaintainers: 21c66ec88fSEmmanuel Vadot - Tim Harvey <tharvey@gateworks.com> 22c66ec88fSEmmanuel Vadot 23c66ec88fSEmmanuel Vadotproperties: 24c66ec88fSEmmanuel Vadot $nodename: 25c66ec88fSEmmanuel Vadot pattern: "gsc@[0-9a-f]{1,2}" 26c66ec88fSEmmanuel Vadot compatible: 27c66ec88fSEmmanuel Vadot const: gw,gsc 28c66ec88fSEmmanuel Vadot 29c66ec88fSEmmanuel Vadot reg: 30c66ec88fSEmmanuel Vadot description: I2C device address 31c66ec88fSEmmanuel Vadot maxItems: 1 32c66ec88fSEmmanuel Vadot 33c66ec88fSEmmanuel Vadot interrupts: 34c66ec88fSEmmanuel Vadot maxItems: 1 35c66ec88fSEmmanuel Vadot 36c66ec88fSEmmanuel Vadot interrupt-controller: true 37c66ec88fSEmmanuel Vadot 38c66ec88fSEmmanuel Vadot "#interrupt-cells": 39c66ec88fSEmmanuel Vadot const: 1 40c66ec88fSEmmanuel Vadot 41c66ec88fSEmmanuel Vadot "#address-cells": 42c66ec88fSEmmanuel Vadot const: 1 43c66ec88fSEmmanuel Vadot 44c66ec88fSEmmanuel Vadot "#size-cells": 45c66ec88fSEmmanuel Vadot const: 0 46c66ec88fSEmmanuel Vadot 47c66ec88fSEmmanuel Vadot adc: 48c66ec88fSEmmanuel Vadot type: object 49*7ef62cebSEmmanuel Vadot additionalProperties: false 50c66ec88fSEmmanuel Vadot description: Optional hardware monitoring module 51c66ec88fSEmmanuel Vadot 52c66ec88fSEmmanuel Vadot properties: 53c66ec88fSEmmanuel Vadot compatible: 54c66ec88fSEmmanuel Vadot const: gw,gsc-adc 55c66ec88fSEmmanuel Vadot 56c66ec88fSEmmanuel Vadot "#address-cells": 57c66ec88fSEmmanuel Vadot const: 1 58c66ec88fSEmmanuel Vadot 59c66ec88fSEmmanuel Vadot "#size-cells": 60c66ec88fSEmmanuel Vadot const: 0 61c66ec88fSEmmanuel Vadot 62c66ec88fSEmmanuel Vadot patternProperties: 63*7ef62cebSEmmanuel Vadot "^channel@[0-9a-f]+$": 64c66ec88fSEmmanuel Vadot type: object 65*7ef62cebSEmmanuel Vadot additionalProperties: false 66c66ec88fSEmmanuel Vadot description: | 67c66ec88fSEmmanuel Vadot Properties for a single ADC which can report cooked values 68c66ec88fSEmmanuel Vadot (i.e. temperature sensor based on thermister), raw values 69c66ec88fSEmmanuel Vadot (i.e. voltage rail with a pre-scaling resistor divider). 70c66ec88fSEmmanuel Vadot 71c66ec88fSEmmanuel Vadot properties: 72c66ec88fSEmmanuel Vadot reg: 73c66ec88fSEmmanuel Vadot description: Register of the ADC 74c66ec88fSEmmanuel Vadot maxItems: 1 75c66ec88fSEmmanuel Vadot 76c66ec88fSEmmanuel Vadot label: 77c66ec88fSEmmanuel Vadot description: Name of the ADC input 78c66ec88fSEmmanuel Vadot 79c66ec88fSEmmanuel Vadot gw,mode: 80c66ec88fSEmmanuel Vadot description: | 81c66ec88fSEmmanuel Vadot conversion mode: 82c66ec88fSEmmanuel Vadot 0 - temperature, in C*10 83c66ec88fSEmmanuel Vadot 1 - pre-scaled 24-bit voltage value 84c66ec88fSEmmanuel Vadot 2 - scaled voltage based on an optional resistor divider 85c66ec88fSEmmanuel Vadot and optional offset 86c66ec88fSEmmanuel Vadot 3 - pre-scaled 16-bit voltage value 875def4c47SEmmanuel Vadot 4 - fan tach input to report RPM's 88c66ec88fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 895def4c47SEmmanuel Vadot enum: [0, 1, 2, 3, 4] 90c66ec88fSEmmanuel Vadot 91c66ec88fSEmmanuel Vadot gw,voltage-divider-ohms: 92c66ec88fSEmmanuel Vadot description: Values of resistors for divider on raw ADC input 93c66ec88fSEmmanuel Vadot maxItems: 2 94c66ec88fSEmmanuel Vadot items: 95c66ec88fSEmmanuel Vadot minimum: 1000 96c66ec88fSEmmanuel Vadot maximum: 1000000 97c66ec88fSEmmanuel Vadot 98c66ec88fSEmmanuel Vadot gw,voltage-offset-microvolt: 99c66ec88fSEmmanuel Vadot description: | 100c66ec88fSEmmanuel Vadot A positive voltage offset to apply to a raw ADC 101c66ec88fSEmmanuel Vadot (i.e. to compensate for a diode drop). 102c66ec88fSEmmanuel Vadot minimum: 0 103c66ec88fSEmmanuel Vadot maximum: 1000000 104c66ec88fSEmmanuel Vadot 105c66ec88fSEmmanuel Vadot required: 106c66ec88fSEmmanuel Vadot - gw,mode 107c66ec88fSEmmanuel Vadot - reg 108c66ec88fSEmmanuel Vadot - label 109c66ec88fSEmmanuel Vadot 110c66ec88fSEmmanuel Vadot required: 111c66ec88fSEmmanuel Vadot - compatible 112c66ec88fSEmmanuel Vadot - "#address-cells" 113c66ec88fSEmmanuel Vadot - "#size-cells" 114c66ec88fSEmmanuel Vadot 115c66ec88fSEmmanuel VadotpatternProperties: 116c66ec88fSEmmanuel Vadot "^fan-controller@[0-9a-f]+$": 117c66ec88fSEmmanuel Vadot type: object 118*7ef62cebSEmmanuel Vadot additionalProperties: false 119c66ec88fSEmmanuel Vadot description: Optional fan controller 120c66ec88fSEmmanuel Vadot 121c66ec88fSEmmanuel Vadot properties: 122c66ec88fSEmmanuel Vadot compatible: 123c66ec88fSEmmanuel Vadot const: gw,gsc-fan 124c66ec88fSEmmanuel Vadot 125c66ec88fSEmmanuel Vadot reg: 126c66ec88fSEmmanuel Vadot description: The fan controller base address 127c66ec88fSEmmanuel Vadot maxItems: 1 128c66ec88fSEmmanuel Vadot 129c66ec88fSEmmanuel Vadot required: 130c66ec88fSEmmanuel Vadot - compatible 131c66ec88fSEmmanuel Vadot - reg 132c66ec88fSEmmanuel Vadot 133c66ec88fSEmmanuel Vadotrequired: 134c66ec88fSEmmanuel Vadot - compatible 135c66ec88fSEmmanuel Vadot - reg 136c66ec88fSEmmanuel Vadot - interrupts 137c66ec88fSEmmanuel Vadot - interrupt-controller 138c66ec88fSEmmanuel Vadot - "#interrupt-cells" 139c66ec88fSEmmanuel Vadot - "#address-cells" 140c66ec88fSEmmanuel Vadot - "#size-cells" 141c66ec88fSEmmanuel Vadot 1426be33864SEmmanuel VadotadditionalProperties: false 1436be33864SEmmanuel Vadot 144c66ec88fSEmmanuel Vadotexamples: 145c66ec88fSEmmanuel Vadot - | 146c66ec88fSEmmanuel Vadot #include <dt-bindings/gpio/gpio.h> 1476be33864SEmmanuel Vadot #include <dt-bindings/interrupt-controller/irq.h> 148c66ec88fSEmmanuel Vadot i2c { 149c66ec88fSEmmanuel Vadot #address-cells = <1>; 150c66ec88fSEmmanuel Vadot #size-cells = <0>; 151c66ec88fSEmmanuel Vadot 152c66ec88fSEmmanuel Vadot gsc@20 { 153c66ec88fSEmmanuel Vadot compatible = "gw,gsc"; 154c66ec88fSEmmanuel Vadot reg = <0x20>; 155c66ec88fSEmmanuel Vadot interrupt-parent = <&gpio1>; 1566be33864SEmmanuel Vadot interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 157c66ec88fSEmmanuel Vadot interrupt-controller; 158c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 159c66ec88fSEmmanuel Vadot #address-cells = <1>; 160c66ec88fSEmmanuel Vadot #size-cells = <0>; 161c66ec88fSEmmanuel Vadot 162c66ec88fSEmmanuel Vadot adc { 163c66ec88fSEmmanuel Vadot compatible = "gw,gsc-adc"; 164c66ec88fSEmmanuel Vadot #address-cells = <1>; 165c66ec88fSEmmanuel Vadot #size-cells = <0>; 166c66ec88fSEmmanuel Vadot 167c66ec88fSEmmanuel Vadot channel@0 { /* A0: Board Temperature */ 168c66ec88fSEmmanuel Vadot reg = <0x00>; 169c66ec88fSEmmanuel Vadot label = "temp"; 170c66ec88fSEmmanuel Vadot gw,mode = <0>; 171c66ec88fSEmmanuel Vadot }; 172c66ec88fSEmmanuel Vadot 173c66ec88fSEmmanuel Vadot channel@2 { /* A1: Input Voltage (raw ADC) */ 174c66ec88fSEmmanuel Vadot reg = <0x02>; 175c66ec88fSEmmanuel Vadot label = "vdd_vin"; 176c66ec88fSEmmanuel Vadot gw,mode = <1>; 177c66ec88fSEmmanuel Vadot gw,voltage-divider-ohms = <22100 1000>; 178c66ec88fSEmmanuel Vadot gw,voltage-offset-microvolt = <800000>; 179c66ec88fSEmmanuel Vadot }; 180c66ec88fSEmmanuel Vadot 181c66ec88fSEmmanuel Vadot channel@b { /* A2: Battery voltage */ 182c66ec88fSEmmanuel Vadot reg = <0x0b>; 183c66ec88fSEmmanuel Vadot label = "vdd_bat"; 184c66ec88fSEmmanuel Vadot gw,mode = <1>; 185c66ec88fSEmmanuel Vadot }; 186c66ec88fSEmmanuel Vadot }; 187c66ec88fSEmmanuel Vadot 188c66ec88fSEmmanuel Vadot fan-controller@2c { 189c66ec88fSEmmanuel Vadot compatible = "gw,gsc-fan"; 190c66ec88fSEmmanuel Vadot reg = <0x2c>; 191c66ec88fSEmmanuel Vadot }; 192c66ec88fSEmmanuel Vadot }; 193c66ec88fSEmmanuel Vadot }; 194