Lines Matching refs:pchild
363 static int envctrl_read_cpu_info(int cpu, struct i2c_child_t *pchild, in envctrl_read_cpu_info() argument
372 if (pchild->mon_type[i] == mon_type) { in envctrl_read_cpu_info()
383 data = envctrl_i2c_read_8591((unsigned char)pchild->addr, in envctrl_read_cpu_info()
384 (unsigned char)pchild->chnl_array[i].chnl_no); in envctrl_read_cpu_info()
387 tbl = pchild->tables + pchild->tblprop_array[i].offset; in envctrl_read_cpu_info()
389 return envctrl_i2c_data_translate(data, pchild->tblprop_array[i].type, in envctrl_read_cpu_info()
390 pchild->tblprop_array[i].scale, in envctrl_read_cpu_info()
398 static int envctrl_read_noncpu_info(struct i2c_child_t *pchild, in envctrl_read_noncpu_info() argument
406 if (pchild->mon_type[i] == mon_type) in envctrl_read_noncpu_info()
414 data = envctrl_i2c_read_8591((unsigned char)pchild->addr, in envctrl_read_noncpu_info()
415 (unsigned char)pchild->chnl_array[i].chnl_no); in envctrl_read_noncpu_info()
418 tbl = pchild->tables + pchild->tblprop_array[i].offset; in envctrl_read_noncpu_info()
420 return envctrl_i2c_data_translate(data, pchild->tblprop_array[i].type, in envctrl_read_noncpu_info()
421 pchild->tblprop_array[i].scale, in envctrl_read_noncpu_info()
428 static int envctrl_i2c_fan_status(struct i2c_child_t *pchild, in envctrl_i2c_fan_status() argument
435 tmp = data & pchild->fan_mask; in envctrl_i2c_fan_status()
437 if (tmp == pchild->fan_mask) { in envctrl_i2c_fan_status()
451 if (pchild->fan_mask & chnls_mask[i]) { in envctrl_i2c_fan_status()
467 static int envctrl_i2c_globaladdr(struct i2c_child_t *pchild, in envctrl_i2c_globaladdr() argument
492 static unsigned char envctrl_i2c_voltage_status(struct i2c_child_t *pchild, in envctrl_i2c_voltage_status() argument
499 tmp = data & pchild->voltage_mask; in envctrl_i2c_voltage_status()
502 if (tmp == pchild->voltage_mask) { in envctrl_i2c_voltage_status()
511 if (pchild->voltage_mask & chnls_mask[i]) { in envctrl_i2c_voltage_status()
540 struct i2c_child_t *pchild; in envctrl_read() local
571 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_MTHRBDTEMP_MON))) in envctrl_read()
573 ret = envctrl_read_noncpu_info(pchild, ENVCTRL_MTHRBDTEMP_MON, data); in envctrl_read()
579 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_CPUTEMP_MON))) in envctrl_read()
581 ret = envctrl_read_cpu_info(read_cpu, pchild, ENVCTRL_CPUTEMP_MON, data); in envctrl_read()
589 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_CPUVOLTAGE_MON))) in envctrl_read()
591 ret = envctrl_read_cpu_info(read_cpu, pchild, ENVCTRL_CPUVOLTAGE_MON, data); in envctrl_read()
599 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_SCSITEMP_MON))) in envctrl_read()
601 ret = envctrl_read_noncpu_info(pchild, ENVCTRL_SCSITEMP_MON, data); in envctrl_read()
607 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_ETHERTEMP_MON))) in envctrl_read()
609 ret = envctrl_read_noncpu_info(pchild, ENVCTRL_ETHERTEMP_MON, data); in envctrl_read()
615 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_FANSTAT_MON))) in envctrl_read()
617 data[0] = envctrl_i2c_read_8574(pchild->addr); in envctrl_read()
618 ret = envctrl_i2c_fan_status(pchild,data[0], data); in envctrl_read()
624 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_GLOBALADDR_MON))) in envctrl_read()
626 data[0] = envctrl_i2c_read_8574(pchild->addr); in envctrl_read()
627 ret = envctrl_i2c_globaladdr(pchild, data[0], data); in envctrl_read()
633 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_VOLTAGESTAT_MON))) in envctrl_read()
635 if (!(pchild = envctrl_get_i2c_child(ENVCTRL_GLOBALADDR_MON))) in envctrl_read()
637 data[0] = envctrl_i2c_read_8574(pchild->addr); in envctrl_read()
638 ret = envctrl_i2c_voltage_status(pchild, data[0], data); in envctrl_read()
734 static void envctrl_set_mon(struct i2c_child_t *pchild, in envctrl_set_mon() argument
747 pchild->mon_type[chnl_no] = ENVCTRL_CPUTEMP_MON; in envctrl_set_mon()
753 pchild->mon_type[chnl_no] = ENVCTRL_CPUVOLTAGE_MON; in envctrl_set_mon()
756 pchild->mon_type[chnl_no] = ENVCTRL_MTHRBDTEMP_MON; in envctrl_set_mon()
759 pchild->mon_type[chnl_no] = ENVCTRL_SCSITEMP_MON; in envctrl_set_mon()
762 pchild->mon_type[chnl_no] = ENVCTRL_ETHERTEMP_MON; in envctrl_set_mon()
769 static void envctrl_init_adc(struct i2c_child_t *pchild, struct device_node *dp) in envctrl_init_adc() argument
780 envctrl_set_mon(pchild, pos, i++); in envctrl_init_adc()
798 static void envctrl_init_fanstat(struct i2c_child_t *pchild) in envctrl_init_fanstat() argument
803 for (i = 0; i < pchild->total_chnls; i++) in envctrl_init_fanstat()
804 pchild->fan_mask |= chnls_mask[(pchild->chnl_array[i]).chnl_no]; in envctrl_init_fanstat()
809 pchild->mon_type[0] = ENVCTRL_FANSTAT_MON; in envctrl_init_fanstat()
815 static void envctrl_init_globaladdr(struct i2c_child_t *pchild) in envctrl_init_globaladdr() argument
832 for (i = 0; i < pchild->total_chnls; i++) { in envctrl_init_globaladdr()
833 if (PCF8584_VOLTAGE_TYPE == pchild->chnl_array[i].type) { in envctrl_init_globaladdr()
834 pchild->voltage_mask |= chnls_mask[i]; in envctrl_init_globaladdr()
842 pchild->mon_type[0] = ENVCTRL_GLOBALADDR_MON; in envctrl_init_globaladdr()
846 static void envctrl_init_voltage_status(struct i2c_child_t *pchild) in envctrl_init_voltage_status() argument
851 for (i = 0; i < pchild->total_chnls; i++) in envctrl_init_voltage_status()
852 pchild->voltage_mask |= chnls_mask[(pchild->chnl_array[i]).chnl_no]; in envctrl_init_voltage_status()
857 pchild->mon_type[0] = ENVCTRL_VOLTAGESTAT_MON; in envctrl_init_voltage_status()
864 struct i2c_child_t *pchild) in envctrl_init_i2c_child() argument
871 memcpy(&pchild->addr, pval, len); in envctrl_init_i2c_child()
876 memcpy(pchild->tblprop_array, pval, len); in envctrl_init_i2c_child()
877 pchild->total_tbls = len / sizeof(struct pcf8584_tblprop); in envctrl_init_i2c_child()
878 for (i = 0; i < pchild->total_tbls; i++) { in envctrl_init_i2c_child()
879 if ((pchild->tblprop_array[i].size + pchild->tblprop_array[i].offset) > tbls_size) { in envctrl_init_i2c_child()
880 tbls_size = pchild->tblprop_array[i].size + pchild->tblprop_array[i].offset; in envctrl_init_i2c_child()
884 pchild->tables = kmalloc(tbls_size, GFP_KERNEL); in envctrl_init_i2c_child()
885 if (pchild->tables == NULL){ in envctrl_init_i2c_child()
894 memcpy(pchild->tables, pval, len); in envctrl_init_i2c_child()
904 if (ENVCTRL_CPCI_IGNORED_NODE == pchild->addr) { in envctrl_init_i2c_child()
911 pchild->mon_type[len] = ENVCTRL_NOMON; in envctrl_init_i2c_child()
919 memcpy(pchild->chnl_array, pval, len); in envctrl_init_i2c_child()
920 pchild->total_chnls = len / sizeof(struct pcf8584_channel); in envctrl_init_i2c_child()
922 for (i = 0; i < pchild->total_chnls; i++) { in envctrl_init_i2c_child()
923 switch (pchild->chnl_array[i].type) { in envctrl_init_i2c_child()
925 envctrl_init_adc(pchild, dp); in envctrl_init_i2c_child()
929 envctrl_init_globaladdr(pchild); in envctrl_init_i2c_child()
930 i = pchild->total_chnls; in envctrl_init_i2c_child()
934 envctrl_init_fanstat(pchild); in envctrl_init_i2c_child()
935 i = pchild->total_chnls; in envctrl_init_i2c_child()
939 if (pchild->i2ctype == I2C_ADC) { in envctrl_init_i2c_child()
940 envctrl_init_adc(pchild,dp); in envctrl_init_i2c_child()
942 envctrl_init_voltage_status(pchild); in envctrl_init_i2c_child()
944 i = pchild->total_chnls; in envctrl_init_i2c_child()