Lines Matching refs:gpio_ir
18 struct gpio_ir {
32 struct gpio_ir *gpio_ir = dev->priv;
34 gpio_ir->duty_cycle = duty_cycle;
41 struct gpio_ir *gpio_ir = dev->priv;
46 gpio_ir->carrier = carrier;
70 static void gpio_ir_tx_unmodulated(struct gpio_ir *gpio_ir, uint *txbuf,
81 gpiod_set_value(gpio_ir->gpio, !(i % 2));
87 gpiod_set_value(gpio_ir->gpio, 0);
90 static void gpio_ir_tx_modulated(struct gpio_ir *gpio_ir, uint *txbuf,
103 pulse = DIV_ROUND_CLOSEST(gpio_ir->duty_cycle * (NSEC_PER_SEC / 100),
104 gpio_ir->carrier);
105 space = DIV_ROUND_CLOSEST((100 - gpio_ir->duty_cycle) *
106 (NSEC_PER_SEC / 100), gpio_ir->carrier);
122 gpiod_set_value(gpio_ir->gpio, 1);
128 gpiod_set_value(gpio_ir->gpio, 0);
144 struct gpio_ir *gpio_ir = dev->priv;
148 if (gpio_ir->carrier)
149 gpio_ir_tx_modulated(gpio_ir, txbuf, count);
151 gpio_ir_tx_unmodulated(gpio_ir, txbuf, count);
159 struct gpio_ir *gpio_ir;
163 gpio_ir = devm_kmalloc(&pdev->dev, sizeof(*gpio_ir), GFP_KERNEL);
164 if (!gpio_ir)
171 gpio_ir->gpio = devm_gpiod_get(&pdev->dev, NULL, GPIOD_OUT_LOW);
172 if (IS_ERR(gpio_ir->gpio)) {
173 if (PTR_ERR(gpio_ir->gpio) != -EPROBE_DEFER)
175 PTR_ERR(gpio_ir->gpio));
176 return PTR_ERR(gpio_ir->gpio);
179 rcdev->priv = gpio_ir;
186 gpio_ir->carrier = 38000;
187 gpio_ir->duty_cycle = 50;