wcove 179 drivers/usb/typec/tcpm/wcove.c static int wcove_typec_func(struct wcove_typec *wcove, wcove 189 drivers/usb/typec/tcpm/wcove.c obj = acpi_evaluate_dsm(ACPI_HANDLE(wcove->dev), &wcove->guid, 1, func, wcove 192 drivers/usb/typec/tcpm/wcove.c dev_err(wcove->dev, "%s: failed to evaluate _DSM\n", __func__); wcove 202 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 205 drivers/usb/typec/tcpm/wcove.c ret = regmap_write(wcove->regmap, USBC_CONTROL1, 0); wcove 210 drivers/usb/typec/tcpm/wcove.c ret = regmap_write(wcove->regmap, USBC_IRQMASK1, 0); wcove 214 drivers/usb/typec/tcpm/wcove.c return regmap_write(wcove->regmap, USBC_IRQMASK2, 0); wcove 219 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 223 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_CC1_CTRL, &cc1ctrl); wcove 227 drivers/usb/typec/tcpm/wcove.c wcove->vbus = !!(cc1ctrl & USBC_CC_CTRL_VBUSOK); wcove 229 drivers/usb/typec/tcpm/wcove.c return wcove->vbus; wcove 234 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 236 drivers/usb/typec/tcpm/wcove.c return wcove_typec_func(wcove, WCOVE_FUNC_DRIVE_VBUS, on); wcove 241 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 243 drivers/usb/typec/tcpm/wcove.c return wcove_typec_func(wcove, WCOVE_FUNC_DRIVE_VCONN, on); wcove 271 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 276 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_CC1_STATUS, &cc1_status); wcove 280 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_CC2_STATUS, &cc2_status); wcove 292 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 315 drivers/usb/typec/tcpm/wcove.c return regmap_write(wcove->regmap, USBC_CONTROL1, ctrl); wcove 320 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 322 drivers/usb/typec/tcpm/wcove.c return wcove_typec_func(wcove, WCOVE_FUNC_ORIENTATION, pol); wcove 333 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 337 drivers/usb/typec/tcpm/wcove.c ret = wcove_typec_func(wcove, WCOVE_FUNC_ROLE, data == TYPEC_HOST ? wcove 346 drivers/usb/typec/tcpm/wcove.c return regmap_write(wcove->regmap, USBC_PDCFG3, val); wcove 351 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 353 drivers/usb/typec/tcpm/wcove.c return regmap_write(wcove->regmap, USBC_PDCFG2, wcove 361 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 366 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_TXCMD, &cmd); wcove 371 drivers/usb/typec/tcpm/wcove.c dev_warn(wcove->dev, "%s: Last transmission still ongoing!", wcove 381 drivers/usb/typec/tcpm/wcove.c ret = regmap_write(wcove->regmap, USBC_TX_DATA + i, wcove 411 drivers/usb/typec/tcpm/wcove.c ret = regmap_write(wcove->regmap, USBC_TXINFO, wcove 416 drivers/usb/typec/tcpm/wcove.c return regmap_write(wcove->regmap, USBC_TXCMD, cmd | USBC_TXCMD_START); wcove 423 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = tcpc_to_wcove(tcpc); wcove 443 drivers/usb/typec/tcpm/wcove.c return regmap_write(wcove->regmap, USBC_CONTROL1, usbc_ctrl); wcove 446 drivers/usb/typec/tcpm/wcove.c static int wcove_read_rx_buffer(struct wcove_typec *wcove, void *msg) wcove 452 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_RXINFO, &info); wcove 459 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_RX_DATA + i, msg + i); wcove 464 drivers/usb/typec/tcpm/wcove.c return regmap_write(wcove->regmap, USBC_RXSTATUS, wcove 470 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = data; wcove 476 drivers/usb/typec/tcpm/wcove.c mutex_lock(&wcove->lock); wcove 479 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_IRQ1, &usbc_irq1); wcove 483 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_IRQ2, &usbc_irq2); wcove 487 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_CC1_CTRL, &cc1ctrl); wcove 491 drivers/usb/typec/tcpm/wcove.c if (!wcove->tcpm) wcove 496 drivers/usb/typec/tcpm/wcove.c dev_err(wcove->dev, "VCONN Switch Over Temperature!\n"); wcove 497 drivers/usb/typec/tcpm/wcove.c wcove_typec_func(wcove, WCOVE_FUNC_DRIVE_VCONN, false); wcove 502 drivers/usb/typec/tcpm/wcove.c dev_err(wcove->dev, "VCONN Switch Short Circuit!\n"); wcove 503 drivers/usb/typec/tcpm/wcove.c wcove_typec_func(wcove, WCOVE_FUNC_DRIVE_VCONN, false); wcove 507 drivers/usb/typec/tcpm/wcove.c if (wcove->vbus != !!(cc1ctrl & USBC_CC_CTRL_VBUSOK)) wcove 508 drivers/usb/typec/tcpm/wcove.c tcpm_vbus_change(wcove->tcpm); wcove 512 drivers/usb/typec/tcpm/wcove.c tcpm_cc_change(wcove->tcpm); wcove 522 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_RXSTATUS, &status); wcove 530 drivers/usb/typec/tcpm/wcove.c ret = wcove_read_rx_buffer(wcove, &msg); wcove 532 drivers/usb/typec/tcpm/wcove.c dev_err(wcove->dev, "%s: RX read failed\n", wcove 537 drivers/usb/typec/tcpm/wcove.c tcpm_pd_receive(wcove->tcpm, &msg); wcove 539 drivers/usb/typec/tcpm/wcove.c ret = regmap_read(wcove->regmap, USBC_RXSTATUS, wcove 547 drivers/usb/typec/tcpm/wcove.c tcpm_pd_hard_reset(wcove->tcpm); wcove 552 drivers/usb/typec/tcpm/wcove.c tcpm_pd_transmit_complete(wcove->tcpm, TCPC_TX_SUCCESS); wcove 555 drivers/usb/typec/tcpm/wcove.c tcpm_pd_transmit_complete(wcove->tcpm, TCPC_TX_FAILED); wcove 560 drivers/usb/typec/tcpm/wcove.c ret = regmap_write(wcove->regmap, USBC_IRQ1, usbc_irq1); wcove 562 drivers/usb/typec/tcpm/wcove.c dev_WARN(wcove->dev, "%s failed to clear IRQ1\n", wcove 567 drivers/usb/typec/tcpm/wcove.c ret = regmap_write(wcove->regmap, USBC_IRQ2, usbc_irq2); wcove 569 drivers/usb/typec/tcpm/wcove.c dev_WARN(wcove->dev, "%s failed to clear IRQ2\n", wcove 574 drivers/usb/typec/tcpm/wcove.c regmap_write(wcove->regmap, WCOVE_CHGRIRQ0, BIT(5)); wcove 576 drivers/usb/typec/tcpm/wcove.c mutex_unlock(&wcove->lock); wcove 607 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove; wcove 611 drivers/usb/typec/tcpm/wcove.c wcove = devm_kzalloc(&pdev->dev, sizeof(*wcove), GFP_KERNEL); wcove 612 drivers/usb/typec/tcpm/wcove.c if (!wcove) wcove 615 drivers/usb/typec/tcpm/wcove.c mutex_init(&wcove->lock); wcove 616 drivers/usb/typec/tcpm/wcove.c wcove->dev = &pdev->dev; wcove 617 drivers/usb/typec/tcpm/wcove.c wcove->regmap = pmic->regmap; wcove 627 drivers/usb/typec/tcpm/wcove.c ret = guid_parse(WCOVE_DSM_UUID, &wcove->guid); wcove 631 drivers/usb/typec/tcpm/wcove.c if (!acpi_check_dsm(ACPI_HANDLE(&pdev->dev), &wcove->guid, 0, 0x1f)) { wcove 636 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.init = wcove_init; wcove 637 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.get_vbus = wcove_get_vbus; wcove 638 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.set_vbus = wcove_set_vbus; wcove 639 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.set_cc = wcove_set_cc; wcove 640 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.get_cc = wcove_get_cc; wcove 641 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.set_polarity = wcove_set_polarity; wcove 642 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.set_vconn = wcove_set_vconn; wcove 643 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.set_current_limit = wcove_set_current_limit; wcove 644 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.start_toggling = wcove_start_toggling; wcove 646 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.set_pd_rx = wcove_set_pd_rx; wcove 647 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.set_roles = wcove_set_roles; wcove 648 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.pd_transmit = wcove_pd_transmit; wcove 650 drivers/usb/typec/tcpm/wcove.c wcove->tcpc.fwnode = fwnode_create_software_node(wcove_props, NULL); wcove 651 drivers/usb/typec/tcpm/wcove.c if (IS_ERR(wcove->tcpc.fwnode)) wcove 652 drivers/usb/typec/tcpm/wcove.c return PTR_ERR(wcove->tcpc.fwnode); wcove 654 drivers/usb/typec/tcpm/wcove.c wcove->tcpm = tcpm_register_port(wcove->dev, &wcove->tcpc); wcove 655 drivers/usb/typec/tcpm/wcove.c if (IS_ERR(wcove->tcpm)) { wcove 656 drivers/usb/typec/tcpm/wcove.c fwnode_remove_software_node(wcove->tcpc.fwnode); wcove 657 drivers/usb/typec/tcpm/wcove.c return PTR_ERR(wcove->tcpm); wcove 662 drivers/usb/typec/tcpm/wcove.c "wcove_typec", wcove); wcove 664 drivers/usb/typec/tcpm/wcove.c tcpm_unregister_port(wcove->tcpm); wcove 665 drivers/usb/typec/tcpm/wcove.c fwnode_remove_software_node(wcove->tcpc.fwnode); wcove 669 drivers/usb/typec/tcpm/wcove.c platform_set_drvdata(pdev, wcove); wcove 675 drivers/usb/typec/tcpm/wcove.c struct wcove_typec *wcove = platform_get_drvdata(pdev); wcove 679 drivers/usb/typec/tcpm/wcove.c regmap_read(wcove->regmap, USBC_IRQMASK1, &val); wcove 680 drivers/usb/typec/tcpm/wcove.c regmap_write(wcove->regmap, USBC_IRQMASK1, val | USBC_IRQMASK1_ALL); wcove 681 drivers/usb/typec/tcpm/wcove.c regmap_read(wcove->regmap, USBC_IRQMASK2, &val); wcove 682 drivers/usb/typec/tcpm/wcove.c regmap_write(wcove->regmap, USBC_IRQMASK2, val | USBC_IRQMASK2_ALL); wcove 684 drivers/usb/typec/tcpm/wcove.c tcpm_unregister_port(wcove->tcpm); wcove 685 drivers/usb/typec/tcpm/wcove.c fwnode_remove_software_node(wcove->tcpc.fwnode);