Lines Matching refs:pchild
362 static int envctrl_read_cpu_info(int cpu, struct i2c_child_t *pchild, in envctrl_read_cpu_info() argument
371 if (pchild->mon_type[i] == mon_type) { in envctrl_read_cpu_info()
382 data = envctrl_i2c_read_8591((unsigned char)pchild->addr, in envctrl_read_cpu_info()
383 (unsigned char)pchild->chnl_array[i].chnl_no); in envctrl_read_cpu_info()
386 tbl = pchild->tables + pchild->tblprop_array[i].offset; in envctrl_read_cpu_info()
388 return envctrl_i2c_data_translate(data, pchild->tblprop_array[i].type, in envctrl_read_cpu_info()
389 pchild->tblprop_array[i].scale, in envctrl_read_cpu_info()
397 static int envctrl_read_noncpu_info(struct i2c_child_t *pchild, in envctrl_read_noncpu_info() argument
405 if (pchild->mon_type[i] == mon_type) in envctrl_read_noncpu_info()
413 data = envctrl_i2c_read_8591((unsigned char)pchild->addr, in envctrl_read_noncpu_info()
414 (unsigned char)pchild->chnl_array[i].chnl_no); in envctrl_read_noncpu_info()
417 tbl = pchild->tables + pchild->tblprop_array[i].offset; in envctrl_read_noncpu_info()
419 return envctrl_i2c_data_translate(data, pchild->tblprop_array[i].type, in envctrl_read_noncpu_info()
420 pchild->tblprop_array[i].scale, in envctrl_read_noncpu_info()
427 static int envctrl_i2c_fan_status(struct i2c_child_t *pchild, in envctrl_i2c_fan_status() argument
434 tmp = data & pchild->fan_mask; in envctrl_i2c_fan_status()
436 if (tmp == pchild->fan_mask) { in envctrl_i2c_fan_status()
450 if (pchild->fan_mask & chnls_mask[i]) { in envctrl_i2c_fan_status()
466 static int envctrl_i2c_globaladdr(struct i2c_child_t *pchild, in envctrl_i2c_globaladdr() argument
491 static unsigned char envctrl_i2c_voltage_status(struct i2c_child_t *pchild, in envctrl_i2c_voltage_status() argument
498 tmp = data & pchild->voltage_mask; in envctrl_i2c_voltage_status()
501 if (tmp == pchild->voltage_mask) { in envctrl_i2c_voltage_status()
510 if (pchild->voltage_mask & chnls_mask[i]) { in envctrl_i2c_voltage_status()
539 struct i2c_child_t *pchild; in envctrl_read() local
570 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_MTHRBDTEMP_MON))) in envctrl_read()
572 ret = envctrl_read_noncpu_info(pchild, ENVCTRL_MTHRBDTEMP_MON, data); in envctrl_read()
578 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_CPUTEMP_MON))) in envctrl_read()
580 ret = envctrl_read_cpu_info(read_cpu, pchild, ENVCTRL_CPUTEMP_MON, data); in envctrl_read()
588 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_CPUVOLTAGE_MON))) in envctrl_read()
590 ret = envctrl_read_cpu_info(read_cpu, pchild, ENVCTRL_CPUVOLTAGE_MON, data); in envctrl_read()
598 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_SCSITEMP_MON))) in envctrl_read()
600 ret = envctrl_read_noncpu_info(pchild, ENVCTRL_SCSITEMP_MON, data); in envctrl_read()
606 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_ETHERTEMP_MON))) in envctrl_read()
608 ret = envctrl_read_noncpu_info(pchild, ENVCTRL_ETHERTEMP_MON, data); in envctrl_read()
614 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_FANSTAT_MON))) in envctrl_read()
616 data[0] = envctrl_i2c_read_8574(pchild->addr); in envctrl_read()
617 ret = envctrl_i2c_fan_status(pchild,data[0], data); in envctrl_read()
623 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_GLOBALADDR_MON))) in envctrl_read()
625 data[0] = envctrl_i2c_read_8574(pchild->addr); in envctrl_read()
626 ret = envctrl_i2c_globaladdr(pchild, data[0], data); in envctrl_read()
632 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_VOLTAGESTAT_MON))) in envctrl_read()
634 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_GLOBALADDR_MON))) in envctrl_read()
636 data[0] = envctrl_i2c_read_8574(pchild->addr); in envctrl_read()
637 ret = envctrl_i2c_voltage_status(pchild, data[0], data); in envctrl_read()
731 static void envctrl_set_mon(struct i2c_child_t *pchild, in envctrl_set_mon() argument
744 pchild->mon_type[chnl_no] = ENVCTRL_CPUTEMP_MON; in envctrl_set_mon()
750 pchild->mon_type[chnl_no] = ENVCTRL_CPUVOLTAGE_MON; in envctrl_set_mon()
753 pchild->mon_type[chnl_no] = ENVCTRL_MTHRBDTEMP_MON; in envctrl_set_mon()
756 pchild->mon_type[chnl_no] = ENVCTRL_SCSITEMP_MON; in envctrl_set_mon()
759 pchild->mon_type[chnl_no] = ENVCTRL_ETHERTEMP_MON; in envctrl_set_mon()
766 static void envctrl_init_adc(struct i2c_child_t *pchild, struct device_node *dp) in envctrl_init_adc() argument
777 envctrl_set_mon(pchild, pos, i++); in envctrl_init_adc()
795 static void envctrl_init_fanstat(struct i2c_child_t *pchild) in envctrl_init_fanstat() argument
800 for (i = 0; i < pchild->total_chnls; i++) in envctrl_init_fanstat()
801 pchild->fan_mask |= chnls_mask[(pchild->chnl_array[i]).chnl_no]; in envctrl_init_fanstat()
806 pchild->mon_type[0] = ENVCTRL_FANSTAT_MON; in envctrl_init_fanstat()
812 static void envctrl_init_globaladdr(struct i2c_child_t *pchild) in envctrl_init_globaladdr() argument
829 for (i = 0; i < pchild->total_chnls; i++) { in envctrl_init_globaladdr()
830 if (PCF8584_VOLTAGE_TYPE == pchild->chnl_array[i].type) { in envctrl_init_globaladdr()
831 pchild->voltage_mask |= chnls_mask[i]; in envctrl_init_globaladdr()
839 pchild->mon_type[0] = ENVCTRL_GLOBALADDR_MON; in envctrl_init_globaladdr()
843 static void envctrl_init_voltage_status(struct i2c_child_t *pchild) in envctrl_init_voltage_status() argument
848 for (i = 0; i < pchild->total_chnls; i++) in envctrl_init_voltage_status()
849 pchild->voltage_mask |= chnls_mask[(pchild->chnl_array[i]).chnl_no]; in envctrl_init_voltage_status()
854 pchild->mon_type[0] = ENVCTRL_VOLTAGESTAT_MON; in envctrl_init_voltage_status()
861 struct i2c_child_t *pchild) in envctrl_init_i2c_child() argument
868 memcpy(&pchild->addr, pval, len); in envctrl_init_i2c_child()
873 memcpy(pchild->tblprop_array, pval, len); in envctrl_init_i2c_child()
874 pchild->total_tbls = len / sizeof(struct pcf8584_tblprop); in envctrl_init_i2c_child()
875 for (i = 0; i < pchild->total_tbls; i++) { in envctrl_init_i2c_child()
876 if ((pchild->tblprop_array[i].size + pchild->tblprop_array[i].offset) > tbls_size) { in envctrl_init_i2c_child()
877 tbls_size = pchild->tblprop_array[i].size + pchild->tblprop_array[i].offset; in envctrl_init_i2c_child()
881 pchild->tables = kmalloc(tbls_size, GFP_KERNEL); in envctrl_init_i2c_child()
882 if (pchild->tables == NULL){ in envctrl_init_i2c_child()
891 memcpy(pchild->tables, pval, len); in envctrl_init_i2c_child()
901 if (ENVCTRL_CPCI_IGNORED_NODE == pchild->addr) { in envctrl_init_i2c_child()
908 pchild->mon_type[len] = ENVCTRL_NOMON; in envctrl_init_i2c_child()
918 memcpy(pchild->chnl_array, pval, len); in envctrl_init_i2c_child()
919 pchild->total_chnls = len / sizeof(struct pcf8584_channel); in envctrl_init_i2c_child()
921 for (i = 0; i < pchild->total_chnls; i++) { in envctrl_init_i2c_child()
922 switch (pchild->chnl_array[i].type) { in envctrl_init_i2c_child()
924 envctrl_init_adc(pchild, dp); in envctrl_init_i2c_child()
928 envctrl_init_globaladdr(pchild); in envctrl_init_i2c_child()
929 i = pchild->total_chnls; in envctrl_init_i2c_child()
933 envctrl_init_fanstat(pchild); in envctrl_init_i2c_child()
934 i = pchild->total_chnls; in envctrl_init_i2c_child()
938 if (pchild->i2ctype == I2C_ADC) { in envctrl_init_i2c_child()
939 envctrl_init_adc(pchild,dp); in envctrl_init_i2c_child()
941 envctrl_init_voltage_status(pchild); in envctrl_init_i2c_child()
943 i = pchild->total_chnls; in envctrl_init_i2c_child()