Lines Matching defs:ctl

63 			       const struct axi_fan_control_data *ctl)
65 iowrite32(val, ctl->base + reg);
69 const struct axi_fan_control_data *ctl)
71 return ioread32(ctl->base + reg);
80 struct axi_fan_control_data *ctl = dev_get_drvdata(dev);
82 u32 temp = axi_ioread(attr->index, ctl);
92 struct axi_fan_control_data *ctl = dev_get_drvdata(dev);
102 axi_iowrite(temp, attr->index, ctl);
107 static long axi_fan_control_get_pwm_duty(const struct axi_fan_control_data *ctl)
109 u32 pwm_width = axi_ioread(ADI_REG_PWM_WIDTH, ctl);
110 u32 pwm_period = axi_ioread(ADI_REG_PWM_PERIOD, ctl);
119 struct axi_fan_control_data *ctl)
121 u32 pwm_period = axi_ioread(ADI_REG_PWM_PERIOD, ctl);
127 axi_iowrite(new_width, ADI_REG_PWM_WIDTH, ctl);
132 static long axi_fan_control_get_fan_rpm(const struct axi_fan_control_data *ctl)
134 const u32 tach = axi_ioread(ADI_REG_TACH_MEASUR, ctl);
147 return DIV_ROUND_CLOSEST(60 * ctl->clk_rate, ctl->ppr * tach);
152 struct axi_fan_control_data *ctl = dev_get_drvdata(dev);
157 raw_temp = axi_ioread(ADI_REG_TEMPERATURE, ctl);
173 struct axi_fan_control_data *ctl = dev_get_drvdata(dev);
177 *val = ctl->fan_fault;
179 ctl->fan_fault = 0;
182 *val = axi_fan_control_get_fan_rpm(ctl);
191 struct axi_fan_control_data *ctl = dev_get_drvdata(dev);
195 *val = axi_fan_control_get_pwm_duty(ctl);
204 struct axi_fan_control_data *ctl = dev_get_drvdata(dev);
208 return axi_fan_control_set_pwm_duty(val, ctl);
320 * already to the ney duty cycle) based on the %ctl->hw_pwm_req flag.
324 struct axi_fan_control_data *ctl = (struct axi_fan_control_data *)data;
325 u32 irq_pending = axi_ioread(ADI_REG_IRQ_PENDING, ctl);
330 ctl->hw_pwm_req = true;
338 if (!ctl->hw_pwm_req) {
339 ctl->update_tacho_params = true;
341 ctl->hw_pwm_req = false;
342 hwmon_notify_event(ctl->hdev, hwmon_pwm,
348 if (ctl->update_tacho_params) {
349 u32 new_tach = axi_ioread(ADI_REG_TACH_MEASUR, ctl);
354 axi_iowrite(new_tach, ADI_REG_TACH_PERIOD, ctl);
355 axi_iowrite(tach_tol, ADI_REG_TACH_TOLERANCE, ctl);
356 ctl->update_tacho_params = false;
361 ctl->fan_fault = 1;
365 axi_iowrite(clear_mask, ADI_REG_IRQ_PENDING, ctl);
370 static int axi_fan_control_init(struct axi_fan_control_data *ctl,
376 ret = of_property_read_u32(np, "pulses-per-revolution", &ctl->ppr);
381 if (ctl->ppr != 1 && ctl->ppr != 2 && ctl->ppr != 4)
389 ADI_REG_IRQ_MASK, ctl);
392 axi_iowrite(0x01, ADI_REG_RSTN, ctl);
457 struct axi_fan_control_data *ctl;
468 ctl = devm_kzalloc(&pdev->dev, sizeof(*ctl), GFP_KERNEL);
469 if (!ctl)
472 ctl->base = devm_platform_ioremap_resource(pdev, 0);
473 if (IS_ERR(ctl->base))
474 return PTR_ERR(ctl->base);
482 ctl->clk_rate = clk_get_rate(clk);
483 if (!ctl->clk_rate)
486 version = axi_ioread(ADI_AXI_REG_VERSION, ctl);
499 ret = axi_fan_control_init(ctl, pdev->dev.of_node);
505 ctl->hdev = devm_hwmon_device_register_with_info(&pdev->dev,
507 ctl,
511 if (IS_ERR(ctl->hdev))
512 return PTR_ERR(ctl->hdev);
514 ctl->irq = platform_get_irq(pdev, 0);
515 if (ctl->irq < 0)
516 return ctl->irq;
518 ret = devm_request_threaded_irq(&pdev->dev, ctl->irq, NULL,
521 pdev->driver_override, ctl);