Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dt-bindings: iio: adc: adding MCP3564 ADC

This is the device tree schema for iio driver for
Microchip family of 153.6 ksps, Low-Noise 16/24-Bit
Delta-Sigma ADCs with an SPI interface (Microchip's
MCP3461, MCP3462, MCP3464, MCP3461R, MCP3462R,
MCP3464R, MCP3561, MCP3562, MCP3564, MCP3561R,
MCP3562R and MCP3564R analog to digital converters).

Signed-off-by: Marius Cristea <marius.cristea@microchip.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20230829154133.40716-2-marius.cristea@microchip.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Marius Cristea and committed by
Jonathan Cameron
df2ece7a 733e0fed

+205
+205
Documentation/devicetree/bindings/iio/adc/microchip,mcp3564.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/iio/adc/microchip,mcp3564.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Microchip MCP346X and MCP356X ADC Family 8 + 9 + maintainers: 10 + - Marius Cristea <marius.cristea@microchip.com> 11 + 12 + description: | 13 + Bindings for the Microchip family of 153.6 ksps, Low-Noise 16/24-Bit 14 + Delta-Sigma ADCs with an SPI interface. Datasheet can be found here: 15 + Datasheet for MCP3561, MCP3562, MCP3564 can be found here: 16 + https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/MCP3561-2-4-Family-Data-Sheet-DS20006181C.pdf 17 + Datasheet for MCP3561R, MCP3562R, MCP3564R can be found here: 18 + https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP3561_2_4R-Data-Sheet-DS200006391C.pdf 19 + Datasheet for MCP3461, MCP3462, MCP3464 can be found here: 20 + https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP3461-2-4-Two-Four-Eight-Channel-153.6-ksps-Low-Noise-16-Bit-Delta-Sigma-ADC-Data-Sheet-20006180D.pdf 21 + Datasheet for MCP3461R, MCP3462R, MCP3464R can be found here: 22 + https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP3461-2-4R-Family-Data-Sheet-DS20006404C.pdf 23 + 24 + properties: 25 + compatible: 26 + enum: 27 + - microchip,mcp3461 28 + - microchip,mcp3462 29 + - microchip,mcp3464 30 + - microchip,mcp3461r 31 + - microchip,mcp3462r 32 + - microchip,mcp3464r 33 + - microchip,mcp3561 34 + - microchip,mcp3562 35 + - microchip,mcp3564 36 + - microchip,mcp3561r 37 + - microchip,mcp3562r 38 + - microchip,mcp3564r 39 + 40 + reg: 41 + maxItems: 1 42 + 43 + spi-max-frequency: 44 + maximum: 20000000 45 + 46 + spi-cpha: true 47 + 48 + spi-cpol: true 49 + 50 + vdd-supply: true 51 + 52 + avdd-supply: true 53 + 54 + clocks: 55 + description: 56 + Phandle and clock identifier for external sampling clock. 57 + If not specified, the internal crystal oscillator will be used. 58 + maxItems: 1 59 + 60 + interrupts: 61 + description: IRQ line of the ADC 62 + maxItems: 1 63 + 64 + drive-open-drain: 65 + description: 66 + Whether to drive the IRQ signal as push-pull (default) or open-drain. Note 67 + that the device requires this pin to become "high", otherwise it will stop 68 + converting. 69 + type: boolean 70 + 71 + vref-supply: 72 + description: 73 + Some devices have a specific reference voltage supplied on a different 74 + pin to the other supplies. Needed to be able to establish channel scaling 75 + unless there is also an internal reference available (e.g. mcp3564r). In 76 + case of "r" devices (e. g. mcp3564r), if it does not exists the internal 77 + reference will be used. 78 + 79 + microchip,hw-device-address: 80 + $ref: /schemas/types.yaml#/definitions/uint32 81 + minimum: 0 82 + maximum: 3 83 + description: 84 + The address is set on a per-device basis by fuses in the factory, 85 + configured on request. If not requested, the fuses are set for 0x1. 86 + The device address is part of the device markings to avoid 87 + potential confusion. This address is coded on two bits, so four possible 88 + addresses are available when multiple devices are present on the same 89 + SPI bus with only one Chip Select line for all devices. 90 + Each device communication starts by a CS falling edge, followed by the 91 + clocking of the device address (BITS[7:6] - top two bits of COMMAND BYTE 92 + which is first one on the wire). 93 + 94 + "#io-channel-cells": 95 + const: 1 96 + 97 + "#address-cells": 98 + const: 1 99 + 100 + "#size-cells": 101 + const: 0 102 + 103 + patternProperties: 104 + "^channel@([0-9]|([1-7][0-9]))$": 105 + $ref: adc.yaml 106 + type: object 107 + unevaluatedProperties: false 108 + description: Represents the external channels which are connected to the ADC. 109 + 110 + properties: 111 + reg: 112 + description: The channel number in single-ended and differential mode. 113 + minimum: 0 114 + maximum: 79 115 + 116 + required: 117 + - reg 118 + 119 + dependencies: 120 + spi-cpol: [ spi-cpha ] 121 + spi-cpha: [ spi-cpol ] 122 + 123 + required: 124 + - compatible 125 + - reg 126 + - microchip,hw-device-address 127 + - spi-max-frequency 128 + 129 + allOf: 130 + - $ref: /schemas/spi/spi-peripheral-props.yaml# 131 + - # External vref, no internal reference 132 + if: 133 + properties: 134 + compatible: 135 + contains: 136 + enum: 137 + - microchip,mcp3461 138 + - microchip,mcp3462 139 + - microchip,mcp3464 140 + - microchip,mcp3561 141 + - microchip,mcp3562 142 + - microchip,mcp3564 143 + then: 144 + required: 145 + - vref-supply 146 + 147 + unevaluatedProperties: false 148 + 149 + examples: 150 + - | 151 + spi { 152 + #address-cells = <1>; 153 + #size-cells = <0>; 154 + 155 + adc@0 { 156 + compatible = "microchip,mcp3564r"; 157 + reg = <0>; 158 + vref-supply = <&vref_reg>; 159 + spi-cpha; 160 + spi-cpol; 161 + spi-max-frequency = <10000000>; 162 + microchip,hw-device-address = <1>; 163 + 164 + #address-cells = <1>; 165 + #size-cells = <0>; 166 + 167 + channel@0 { 168 + /* CH0 to AGND */ 169 + reg = <0>; 170 + label = "CH0"; 171 + }; 172 + 173 + channel@1 { 174 + /* CH1 to AGND */ 175 + reg = <1>; 176 + label = "CH1"; 177 + }; 178 + 179 + /* diff-channels */ 180 + channel@11 { 181 + reg = <11>; 182 + 183 + /* CN0, CN1 */ 184 + diff-channels = <0 1>; 185 + label = "CH0_CH1"; 186 + }; 187 + 188 + channel@22 { 189 + reg = <0x22>; 190 + 191 + /* CN1, CN2 */ 192 + diff-channels = <1 2>; 193 + label = "CH1_CH3"; 194 + }; 195 + 196 + channel@23 { 197 + reg = <0x23>; 198 + 199 + /* CN1, CN3 */ 200 + diff-channels = <1 3>; 201 + label = "CH1_CH3"; 202 + }; 203 + }; 204 + }; 205 + ...