Lines Matching refs:gpio_ir

18 struct gpio_ir {  struct
32 struct gpio_ir *gpio_ir = dev->priv; in gpio_ir_tx_set_duty_cycle() argument
34 gpio_ir->duty_cycle = duty_cycle; in gpio_ir_tx_set_duty_cycle()
41 struct gpio_ir *gpio_ir = dev->priv; in gpio_ir_tx_set_carrier() local
46 gpio_ir->carrier = carrier; in gpio_ir_tx_set_carrier()
75 static void gpio_ir_tx_unmodulated(struct gpio_ir *gpio_ir, uint *txbuf, in gpio_ir_tx_unmodulated() argument
86 gpiod_set_value(gpio_ir->gpio, !(i % 2)); in gpio_ir_tx_unmodulated()
92 gpiod_set_value(gpio_ir->gpio, 0); in gpio_ir_tx_unmodulated()
95 static void gpio_ir_tx_modulated(struct gpio_ir *gpio_ir, uint *txbuf, in gpio_ir_tx_modulated() argument
108 pulse = DIV_ROUND_CLOSEST(gpio_ir->duty_cycle * (NSEC_PER_SEC / 100), in gpio_ir_tx_modulated()
109 gpio_ir->carrier); in gpio_ir_tx_modulated()
110 space = DIV_ROUND_CLOSEST((100 - gpio_ir->duty_cycle) * in gpio_ir_tx_modulated()
111 (NSEC_PER_SEC / 100), gpio_ir->carrier); in gpio_ir_tx_modulated()
127 gpiod_set_value(gpio_ir->gpio, 1); in gpio_ir_tx_modulated()
133 gpiod_set_value(gpio_ir->gpio, 0); in gpio_ir_tx_modulated()
149 struct gpio_ir *gpio_ir = dev->priv; in gpio_ir_tx() local
153 if (gpio_ir->carrier) in gpio_ir_tx()
154 gpio_ir_tx_modulated(gpio_ir, txbuf, count); in gpio_ir_tx()
156 gpio_ir_tx_unmodulated(gpio_ir, txbuf, count); in gpio_ir_tx()
164 struct gpio_ir *gpio_ir; in gpio_ir_tx_probe() local
168 gpio_ir = devm_kmalloc(&pdev->dev, sizeof(*gpio_ir), GFP_KERNEL); in gpio_ir_tx_probe()
169 if (!gpio_ir) in gpio_ir_tx_probe()
176 gpio_ir->gpio = devm_gpiod_get(&pdev->dev, NULL, GPIOD_OUT_LOW); in gpio_ir_tx_probe()
177 if (IS_ERR(gpio_ir->gpio)) in gpio_ir_tx_probe()
178 return dev_err_probe(&pdev->dev, PTR_ERR(gpio_ir->gpio), in gpio_ir_tx_probe()
181 rcdev->priv = gpio_ir; in gpio_ir_tx_probe()
188 gpio_ir->carrier = 38000; in gpio_ir_tx_probe()
189 gpio_ir->duty_cycle = 50; in gpio_ir_tx_probe()