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