1*4882a593SmuzhiyunKernel driver da9052 2*4882a593Smuzhiyun==================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunSupported chips: 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun * Dialog Semiconductors DA9052-BC and DA9053-AA/Bx PMICs 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun Prefix: 'da9052' 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun Datasheet: Datasheet is not publicly available. 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunAuthors: David Dajun Chen <dchen@diasemi.com> 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunDescription 15*4882a593Smuzhiyun----------- 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunThe DA9052/53 provides an Analogue to Digital Converter (ADC) with 10 bits 18*4882a593Smuzhiyunresolution and track and hold circuitry combined with an analogue input 19*4882a593Smuzhiyunmultiplexer. The analogue input multiplexer will allow conversion of up to 10 20*4882a593Smuzhiyundifferent inputs. The track and hold circuit ensures stable input voltages at 21*4882a593Smuzhiyunthe input of the ADC during the conversion. 22*4882a593Smuzhiyun 23*4882a593SmuzhiyunThe ADC is used to measure the following inputs: 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun========= =================================================================== 26*4882a593SmuzhiyunChannel 0 VDDOUT - measurement of the system voltage 27*4882a593SmuzhiyunChannel 1 ICH - internal battery charger current measurement 28*4882a593SmuzhiyunChannel 2 TBAT - output from the battery NTC 29*4882a593SmuzhiyunChannel 3 VBAT - measurement of the battery voltage 30*4882a593SmuzhiyunChannel 4 ADC_IN4 - high impedance input (0 - 2.5V) 31*4882a593SmuzhiyunChannel 5 ADC_IN5 - high impedance input (0 - 2.5V) 32*4882a593SmuzhiyunChannel 6 ADC_IN6 - high impedance input (0 - 2.5V) 33*4882a593SmuzhiyunChannel 7 XY - TSI interface to measure the X and Y voltage of the touch 34*4882a593Smuzhiyun screen resistive potentiometers 35*4882a593SmuzhiyunChannel 8 Internal Tjunc. - sense (internal temp. sensor) 36*4882a593SmuzhiyunChannel 9 VBBAT - measurement of the backup battery voltage 37*4882a593Smuzhiyun========= =================================================================== 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunBy using sysfs attributes we can measure the system voltage VDDOUT, the battery 40*4882a593Smuzhiyuncharging current ICH, battery temperature TBAT, battery junction temperature 41*4882a593SmuzhiyunTJUNC, battery voltage VBAT and the back up battery voltage VBBAT. 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunVoltage Monitoring 44*4882a593Smuzhiyun------------------ 45*4882a593Smuzhiyun 46*4882a593SmuzhiyunVoltages are sampled by a 10 bit ADC. 47*4882a593Smuzhiyun 48*4882a593SmuzhiyunThe battery voltage is calculated as: 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun Milli volt = ((ADC value * 1000) / 512) + 2500 51*4882a593Smuzhiyun 52*4882a593SmuzhiyunThe backup battery voltage is calculated as: 53*4882a593Smuzhiyun 54*4882a593Smuzhiyun Milli volt = (ADC value * 2500) / 512; 55*4882a593Smuzhiyun 56*4882a593SmuzhiyunThe voltages on ADC channels 4, 5 and 6 are calculated as: 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun Milli volt = (ADC value * 2500) / 1023 59*4882a593Smuzhiyun 60*4882a593SmuzhiyunTemperature Monitoring 61*4882a593Smuzhiyun---------------------- 62*4882a593Smuzhiyun 63*4882a593SmuzhiyunTemperatures are sampled by a 10 bit ADC. Junction and battery temperatures 64*4882a593Smuzhiyunare monitored by the ADC channels. 65*4882a593Smuzhiyun 66*4882a593SmuzhiyunThe junction temperature is calculated: 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun Degrees celsius = 1.708 * (TJUNC_RES - T_OFFSET) - 108.8 69*4882a593Smuzhiyun 70*4882a593SmuzhiyunThe junction temperature attribute is supported by the driver. 71*4882a593Smuzhiyun 72*4882a593SmuzhiyunThe battery temperature is calculated: 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun Degree Celsius = 1 / (t1 + 1/298) - 273 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunwhere t1 = (1/B)* ln(( ADCval * 2.5)/(R25*ITBAT*255)) 77*4882a593Smuzhiyun 78*4882a593SmuzhiyunDefault values of R25, B, ITBAT are 10e3, 3380 and 50e-6 respectively. 79