Lines Matching refs:hwmon
36 struct device *hwmon; member
51 struct jz4740_hwmon *hwmon = data; in jz4740_hwmon_irq() local
53 complete(&hwmon->read_completion); in jz4740_hwmon_irq()
60 struct jz4740_hwmon *hwmon = dev_get_drvdata(dev); in jz4740_hwmon_read_adcin() local
61 struct completion *completion = &hwmon->read_completion; in jz4740_hwmon_read_adcin()
66 mutex_lock(&hwmon->lock); in jz4740_hwmon_read_adcin()
70 enable_irq(hwmon->irq); in jz4740_hwmon_read_adcin()
71 hwmon->cell->enable(to_platform_device(dev)); in jz4740_hwmon_read_adcin()
76 val = readw(hwmon->base) & 0xfff; in jz4740_hwmon_read_adcin()
83 hwmon->cell->disable(to_platform_device(dev)); in jz4740_hwmon_read_adcin()
84 disable_irq(hwmon->irq); in jz4740_hwmon_read_adcin()
86 mutex_unlock(&hwmon->lock); in jz4740_hwmon_read_adcin()
107 struct jz4740_hwmon *hwmon; in jz4740_hwmon_probe() local
110 hwmon = devm_kzalloc(&pdev->dev, sizeof(*hwmon), GFP_KERNEL); in jz4740_hwmon_probe()
111 if (!hwmon) in jz4740_hwmon_probe()
114 hwmon->cell = mfd_get_cell(pdev); in jz4740_hwmon_probe()
116 hwmon->irq = platform_get_irq(pdev, 0); in jz4740_hwmon_probe()
117 if (hwmon->irq < 0) { in jz4740_hwmon_probe()
119 hwmon->irq); in jz4740_hwmon_probe()
120 return hwmon->irq; in jz4740_hwmon_probe()
124 hwmon->base = devm_ioremap_resource(&pdev->dev, mem); in jz4740_hwmon_probe()
125 if (IS_ERR(hwmon->base)) in jz4740_hwmon_probe()
126 return PTR_ERR(hwmon->base); in jz4740_hwmon_probe()
128 init_completion(&hwmon->read_completion); in jz4740_hwmon_probe()
129 mutex_init(&hwmon->lock); in jz4740_hwmon_probe()
131 platform_set_drvdata(pdev, hwmon); in jz4740_hwmon_probe()
133 ret = devm_request_irq(&pdev->dev, hwmon->irq, jz4740_hwmon_irq, 0, in jz4740_hwmon_probe()
134 pdev->name, hwmon); in jz4740_hwmon_probe()
139 disable_irq(hwmon->irq); in jz4740_hwmon_probe()
147 hwmon->hwmon = hwmon_device_register(&pdev->dev); in jz4740_hwmon_probe()
148 if (IS_ERR(hwmon->hwmon)) { in jz4740_hwmon_probe()
149 ret = PTR_ERR(hwmon->hwmon); in jz4740_hwmon_probe()
162 struct jz4740_hwmon *hwmon = platform_get_drvdata(pdev); in jz4740_hwmon_remove() local
164 hwmon_device_unregister(hwmon->hwmon); in jz4740_hwmon_remove()