mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	iio: adc: cpcap: Add minimal support for CPCAP PMIC ADC
On Motorola phones like droid 4 there is a custom CPCAP PMIC. This PMIC has ADCs that are used for battery charging and USB PHY VBUS and ID pin detection. Unfortunately the only documentation for this ADC seems to be the Motorola mapphone Linux kernel tree. I have tested that reading raw and scaled values works, but I have not used the timed sampling that the ADC seems to support. Let's add a minimal support for it so we can eventually provide IIO channels for the related battery charging and USB PHY drivers. Cc: devicetree@vger.kernel.org Cc: Marcel Partap <mpartap@gmx.net> Cc: Michael Scott <michael.scott@linaro.org> Cc: Sebastian Reichel <sre@kernel.org> Signed-off-by: Tony Lindgren <tony@atomide.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
		
							parent
							
								
									b71244b62b
								
							
						
					
					
						commit
						25ec249632
					
				
					 4 changed files with 1037 additions and 0 deletions
				
			
		
							
								
								
									
										18
									
								
								Documentation/devicetree/bindings/iio/adc/cpcap-adc.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								Documentation/devicetree/bindings/iio/adc/cpcap-adc.txt
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
Motorola CPCAP PMIC ADC binding
 | 
			
		||||
 | 
			
		||||
Required properties:
 | 
			
		||||
- compatible: Should be "motorola,cpcap-adc" or "motorola,mapphone-cpcap-adc"
 | 
			
		||||
- interrupt-parent: The interrupt controller
 | 
			
		||||
- interrupts: The interrupt number for the ADC device
 | 
			
		||||
- interrupt-names: Should be "adcdone"
 | 
			
		||||
- #io-channel-cells: Number of cells in an IIO specifier
 | 
			
		||||
 | 
			
		||||
Example:
 | 
			
		||||
 | 
			
		||||
cpcap_adc: adc {
 | 
			
		||||
	compatible = "motorola,mapphone-cpcap-adc";
 | 
			
		||||
	interrupt-parent = <&cpcap>;
 | 
			
		||||
	interrupts = <8 IRQ_TYPE_NONE>;
 | 
			
		||||
	interrupt-names = "adcdone";
 | 
			
		||||
	#io-channel-cells = <1>;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -195,6 +195,17 @@ config CC10001_ADC
 | 
			
		|||
	  This driver can also be built as a module. If so, the module will be
 | 
			
		||||
	  called cc10001_adc.
 | 
			
		||||
 | 
			
		||||
config CPCAP_ADC
 | 
			
		||||
	tristate "Motorola CPCAP PMIC ADC driver"
 | 
			
		||||
	depends on MFD_CPCAP
 | 
			
		||||
	select IIO_BUFFER
 | 
			
		||||
	select IIO_TRIGGERED_BUFFER
 | 
			
		||||
	help
 | 
			
		||||
	  Say yes here to build support for Motorola CPCAP PMIC ADC.
 | 
			
		||||
 | 
			
		||||
	  This driver can also be built as a module. If so, the module will be
 | 
			
		||||
	  called cpcap-adc.
 | 
			
		||||
 | 
			
		||||
config DA9150_GPADC
 | 
			
		||||
	tristate "Dialog DA9150 GPADC driver support"
 | 
			
		||||
	depends on MFD_DA9150
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,6 +20,7 @@ obj-$(CONFIG_AXP288_ADC) += axp288_adc.o
 | 
			
		|||
obj-$(CONFIG_BCM_IPROC_ADC) += bcm_iproc_adc.o
 | 
			
		||||
obj-$(CONFIG_BERLIN2_ADC) += berlin2-adc.o
 | 
			
		||||
obj-$(CONFIG_CC10001_ADC) += cc10001_adc.o
 | 
			
		||||
obj-$(CONFIG_CPCAP_ADC) += cpcap-adc.o
 | 
			
		||||
obj-$(CONFIG_DA9150_GPADC) += da9150-gpadc.o
 | 
			
		||||
obj-$(CONFIG_ENVELOPE_DETECTOR) += envelope-detector.o
 | 
			
		||||
obj-$(CONFIG_EXYNOS_ADC) += exynos_adc.o
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1007
									
								
								drivers/iio/adc/cpcap-adc.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1007
									
								
								drivers/iio/adc/cpcap-adc.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
		Loading…
	
		Reference in a new issue