* AT91's Analog to Digital Converter (ADC) Required properties: - compatible: Should be "atmel,<chip>-adc" <chip> can be "at91sam9260", "at91sam9g45" or "at91sam9x5" - reg: Should contain ADC registers location and length - interrupts: Should contain the IRQ line for the ADC - clock-names: tuple listing input clock names. Required elements: "adc_clk", "adc_op_clk". - clocks: phandles to input clocks. - atmel,adc-channels-used: Bitmask of the channels muxed and enabled for this device - atmel,adc-startup-time: Startup Time of the ADC in microseconds as defined in the datasheet - atmel,adc-vref: Reference voltage in millivolts for the conversions - atmel,adc-res: List of resolutions in bits supported by the ADC. List size must be two at least. - atmel,adc-res-names: Contains one identifier string for each resolution in atmel,adc-res property. "lowres" and "highres" identifiers are required. Optional properties: - atmel,adc-use-external-triggers: Boolean to enable the external triggers - atmel,adc-use-res: String corresponding to an identifier from atmel,adc-res-names property. If not specified, the highest resolution will be used. - atmel,adc-sleep-mode: Boolean to enable sleep mode when no conversion - atmel,adc-sample-hold-time: Sample and Hold Time in microseconds - atmel,adc-ts-wires: Number of touchscreen wires. Should be 4 or 5. If this value is set, then the adc driver will enable touchscreen support. NOTE: when adc touchscreen is enabled, the adc hardware trigger will be disabled. Since touchscreen will occupy the trigger register. - atmel,adc-ts-pressure-threshold: a pressure threshold for touchscreen. It makes touch detection more precise. Optional trigger Nodes: - Required properties: * trigger-name: Name of the trigger exposed to the user * trigger-value: Value to put in the Trigger register to activate this trigger - Optional properties: * trigger-external: Is the trigger an external trigger? Examples: adc0: adc@fffb0000 { #address-cells = <1>; #size-cells = <0>; compatible = "atmel,at91sam9260-adc"; reg = <0xfffb0000 0x100>; interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>; clocks = <&adc_clk>, <&adc_op_clk>; clock-names = "adc_clk", "adc_op_clk"; atmel,adc-channels-used = <0xff>; atmel,adc-startup-time = <40>; atmel,adc-use-external-triggers; atmel,adc-vref = <3300>; atmel,adc-res = <8 10>; atmel,adc-res-names = "lowres", "highres"; atmel,adc-use-res = "lowres"; trigger0 { trigger-name = "external-rising"; trigger-value = <0x1>; trigger-external; }; trigger1 { trigger-name = "external-falling"; trigger-value = <0x2>; trigger-external; }; trigger2 { trigger-name = "external-any"; trigger-value = <0x3>; trigger-external; }; trigger3 { trigger-name = "continuous"; trigger-value = <0x6>; }; }; |