Lines Matching +full:b +full:- +full:facing

1 // SPDX-License-Identifier: GPL-2.0
3 * drivers/extcon/extcon-tusb320.c - TUSB320 extcon driver
9 #include <linux/extcon-provider.h>
35 [TUSB320_ATTACHED_STATE_DFP] = "downstream facing port",
36 [TUSB320_ATTACHED_STATE_UFP] = "upstream facing port",
48 static const char sig[] = { '\0', 'T', 'U', 'S', 'B', '3', '2', '0' }; in tusb320_check_signature()
53 ret = regmap_read(priv->regmap, sizeof(sig) - 1 - i, &val); in tusb320_check_signature()
57 dev_err(priv->dev, "signature mismatch!\n"); in tusb320_check_signature()
58 return -ENODEV; in tusb320_check_signature()
71 if (regmap_read(priv->regmap, TUSB320_REG9, &reg)) { in tusb320_irq_handler()
72 dev_err(priv->dev, "error during i2c read!\n"); in tusb320_irq_handler()
83 dev_dbg(priv->dev, "attached state: %s, polarity: %d\n", in tusb320_irq_handler()
86 extcon_set_state(priv->edev, EXTCON_USB, in tusb320_irq_handler()
88 extcon_set_state(priv->edev, EXTCON_USB_HOST, in tusb320_irq_handler()
90 extcon_set_property(priv->edev, EXTCON_USB, in tusb320_irq_handler()
93 extcon_set_property(priv->edev, EXTCON_USB_HOST, in tusb320_irq_handler()
96 extcon_sync(priv->edev, EXTCON_USB); in tusb320_irq_handler()
97 extcon_sync(priv->edev, EXTCON_USB_HOST); in tusb320_irq_handler()
99 regmap_write(priv->regmap, TUSB320_REG9, reg); in tusb320_irq_handler()
115 priv = devm_kzalloc(&client->dev, sizeof(*priv), GFP_KERNEL); in tusb320_extcon_probe()
117 return -ENOMEM; in tusb320_extcon_probe()
118 priv->dev = &client->dev; in tusb320_extcon_probe()
120 priv->regmap = devm_regmap_init_i2c(client, &tusb320_regmap_config); in tusb320_extcon_probe()
121 if (IS_ERR(priv->regmap)) in tusb320_extcon_probe()
122 return PTR_ERR(priv->regmap); in tusb320_extcon_probe()
128 priv->edev = devm_extcon_dev_allocate(priv->dev, tusb320_extcon_cable); in tusb320_extcon_probe()
129 if (IS_ERR(priv->edev)) { in tusb320_extcon_probe()
130 dev_err(priv->dev, "failed to allocate extcon device\n"); in tusb320_extcon_probe()
131 return PTR_ERR(priv->edev); in tusb320_extcon_probe()
134 ret = devm_extcon_dev_register(priv->dev, priv->edev); in tusb320_extcon_probe()
136 dev_err(priv->dev, "failed to register extcon device\n"); in tusb320_extcon_probe()
140 extcon_set_property_capability(priv->edev, EXTCON_USB, in tusb320_extcon_probe()
142 extcon_set_property_capability(priv->edev, EXTCON_USB_HOST, in tusb320_extcon_probe()
146 tusb320_irq_handler(client->irq, priv); in tusb320_extcon_probe()
148 ret = devm_request_threaded_irq(priv->dev, client->irq, NULL, in tusb320_extcon_probe()
151 client->name, priv); in tusb320_extcon_probe()
165 .name = "extcon-tusb320",