tcu 45 drivers/clk/ingenic/tcu.c struct ingenic_tcu *tcu; tcu 68 drivers/clk/ingenic/tcu.c struct ingenic_tcu *tcu = tcu_clk->tcu; tcu 70 drivers/clk/ingenic/tcu.c regmap_write(tcu->map, TCU_REG_TSCR, BIT(info->gate_bit)); tcu 79 drivers/clk/ingenic/tcu.c struct ingenic_tcu *tcu = tcu_clk->tcu; tcu 81 drivers/clk/ingenic/tcu.c regmap_write(tcu->map, TCU_REG_TSSR, BIT(info->gate_bit)); tcu 90 drivers/clk/ingenic/tcu.c regmap_read(tcu_clk->tcu->map, TCU_REG_TSR, &value); tcu 99 drivers/clk/ingenic/tcu.c struct ingenic_tcu *tcu = tcu_clk->tcu; tcu 108 drivers/clk/ingenic/tcu.c if (!tcu->clk) { tcu 110 drivers/clk/ingenic/tcu.c regmap_write(tcu->map, TCU_REG_TSCR, BIT(info->gate_bit)); tcu 120 drivers/clk/ingenic/tcu.c struct ingenic_tcu *tcu = tcu_clk->tcu; tcu 122 drivers/clk/ingenic/tcu.c if (!tcu->clk) tcu 123 drivers/clk/ingenic/tcu.c regmap_write(tcu->map, TCU_REG_TSSR, BIT(info->gate_bit)); tcu 133 drivers/clk/ingenic/tcu.c ret = regmap_read(tcu_clk->tcu->map, info->tcsr_reg, &val); tcu 148 drivers/clk/ingenic/tcu.c ret = regmap_update_bits(tcu_clk->tcu->map, info->tcsr_reg, tcu 166 drivers/clk/ingenic/tcu.c ret = regmap_read(tcu_clk->tcu->map, info->tcsr_reg, &prescale); tcu 210 drivers/clk/ingenic/tcu.c ret = regmap_update_bits(tcu_clk->tcu->map, info->tcsr_reg, tcu 269 drivers/clk/ingenic/tcu.c static int __init ingenic_tcu_register_clock(struct ingenic_tcu *tcu, tcu 284 drivers/clk/ingenic/tcu.c tcu_clk->tcu = tcu; tcu 288 drivers/clk/ingenic/tcu.c regmap_update_bits(tcu->map, info->tcsr_reg, 0xffff, BIT(parent)); tcu 330 drivers/clk/ingenic/tcu.c struct ingenic_tcu *tcu; tcu 339 drivers/clk/ingenic/tcu.c tcu = kzalloc(sizeof(*tcu), GFP_KERNEL); tcu 340 drivers/clk/ingenic/tcu.c if (!tcu) tcu 343 drivers/clk/ingenic/tcu.c tcu->map = map; tcu 344 drivers/clk/ingenic/tcu.c tcu->soc_info = id->data; tcu 346 drivers/clk/ingenic/tcu.c if (tcu->soc_info->has_tcu_clk) { tcu 347 drivers/clk/ingenic/tcu.c tcu->clk = of_clk_get_by_name(np, "tcu"); tcu 348 drivers/clk/ingenic/tcu.c if (IS_ERR(tcu->clk)) { tcu 349 drivers/clk/ingenic/tcu.c ret = PTR_ERR(tcu->clk); tcu 354 drivers/clk/ingenic/tcu.c ret = clk_prepare_enable(tcu->clk); tcu 361 drivers/clk/ingenic/tcu.c tcu->clocks = kzalloc(sizeof(*tcu->clocks) + tcu 362 drivers/clk/ingenic/tcu.c sizeof(*tcu->clocks->hws) * TCU_CLK_COUNT, tcu 364 drivers/clk/ingenic/tcu.c if (!tcu->clocks) { tcu 369 drivers/clk/ingenic/tcu.c tcu->clocks->num = TCU_CLK_COUNT; tcu 371 drivers/clk/ingenic/tcu.c for (i = 0; i < tcu->soc_info->num_channels; i++) { tcu 372 drivers/clk/ingenic/tcu.c ret = ingenic_tcu_register_clock(tcu, i, TCU_PARENT_EXT, tcu 374 drivers/clk/ingenic/tcu.c tcu->clocks); tcu 388 drivers/clk/ingenic/tcu.c ret = ingenic_tcu_register_clock(tcu, TCU_CLK_WDT, TCU_PARENT_RTC, tcu 390 drivers/clk/ingenic/tcu.c tcu->clocks); tcu 396 drivers/clk/ingenic/tcu.c if (tcu->soc_info->has_ost) { tcu 397 drivers/clk/ingenic/tcu.c ret = ingenic_tcu_register_clock(tcu, TCU_CLK_OST, tcu 400 drivers/clk/ingenic/tcu.c tcu->clocks); tcu 407 drivers/clk/ingenic/tcu.c ret = of_clk_add_hw_provider(np, of_clk_hw_onecell_get, tcu->clocks); tcu 413 drivers/clk/ingenic/tcu.c ingenic_tcu = tcu; tcu 418 drivers/clk/ingenic/tcu.c if (tcu->soc_info->has_ost) tcu 419 drivers/clk/ingenic/tcu.c clk_hw_unregister(tcu->clocks->hws[i + 1]); tcu 421 drivers/clk/ingenic/tcu.c clk_hw_unregister(tcu->clocks->hws[i]); tcu 423 drivers/clk/ingenic/tcu.c for (i = 0; i < tcu->clocks->num; i++) tcu 424 drivers/clk/ingenic/tcu.c if (tcu->clocks->hws[i]) tcu 425 drivers/clk/ingenic/tcu.c clk_hw_unregister(tcu->clocks->hws[i]); tcu 426 drivers/clk/ingenic/tcu.c kfree(tcu->clocks); tcu 428 drivers/clk/ingenic/tcu.c if (tcu->soc_info->has_tcu_clk) tcu 429 drivers/clk/ingenic/tcu.c clk_disable_unprepare(tcu->clk); tcu 431 drivers/clk/ingenic/tcu.c if (tcu->soc_info->has_tcu_clk) tcu 432 drivers/clk/ingenic/tcu.c clk_put(tcu->clk); tcu 434 drivers/clk/ingenic/tcu.c kfree(tcu); tcu 440 drivers/clk/ingenic/tcu.c struct ingenic_tcu *tcu = ingenic_tcu; tcu 442 drivers/clk/ingenic/tcu.c if (tcu->clk) tcu 443 drivers/clk/ingenic/tcu.c clk_disable(tcu->clk); tcu 450 drivers/clk/ingenic/tcu.c struct ingenic_tcu *tcu = ingenic_tcu; tcu 452 drivers/clk/ingenic/tcu.c if (tcu->clk) tcu 453 drivers/clk/ingenic/tcu.c clk_enable(tcu->clk); tcu 42 drivers/clocksource/ingenic-timer.c struct ingenic_tcu *tcu = ingenic_tcu; tcu 45 drivers/clocksource/ingenic-timer.c regmap_read(tcu->map, TCU_REG_TCNTc(tcu->cs_channel), &count); tcu 62 drivers/clocksource/ingenic-timer.c struct ingenic_tcu *tcu = to_ingenic_tcu(evt); tcu 64 drivers/clocksource/ingenic-timer.c regmap_write(tcu->map, TCU_REG_TECR, BIT(tcu->timer_channel)); tcu 72 drivers/clocksource/ingenic-timer.c struct ingenic_tcu *tcu = to_ingenic_tcu(evt); tcu 77 drivers/clocksource/ingenic-timer.c regmap_write(tcu->map, TCU_REG_TDFRc(tcu->timer_channel), next); tcu 78 drivers/clocksource/ingenic-timer.c regmap_write(tcu->map, TCU_REG_TCNTc(tcu->timer_channel), 0); tcu 79 drivers/clocksource/ingenic-timer.c regmap_write(tcu->map, TCU_REG_TESR, BIT(tcu->timer_channel)); tcu 87 drivers/clocksource/ingenic-timer.c struct ingenic_tcu *tcu = to_ingenic_tcu(evt); tcu 89 drivers/clocksource/ingenic-timer.c regmap_write(tcu->map, TCU_REG_TECR, BIT(tcu->timer_channel)); tcu 109 drivers/clocksource/ingenic-timer.c struct ingenic_tcu *tcu) tcu 111 drivers/clocksource/ingenic-timer.c unsigned int timer_virq, channel = tcu->timer_channel; tcu 116 drivers/clocksource/ingenic-timer.c tcu->timer_clk = ingenic_tcu_get_clock(np, channel); tcu 117 drivers/clocksource/ingenic-timer.c if (IS_ERR(tcu->timer_clk)) tcu 118 drivers/clocksource/ingenic-timer.c return PTR_ERR(tcu->timer_clk); tcu 120 drivers/clocksource/ingenic-timer.c err = clk_prepare_enable(tcu->timer_clk); tcu 124 drivers/clocksource/ingenic-timer.c rate = clk_get_rate(tcu->timer_clk); tcu 142 drivers/clocksource/ingenic-timer.c snprintf(tcu->name, sizeof(tcu->name), "TCU"); tcu 145 drivers/clocksource/ingenic-timer.c tcu->name, &tcu->cevt); tcu 149 drivers/clocksource/ingenic-timer.c tcu->cevt.cpumask = cpumask_of(smp_processor_id()); tcu 150 drivers/clocksource/ingenic-timer.c tcu->cevt.features = CLOCK_EVT_FEAT_ONESHOT; tcu 151 drivers/clocksource/ingenic-timer.c tcu->cevt.name = tcu->name; tcu 152 drivers/clocksource/ingenic-timer.c tcu->cevt.rating = 200; tcu 153 drivers/clocksource/ingenic-timer.c tcu->cevt.set_state_shutdown = ingenic_tcu_cevt_set_state_shutdown; tcu 154 drivers/clocksource/ingenic-timer.c tcu->cevt.set_next_event = ingenic_tcu_cevt_set_next; tcu 156 drivers/clocksource/ingenic-timer.c clockevents_config_and_register(&tcu->cevt, rate, 10, 0xffff); tcu 163 drivers/clocksource/ingenic-timer.c clk_disable_unprepare(tcu->timer_clk); tcu 165 drivers/clocksource/ingenic-timer.c clk_put(tcu->timer_clk); tcu 170 drivers/clocksource/ingenic-timer.c struct ingenic_tcu *tcu) tcu 172 drivers/clocksource/ingenic-timer.c unsigned int channel = tcu->cs_channel; tcu 173 drivers/clocksource/ingenic-timer.c struct clocksource *cs = &tcu->cs; tcu 177 drivers/clocksource/ingenic-timer.c tcu->cs_clk = ingenic_tcu_get_clock(np, channel); tcu 178 drivers/clocksource/ingenic-timer.c if (IS_ERR(tcu->cs_clk)) tcu 179 drivers/clocksource/ingenic-timer.c return PTR_ERR(tcu->cs_clk); tcu 181 drivers/clocksource/ingenic-timer.c err = clk_prepare_enable(tcu->cs_clk); tcu 185 drivers/clocksource/ingenic-timer.c rate = clk_get_rate(tcu->cs_clk); tcu 192 drivers/clocksource/ingenic-timer.c regmap_update_bits(tcu->map, TCU_REG_TCSRc(channel), tcu 196 drivers/clocksource/ingenic-timer.c regmap_write(tcu->map, TCU_REG_TDFRc(channel), 0xffff); tcu 197 drivers/clocksource/ingenic-timer.c regmap_write(tcu->map, TCU_REG_TCNTc(channel), 0); tcu 200 drivers/clocksource/ingenic-timer.c regmap_write(tcu->map, TCU_REG_TESR, BIT(channel)); tcu 215 drivers/clocksource/ingenic-timer.c clk_disable_unprepare(tcu->cs_clk); tcu 217 drivers/clocksource/ingenic-timer.c clk_put(tcu->cs_clk); tcu 240 drivers/clocksource/ingenic-timer.c struct ingenic_tcu *tcu; tcu 251 drivers/clocksource/ingenic-timer.c tcu = kzalloc(sizeof(*tcu), GFP_KERNEL); tcu 252 drivers/clocksource/ingenic-timer.c if (!tcu) tcu 256 drivers/clocksource/ingenic-timer.c tcu->pwm_channels_mask = GENMASK(soc_info->num_channels - 1, 2); tcu 258 drivers/clocksource/ingenic-timer.c (u32 *)&tcu->pwm_channels_mask); tcu 261 drivers/clocksource/ingenic-timer.c if (hweight8(tcu->pwm_channels_mask) > soc_info->num_channels - 2) { tcu 263 drivers/clocksource/ingenic-timer.c tcu->pwm_channels_mask); tcu 268 drivers/clocksource/ingenic-timer.c tcu->map = map; tcu 269 drivers/clocksource/ingenic-timer.c ingenic_tcu = tcu; tcu 271 drivers/clocksource/ingenic-timer.c tcu->timer_channel = find_first_zero_bit(&tcu->pwm_channels_mask, tcu 273 drivers/clocksource/ingenic-timer.c tcu->cs_channel = find_next_zero_bit(&tcu->pwm_channels_mask, tcu 275 drivers/clocksource/ingenic-timer.c tcu->timer_channel + 1); tcu 277 drivers/clocksource/ingenic-timer.c ret = ingenic_tcu_clocksource_init(np, tcu); tcu 283 drivers/clocksource/ingenic-timer.c ret = ingenic_tcu_timer_init(np, tcu); tcu 288 drivers/clocksource/ingenic-timer.c rate = clk_get_rate(tcu->cs_clk); tcu 294 drivers/clocksource/ingenic-timer.c clocksource_unregister(&tcu->cs); tcu 295 drivers/clocksource/ingenic-timer.c clk_disable_unprepare(tcu->cs_clk); tcu 296 drivers/clocksource/ingenic-timer.c clk_put(tcu->cs_clk); tcu 298 drivers/clocksource/ingenic-timer.c kfree(tcu); tcu 316 drivers/clocksource/ingenic-timer.c struct ingenic_tcu *tcu = dev_get_drvdata(dev); tcu 318 drivers/clocksource/ingenic-timer.c clk_disable(tcu->cs_clk); tcu 319 drivers/clocksource/ingenic-timer.c clk_disable(tcu->timer_clk); tcu 325 drivers/clocksource/ingenic-timer.c struct ingenic_tcu *tcu = dev_get_drvdata(dev); tcu 328 drivers/clocksource/ingenic-timer.c ret = clk_enable(tcu->timer_clk); tcu 332 drivers/clocksource/ingenic-timer.c ret = clk_enable(tcu->cs_clk); tcu 334 drivers/clocksource/ingenic-timer.c clk_disable(tcu->timer_clk); tcu 448 drivers/hid/hid-roccat-kone.c return snprintf(buf, PAGE_SIZE, "%d\n", kone->settings.tcu); tcu 516 drivers/hid/hid-roccat-kone.c if (kone->settings.tcu != state) { tcu 517 drivers/hid/hid-roccat-kone.c kone->settings.tcu = state; tcu 543 drivers/hid/hid-roccat-kone.c static DEVICE_ATTR(tcu, 0660, kone_sysfs_show_tcu, kone_sysfs_set_tcu); tcu 139 drivers/hid/hid-roccat-kone.h uint8_t tcu; /* 0 = off, 1 = on */ tcu 183 drivers/hid/hid-roccat-koneplus.c KONEPLUS_BIN_ATTRIBUTE_RW(tcu, TCU); tcu 47 drivers/hid/hid-roccat-konepure.c ROCCAT_COMMON2_BIN_ATTRIBUTE_RW(tcu, 0x0c, 0x04); tcu 91 drivers/irqchip/irq-ingenic-tcu.c struct ingenic_tcu *tcu; tcu 100 drivers/irqchip/irq-ingenic-tcu.c tcu = kzalloc(sizeof(*tcu), GFP_KERNEL); tcu 101 drivers/irqchip/irq-ingenic-tcu.c if (!tcu) tcu 104 drivers/irqchip/irq-ingenic-tcu.c tcu->map = map; tcu 107 drivers/irqchip/irq-ingenic-tcu.c if (irqs < 0 || irqs > ARRAY_SIZE(tcu->parent_irqs)) { tcu 113 drivers/irqchip/irq-ingenic-tcu.c tcu->nb_parent_irqs = irqs; tcu 115 drivers/irqchip/irq-ingenic-tcu.c tcu->domain = irq_domain_add_linear(np, 32, &irq_generic_chip_ops, tcu 117 drivers/irqchip/irq-ingenic-tcu.c if (!tcu->domain) { tcu 122 drivers/irqchip/irq-ingenic-tcu.c ret = irq_alloc_domain_generic_chips(tcu->domain, 32, 1, "TCU", tcu 130 drivers/irqchip/irq-ingenic-tcu.c gc = irq_get_domain_generic_chip(tcu->domain, 0); tcu 134 drivers/irqchip/irq-ingenic-tcu.c gc->private = tcu->map; tcu 145 drivers/irqchip/irq-ingenic-tcu.c regmap_write(tcu->map, TCU_REG_TMSR, IRQ_MSK(32)); tcu 158 drivers/irqchip/irq-ingenic-tcu.c tcu->parent_irqs[i] = irq_of_parse_and_map(np, i); tcu 159 drivers/irqchip/irq-ingenic-tcu.c if (!tcu->parent_irqs[i]) { tcu 164 drivers/irqchip/irq-ingenic-tcu.c irq_set_chained_handler_and_data(tcu->parent_irqs[i], tcu 166 drivers/irqchip/irq-ingenic-tcu.c tcu->domain); tcu 173 drivers/irqchip/irq-ingenic-tcu.c irq_dispose_mapping(tcu->parent_irqs[i - 1]); tcu 175 drivers/irqchip/irq-ingenic-tcu.c irq_domain_remove(tcu->domain); tcu 177 drivers/irqchip/irq-ingenic-tcu.c kfree(tcu); tcu 52 drivers/tty/serial/tegra-tcu.c static void tegra_tcu_write_one(struct tegra_tcu *tcu, u32 value, tcu 59 drivers/tty/serial/tegra-tcu.c mbox_send_message(tcu->tx, msg); tcu 60 drivers/tty/serial/tegra-tcu.c mbox_flush(tcu->tx, 1000); tcu 63 drivers/tty/serial/tegra-tcu.c static void tegra_tcu_write(struct tegra_tcu *tcu, const char *s, tcu 83 drivers/tty/serial/tegra-tcu.c tegra_tcu_write_one(tcu, value, 3); tcu 89 drivers/tty/serial/tegra-tcu.c tegra_tcu_write_one(tcu, value, written); tcu 94 drivers/tty/serial/tegra-tcu.c struct tegra_tcu *tcu = port->private_data; tcu 103 drivers/tty/serial/tegra-tcu.c tegra_tcu_write(tcu, &xmit->buf[xmit->tail], count); tcu 150 drivers/tty/serial/tegra-tcu.c struct tegra_tcu *tcu = container_of(cons, struct tegra_tcu, console); tcu 152 drivers/tty/serial/tegra-tcu.c tegra_tcu_write(tcu, s, count); tcu 163 drivers/tty/serial/tegra-tcu.c struct tegra_tcu *tcu = container_of(cl, struct tegra_tcu, rx_client); tcu 164 drivers/tty/serial/tegra-tcu.c struct tty_port *port = &tcu->port.state->port; tcu 180 drivers/tty/serial/tegra-tcu.c struct tegra_tcu *tcu; tcu 183 drivers/tty/serial/tegra-tcu.c tcu = devm_kzalloc(&pdev->dev, sizeof(*tcu), GFP_KERNEL); tcu 184 drivers/tty/serial/tegra-tcu.c if (!tcu) tcu 187 drivers/tty/serial/tegra-tcu.c tcu->tx_client.dev = &pdev->dev; tcu 188 drivers/tty/serial/tegra-tcu.c tcu->rx_client.dev = &pdev->dev; tcu 189 drivers/tty/serial/tegra-tcu.c tcu->rx_client.rx_callback = tegra_tcu_receive; tcu 191 drivers/tty/serial/tegra-tcu.c tcu->tx = mbox_request_channel_byname(&tcu->tx_client, "tx"); tcu 192 drivers/tty/serial/tegra-tcu.c if (IS_ERR(tcu->tx)) { tcu 193 drivers/tty/serial/tegra-tcu.c err = PTR_ERR(tcu->tx); tcu 198 drivers/tty/serial/tegra-tcu.c tcu->rx = mbox_request_channel_byname(&tcu->rx_client, "rx"); tcu 199 drivers/tty/serial/tegra-tcu.c if (IS_ERR(tcu->rx)) { tcu 200 drivers/tty/serial/tegra-tcu.c err = PTR_ERR(tcu->rx); tcu 207 drivers/tty/serial/tegra-tcu.c strcpy(tcu->console.name, "ttyTCU"); tcu 208 drivers/tty/serial/tegra-tcu.c tcu->console.device = uart_console_device; tcu 209 drivers/tty/serial/tegra-tcu.c tcu->console.flags = CON_PRINTBUFFER | CON_ANYTIME; tcu 210 drivers/tty/serial/tegra-tcu.c tcu->console.index = -1; tcu 211 drivers/tty/serial/tegra-tcu.c tcu->console.write = tegra_tcu_console_write; tcu 212 drivers/tty/serial/tegra-tcu.c tcu->console.setup = tegra_tcu_console_setup; tcu 213 drivers/tty/serial/tegra-tcu.c tcu->console.data = &tcu->driver; tcu 217 drivers/tty/serial/tegra-tcu.c tcu->driver.owner = THIS_MODULE; tcu 218 drivers/tty/serial/tegra-tcu.c tcu->driver.driver_name = "tegra-tcu"; tcu 219 drivers/tty/serial/tegra-tcu.c tcu->driver.dev_name = "ttyTCU"; tcu 221 drivers/tty/serial/tegra-tcu.c tcu->driver.cons = &tcu->console; tcu 223 drivers/tty/serial/tegra-tcu.c tcu->driver.nr = 1; tcu 225 drivers/tty/serial/tegra-tcu.c err = uart_register_driver(&tcu->driver); tcu 233 drivers/tty/serial/tegra-tcu.c port = &tcu->port; tcu 241 drivers/tty/serial/tegra-tcu.c port->private_data = tcu; tcu 243 drivers/tty/serial/tegra-tcu.c err = uart_add_one_port(&tcu->driver, port); tcu 249 drivers/tty/serial/tegra-tcu.c platform_set_drvdata(pdev, tcu); tcu 251 drivers/tty/serial/tegra-tcu.c register_console(&tcu->console); tcu 257 drivers/tty/serial/tegra-tcu.c uart_unregister_driver(&tcu->driver); tcu 259 drivers/tty/serial/tegra-tcu.c mbox_free_channel(tcu->rx); tcu 261 drivers/tty/serial/tegra-tcu.c mbox_free_channel(tcu->tx); tcu 268 drivers/tty/serial/tegra-tcu.c struct tegra_tcu *tcu = platform_get_drvdata(pdev); tcu 271 drivers/tty/serial/tegra-tcu.c unregister_console(&tcu->console); tcu 273 drivers/tty/serial/tegra-tcu.c uart_remove_one_port(&tcu->driver, &tcu->port); tcu 274 drivers/tty/serial/tegra-tcu.c uart_unregister_driver(&tcu->driver); tcu 275 drivers/tty/serial/tegra-tcu.c mbox_free_channel(tcu->rx); tcu 276 drivers/tty/serial/tegra-tcu.c mbox_free_channel(tcu->tx);