mtk 70 drivers/gpio/gpio-mt7621.c struct mtk *mtk = gpiochip_get_data(gc); mtk 73 drivers/gpio/gpio-mt7621.c gc->write_reg(mtk->base + offset, val); mtk 80 drivers/gpio/gpio-mt7621.c struct mtk *mtk = gpiochip_get_data(gc); mtk 83 drivers/gpio/gpio-mt7621.c return gc->read_reg(mtk->base + offset); mtk 213 drivers/gpio/gpio-mt7621.c struct mtk *mtk = dev_get_drvdata(dev); mtk 218 drivers/gpio/gpio-mt7621.c rg = &mtk->gc_map[bank]; mtk 225 drivers/gpio/gpio-mt7621.c dat = mtk->base + GPIO_REG_DATA + (rg->bank * GPIO_BANK_STRIDE); mtk 226 drivers/gpio/gpio-mt7621.c set = mtk->base + GPIO_REG_DSET + (rg->bank * GPIO_BANK_STRIDE); mtk 227 drivers/gpio/gpio-mt7621.c ctrl = mtk->base + GPIO_REG_DCLR + (rg->bank * GPIO_BANK_STRIDE); mtk 228 drivers/gpio/gpio-mt7621.c diro = mtk->base + GPIO_REG_CTRL + (rg->bank * GPIO_BANK_STRIDE); mtk 251 drivers/gpio/gpio-mt7621.c if (mtk->gpio_irq) { mtk 259 drivers/gpio/gpio-mt7621.c ret = devm_request_irq(dev, mtk->gpio_irq, mtk 265 drivers/gpio/gpio-mt7621.c mtk->gpio_irq, ret); mtk 279 drivers/gpio/gpio-mt7621.c ret = devm_gpiochip_add_data(dev, &rg->chip, mtk); mtk 299 drivers/gpio/gpio-mt7621.c struct mtk *mtk; mtk 303 drivers/gpio/gpio-mt7621.c mtk = devm_kzalloc(dev, sizeof(*mtk), GFP_KERNEL); mtk 304 drivers/gpio/gpio-mt7621.c if (!mtk) mtk 307 drivers/gpio/gpio-mt7621.c mtk->base = devm_platform_ioremap_resource(pdev, 0); mtk 308 drivers/gpio/gpio-mt7621.c if (IS_ERR(mtk->base)) mtk 309 drivers/gpio/gpio-mt7621.c return PTR_ERR(mtk->base); mtk 311 drivers/gpio/gpio-mt7621.c mtk->gpio_irq = irq_of_parse_and_map(np, 0); mtk 312 drivers/gpio/gpio-mt7621.c mtk->dev = dev; mtk 313 drivers/gpio/gpio-mt7621.c platform_set_drvdata(pdev, mtk); mtk 563 drivers/usb/host/xhci-mtk-sch.c int xhci_mtk_sch_init(struct xhci_hcd_mtk *mtk) mtk 565 drivers/usb/host/xhci-mtk-sch.c struct xhci_hcd *xhci = hcd_to_xhci(mtk->hcd); mtk 580 drivers/usb/host/xhci-mtk-sch.c mtk->sch_array = sch_array; mtk 586 drivers/usb/host/xhci-mtk-sch.c void xhci_mtk_sch_exit(struct xhci_hcd_mtk *mtk) mtk 588 drivers/usb/host/xhci-mtk-sch.c kfree(mtk->sch_array); mtk 595 drivers/usb/host/xhci-mtk-sch.c struct xhci_hcd_mtk *mtk = hcd_to_mtk(hcd); mtk 612 drivers/usb/host/xhci-mtk-sch.c sch_array = mtk->sch_array; mtk 668 drivers/usb/host/xhci-mtk-sch.c struct xhci_hcd_mtk *mtk = hcd_to_mtk(hcd); mtk 680 drivers/usb/host/xhci-mtk-sch.c sch_array = mtk->sch_array; mtk 76 drivers/usb/host/xhci-mtk.c static int xhci_mtk_host_enable(struct xhci_hcd_mtk *mtk) mtk 78 drivers/usb/host/xhci-mtk.c struct mu3c_ippc_regs __iomem *ippc = mtk->ippc_regs; mtk 84 drivers/usb/host/xhci-mtk.c if (!mtk->has_ippc) mtk 93 drivers/usb/host/xhci-mtk.c for (i = 0; i < mtk->num_u3_ports; i++) { mtk 94 drivers/usb/host/xhci-mtk.c if ((0x1 << i) & mtk->u3p_dis_msk) { mtk 106 drivers/usb/host/xhci-mtk.c for (i = 0; i < mtk->num_u2_ports; i++) { mtk 120 drivers/usb/host/xhci-mtk.c if (mtk->num_u3_ports > u3_ports_disabed) mtk 126 drivers/usb/host/xhci-mtk.c dev_err(mtk->dev, "clocks are not stable (0x%x)\n", value); mtk 133 drivers/usb/host/xhci-mtk.c static int xhci_mtk_host_disable(struct xhci_hcd_mtk *mtk) mtk 135 drivers/usb/host/xhci-mtk.c struct mu3c_ippc_regs __iomem *ippc = mtk->ippc_regs; mtk 140 drivers/usb/host/xhci-mtk.c if (!mtk->has_ippc) mtk 144 drivers/usb/host/xhci-mtk.c for (i = 0; i < mtk->num_u3_ports; i++) { mtk 145 drivers/usb/host/xhci-mtk.c if ((0x1 << i) & mtk->u3p_dis_msk) mtk 154 drivers/usb/host/xhci-mtk.c for (i = 0; i < mtk->num_u2_ports; i++) { mtk 169 drivers/usb/host/xhci-mtk.c dev_err(mtk->dev, "ip sleep failed!!!\n"); mtk 175 drivers/usb/host/xhci-mtk.c static int xhci_mtk_ssusb_config(struct xhci_hcd_mtk *mtk) mtk 177 drivers/usb/host/xhci-mtk.c struct mu3c_ippc_regs __iomem *ippc = mtk->ippc_regs; mtk 180 drivers/usb/host/xhci-mtk.c if (!mtk->has_ippc) mtk 201 drivers/usb/host/xhci-mtk.c mtk->num_u3_ports = CAP_U3_PORT_NUM(value); mtk 202 drivers/usb/host/xhci-mtk.c mtk->num_u2_ports = CAP_U2_PORT_NUM(value); mtk 203 drivers/usb/host/xhci-mtk.c dev_dbg(mtk->dev, "%s u2p:%d, u3p:%d\n", __func__, mtk 204 drivers/usb/host/xhci-mtk.c mtk->num_u2_ports, mtk->num_u3_ports); mtk 206 drivers/usb/host/xhci-mtk.c return xhci_mtk_host_enable(mtk); mtk 209 drivers/usb/host/xhci-mtk.c static int xhci_mtk_clks_get(struct xhci_hcd_mtk *mtk) mtk 211 drivers/usb/host/xhci-mtk.c struct device *dev = mtk->dev; mtk 213 drivers/usb/host/xhci-mtk.c mtk->sys_clk = devm_clk_get(dev, "sys_ck"); mtk 214 drivers/usb/host/xhci-mtk.c if (IS_ERR(mtk->sys_clk)) { mtk 216 drivers/usb/host/xhci-mtk.c return PTR_ERR(mtk->sys_clk); mtk 219 drivers/usb/host/xhci-mtk.c mtk->xhci_clk = devm_clk_get_optional(dev, "xhci_ck"); mtk 220 drivers/usb/host/xhci-mtk.c if (IS_ERR(mtk->xhci_clk)) mtk 221 drivers/usb/host/xhci-mtk.c return PTR_ERR(mtk->xhci_clk); mtk 223 drivers/usb/host/xhci-mtk.c mtk->ref_clk = devm_clk_get_optional(dev, "ref_ck"); mtk 224 drivers/usb/host/xhci-mtk.c if (IS_ERR(mtk->ref_clk)) mtk 225 drivers/usb/host/xhci-mtk.c return PTR_ERR(mtk->ref_clk); mtk 227 drivers/usb/host/xhci-mtk.c mtk->mcu_clk = devm_clk_get_optional(dev, "mcu_ck"); mtk 228 drivers/usb/host/xhci-mtk.c if (IS_ERR(mtk->mcu_clk)) mtk 229 drivers/usb/host/xhci-mtk.c return PTR_ERR(mtk->mcu_clk); mtk 231 drivers/usb/host/xhci-mtk.c mtk->dma_clk = devm_clk_get_optional(dev, "dma_ck"); mtk 232 drivers/usb/host/xhci-mtk.c return PTR_ERR_OR_ZERO(mtk->dma_clk); mtk 235 drivers/usb/host/xhci-mtk.c static int xhci_mtk_clks_enable(struct xhci_hcd_mtk *mtk) mtk 239 drivers/usb/host/xhci-mtk.c ret = clk_prepare_enable(mtk->ref_clk); mtk 241 drivers/usb/host/xhci-mtk.c dev_err(mtk->dev, "failed to enable ref_clk\n"); mtk 245 drivers/usb/host/xhci-mtk.c ret = clk_prepare_enable(mtk->sys_clk); mtk 247 drivers/usb/host/xhci-mtk.c dev_err(mtk->dev, "failed to enable sys_clk\n"); mtk 251 drivers/usb/host/xhci-mtk.c ret = clk_prepare_enable(mtk->xhci_clk); mtk 253 drivers/usb/host/xhci-mtk.c dev_err(mtk->dev, "failed to enable xhci_clk\n"); mtk 257 drivers/usb/host/xhci-mtk.c ret = clk_prepare_enable(mtk->mcu_clk); mtk 259 drivers/usb/host/xhci-mtk.c dev_err(mtk->dev, "failed to enable mcu_clk\n"); mtk 263 drivers/usb/host/xhci-mtk.c ret = clk_prepare_enable(mtk->dma_clk); mtk 265 drivers/usb/host/xhci-mtk.c dev_err(mtk->dev, "failed to enable dma_clk\n"); mtk 272 drivers/usb/host/xhci-mtk.c clk_disable_unprepare(mtk->mcu_clk); mtk 274 drivers/usb/host/xhci-mtk.c clk_disable_unprepare(mtk->xhci_clk); mtk 276 drivers/usb/host/xhci-mtk.c clk_disable_unprepare(mtk->sys_clk); mtk 278 drivers/usb/host/xhci-mtk.c clk_disable_unprepare(mtk->ref_clk); mtk 283 drivers/usb/host/xhci-mtk.c static void xhci_mtk_clks_disable(struct xhci_hcd_mtk *mtk) mtk 285 drivers/usb/host/xhci-mtk.c clk_disable_unprepare(mtk->dma_clk); mtk 286 drivers/usb/host/xhci-mtk.c clk_disable_unprepare(mtk->mcu_clk); mtk 287 drivers/usb/host/xhci-mtk.c clk_disable_unprepare(mtk->xhci_clk); mtk 288 drivers/usb/host/xhci-mtk.c clk_disable_unprepare(mtk->sys_clk); mtk 289 drivers/usb/host/xhci-mtk.c clk_disable_unprepare(mtk->ref_clk); mtk 293 drivers/usb/host/xhci-mtk.c static void usb_wakeup_ip_sleep_set(struct xhci_hcd_mtk *mtk, bool enable) mtk 297 drivers/usb/host/xhci-mtk.c switch (mtk->uwk_vers) { mtk 299 drivers/usb/host/xhci-mtk.c reg = mtk->uwk_reg_base + PERI_WK_CTRL1; mtk 304 drivers/usb/host/xhci-mtk.c reg = mtk->uwk_reg_base + PERI_SSUSB_SPM_CTRL; mtk 311 drivers/usb/host/xhci-mtk.c regmap_update_bits(mtk->uwk, reg, msk, val); mtk 314 drivers/usb/host/xhci-mtk.c static int usb_wakeup_of_property_parse(struct xhci_hcd_mtk *mtk, mtk 321 drivers/usb/host/xhci-mtk.c mtk->uwk_en = of_property_read_bool(dn, "wakeup-source"); mtk 322 drivers/usb/host/xhci-mtk.c if (!mtk->uwk_en) mtk 330 drivers/usb/host/xhci-mtk.c mtk->uwk_reg_base = args.args[0]; mtk 331 drivers/usb/host/xhci-mtk.c mtk->uwk_vers = args.args[1]; mtk 332 drivers/usb/host/xhci-mtk.c mtk->uwk = syscon_node_to_regmap(args.np); mtk 334 drivers/usb/host/xhci-mtk.c dev_info(mtk->dev, "uwk - reg:0x%x, version:%d\n", mtk 335 drivers/usb/host/xhci-mtk.c mtk->uwk_reg_base, mtk->uwk_vers); mtk 337 drivers/usb/host/xhci-mtk.c return PTR_ERR_OR_ZERO(mtk->uwk); mtk 341 drivers/usb/host/xhci-mtk.c static void usb_wakeup_set(struct xhci_hcd_mtk *mtk, bool enable) mtk 343 drivers/usb/host/xhci-mtk.c if (mtk->uwk_en) mtk 344 drivers/usb/host/xhci-mtk.c usb_wakeup_ip_sleep_set(mtk, enable); mtk 354 drivers/usb/host/xhci-mtk.c static int xhci_mtk_ldos_enable(struct xhci_hcd_mtk *mtk) mtk 358 drivers/usb/host/xhci-mtk.c ret = regulator_enable(mtk->vbus); mtk 360 drivers/usb/host/xhci-mtk.c dev_err(mtk->dev, "failed to enable vbus\n"); mtk 364 drivers/usb/host/xhci-mtk.c ret = regulator_enable(mtk->vusb33); mtk 366 drivers/usb/host/xhci-mtk.c dev_err(mtk->dev, "failed to enable vusb33\n"); mtk 367 drivers/usb/host/xhci-mtk.c regulator_disable(mtk->vbus); mtk 373 drivers/usb/host/xhci-mtk.c static void xhci_mtk_ldos_disable(struct xhci_hcd_mtk *mtk) mtk 375 drivers/usb/host/xhci-mtk.c regulator_disable(mtk->vbus); mtk 376 drivers/usb/host/xhci-mtk.c regulator_disable(mtk->vusb33); mtk 382 drivers/usb/host/xhci-mtk.c struct xhci_hcd_mtk *mtk = hcd_to_mtk(hcd); mtk 396 drivers/usb/host/xhci-mtk.c if (mtk->lpm_support) mtk 403 drivers/usb/host/xhci-mtk.c struct xhci_hcd_mtk *mtk = hcd_to_mtk(hcd); mtk 407 drivers/usb/host/xhci-mtk.c ret = xhci_mtk_ssusb_config(mtk); mtk 417 drivers/usb/host/xhci-mtk.c ret = xhci_mtk_sch_init(mtk); mtk 429 drivers/usb/host/xhci-mtk.c struct xhci_hcd_mtk *mtk; mtk 441 drivers/usb/host/xhci-mtk.c mtk = devm_kzalloc(dev, sizeof(*mtk), GFP_KERNEL); mtk 442 drivers/usb/host/xhci-mtk.c if (!mtk) mtk 445 drivers/usb/host/xhci-mtk.c mtk->dev = dev; mtk 446 drivers/usb/host/xhci-mtk.c mtk->vbus = devm_regulator_get(dev, "vbus"); mtk 447 drivers/usb/host/xhci-mtk.c if (IS_ERR(mtk->vbus)) { mtk 449 drivers/usb/host/xhci-mtk.c return PTR_ERR(mtk->vbus); mtk 452 drivers/usb/host/xhci-mtk.c mtk->vusb33 = devm_regulator_get(dev, "vusb33"); mtk 453 drivers/usb/host/xhci-mtk.c if (IS_ERR(mtk->vusb33)) { mtk 455 drivers/usb/host/xhci-mtk.c return PTR_ERR(mtk->vusb33); mtk 458 drivers/usb/host/xhci-mtk.c ret = xhci_mtk_clks_get(mtk); mtk 462 drivers/usb/host/xhci-mtk.c mtk->lpm_support = of_property_read_bool(node, "usb3-lpm-capable"); mtk 465 drivers/usb/host/xhci-mtk.c &mtk->u3p_dis_msk); mtk 467 drivers/usb/host/xhci-mtk.c ret = usb_wakeup_of_property_parse(mtk, node); mtk 477 drivers/usb/host/xhci-mtk.c ret = xhci_mtk_ldos_enable(mtk); mtk 481 drivers/usb/host/xhci-mtk.c ret = xhci_mtk_clks_enable(mtk); mtk 506 drivers/usb/host/xhci-mtk.c mtk->hcd = platform_get_drvdata(pdev); mtk 507 drivers/usb/host/xhci-mtk.c platform_set_drvdata(pdev, mtk); mtk 520 drivers/usb/host/xhci-mtk.c mtk->ippc_regs = devm_ioremap_resource(dev, res); mtk 521 drivers/usb/host/xhci-mtk.c if (IS_ERR(mtk->ippc_regs)) { mtk 522 drivers/usb/host/xhci-mtk.c ret = PTR_ERR(mtk->ippc_regs); mtk 525 drivers/usb/host/xhci-mtk.c mtk->has_ippc = true; mtk 527 drivers/usb/host/xhci-mtk.c mtk->has_ippc = false; mtk 567 drivers/usb/host/xhci-mtk.c xhci_mtk_sch_exit(mtk); mtk 577 drivers/usb/host/xhci-mtk.c xhci_mtk_clks_disable(mtk); mtk 580 drivers/usb/host/xhci-mtk.c xhci_mtk_ldos_disable(mtk); mtk 590 drivers/usb/host/xhci-mtk.c struct xhci_hcd_mtk *mtk = platform_get_drvdata(dev); mtk 591 drivers/usb/host/xhci-mtk.c struct usb_hcd *hcd = mtk->hcd; mtk 602 drivers/usb/host/xhci-mtk.c xhci_mtk_sch_exit(mtk); mtk 603 drivers/usb/host/xhci-mtk.c xhci_mtk_clks_disable(mtk); mtk 604 drivers/usb/host/xhci-mtk.c xhci_mtk_ldos_disable(mtk); mtk 620 drivers/usb/host/xhci-mtk.c struct xhci_hcd_mtk *mtk = dev_get_drvdata(dev); mtk 621 drivers/usb/host/xhci-mtk.c struct usb_hcd *hcd = mtk->hcd; mtk 630 drivers/usb/host/xhci-mtk.c xhci_mtk_host_disable(mtk); mtk 631 drivers/usb/host/xhci-mtk.c xhci_mtk_clks_disable(mtk); mtk 632 drivers/usb/host/xhci-mtk.c usb_wakeup_set(mtk, true); mtk 638 drivers/usb/host/xhci-mtk.c struct xhci_hcd_mtk *mtk = dev_get_drvdata(dev); mtk 639 drivers/usb/host/xhci-mtk.c struct usb_hcd *hcd = mtk->hcd; mtk 642 drivers/usb/host/xhci-mtk.c usb_wakeup_set(mtk, false); mtk 643 drivers/usb/host/xhci-mtk.c xhci_mtk_clks_enable(mtk); mtk 644 drivers/usb/host/xhci-mtk.c xhci_mtk_host_enable(mtk); mtk 163 drivers/usb/host/xhci-mtk.h int xhci_mtk_sch_init(struct xhci_hcd_mtk *mtk); mtk 164 drivers/usb/host/xhci-mtk.h void xhci_mtk_sch_exit(struct xhci_hcd_mtk *mtk);