palmas_usb 43 drivers/extcon/extcon-palmas.c struct palmas_usb *palmas_usb = _palmas_usb; palmas_usb 44 drivers/extcon/extcon-palmas.c struct extcon_dev *edev = palmas_usb->edev; palmas_usb 47 drivers/extcon/extcon-palmas.c palmas_read(palmas_usb->palmas, PALMAS_INTERRUPT_BASE, palmas_usb 51 drivers/extcon/extcon-palmas.c if (palmas_usb->linkstat != PALMAS_USB_STATE_VBUS) { palmas_usb 52 drivers/extcon/extcon-palmas.c palmas_usb->linkstat = PALMAS_USB_STATE_VBUS; palmas_usb 54 drivers/extcon/extcon-palmas.c dev_dbg(palmas_usb->dev, "USB cable is attached\n"); palmas_usb 56 drivers/extcon/extcon-palmas.c dev_dbg(palmas_usb->dev, palmas_usb 60 drivers/extcon/extcon-palmas.c if (palmas_usb->linkstat == PALMAS_USB_STATE_VBUS) { palmas_usb 61 drivers/extcon/extcon-palmas.c palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT; palmas_usb 63 drivers/extcon/extcon-palmas.c dev_dbg(palmas_usb->dev, "USB cable is detached\n"); palmas_usb 65 drivers/extcon/extcon-palmas.c dev_dbg(palmas_usb->dev, palmas_usb 76 drivers/extcon/extcon-palmas.c struct palmas_usb *palmas_usb = _palmas_usb; palmas_usb 77 drivers/extcon/extcon-palmas.c struct extcon_dev *edev = palmas_usb->edev; palmas_usb 79 drivers/extcon/extcon-palmas.c palmas_read(palmas_usb->palmas, PALMAS_USB_OTG_BASE, palmas_usb 81 drivers/extcon/extcon-palmas.c palmas_read(palmas_usb->palmas, PALMAS_USB_OTG_BASE, palmas_usb 86 drivers/extcon/extcon-palmas.c palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE, palmas_usb 89 drivers/extcon/extcon-palmas.c palmas_usb->linkstat = PALMAS_USB_STATE_ID; palmas_usb 91 drivers/extcon/extcon-palmas.c dev_dbg(palmas_usb->dev, "USB-HOST cable is attached\n"); palmas_usb 94 drivers/extcon/extcon-palmas.c palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE, palmas_usb 97 drivers/extcon/extcon-palmas.c palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT; palmas_usb 99 drivers/extcon/extcon-palmas.c dev_dbg(palmas_usb->dev, "USB-HOST cable is detached\n"); palmas_usb 100 drivers/extcon/extcon-palmas.c } else if ((palmas_usb->linkstat == PALMAS_USB_STATE_ID) && palmas_usb 102 drivers/extcon/extcon-palmas.c palmas_usb->linkstat = PALMAS_USB_STATE_DISCONNECT; palmas_usb 104 drivers/extcon/extcon-palmas.c dev_dbg(palmas_usb->dev, "USB-HOST cable is detached\n"); palmas_usb 105 drivers/extcon/extcon-palmas.c } else if ((palmas_usb->linkstat == PALMAS_USB_STATE_DISCONNECT) && palmas_usb 107 drivers/extcon/extcon-palmas.c palmas_usb->linkstat = PALMAS_USB_STATE_ID; palmas_usb 109 drivers/extcon/extcon-palmas.c dev_dbg(palmas_usb->dev, " USB-HOST cable is attached\n"); palmas_usb 118 drivers/extcon/extcon-palmas.c struct palmas_usb *palmas_usb = container_of(to_delayed_work(work), palmas_usb 119 drivers/extcon/extcon-palmas.c struct palmas_usb, palmas_usb 121 drivers/extcon/extcon-palmas.c struct extcon_dev *edev = palmas_usb->edev; palmas_usb 123 drivers/extcon/extcon-palmas.c if (!palmas_usb->id_gpiod) palmas_usb 126 drivers/extcon/extcon-palmas.c id = gpiod_get_value_cansleep(palmas_usb->id_gpiod); palmas_usb 130 drivers/extcon/extcon-palmas.c dev_dbg(palmas_usb->dev, "USB-HOST cable is detached\n"); palmas_usb 133 drivers/extcon/extcon-palmas.c dev_dbg(palmas_usb->dev, "USB-HOST cable is attached\n"); palmas_usb 139 drivers/extcon/extcon-palmas.c struct palmas_usb *palmas_usb = _palmas_usb; palmas_usb 141 drivers/extcon/extcon-palmas.c queue_delayed_work(system_power_efficient_wq, &palmas_usb->wq_detectid, palmas_usb 142 drivers/extcon/extcon-palmas.c palmas_usb->sw_debounce_jiffies); palmas_usb 147 drivers/extcon/extcon-palmas.c static void palmas_enable_irq(struct palmas_usb *palmas_usb) palmas_usb 149 drivers/extcon/extcon-palmas.c palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE, palmas_usb 153 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_id_detection) { palmas_usb 154 drivers/extcon/extcon-palmas.c palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE, palmas_usb 158 drivers/extcon/extcon-palmas.c palmas_write(palmas_usb->palmas, PALMAS_USB_OTG_BASE, palmas_usb 164 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_vbus_detection) palmas_usb 165 drivers/extcon/extcon-palmas.c palmas_vbus_irq_handler(palmas_usb->vbus_irq, palmas_usb); palmas_usb 168 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_id_detection) { palmas_usb 170 drivers/extcon/extcon-palmas.c palmas_id_irq_handler(palmas_usb->id_irq, palmas_usb); palmas_usb 179 drivers/extcon/extcon-palmas.c struct palmas_usb *palmas_usb; palmas_usb 187 drivers/extcon/extcon-palmas.c palmas_usb = devm_kzalloc(&pdev->dev, sizeof(*palmas_usb), GFP_KERNEL); palmas_usb 188 drivers/extcon/extcon-palmas.c if (!palmas_usb) palmas_usb 192 drivers/extcon/extcon-palmas.c palmas_usb->wakeup = of_property_read_bool(node, "ti,wakeup"); palmas_usb 193 drivers/extcon/extcon-palmas.c palmas_usb->enable_id_detection = of_property_read_bool(node, palmas_usb 195 drivers/extcon/extcon-palmas.c palmas_usb->enable_vbus_detection = of_property_read_bool(node, palmas_usb 198 drivers/extcon/extcon-palmas.c palmas_usb->wakeup = true; palmas_usb 199 drivers/extcon/extcon-palmas.c palmas_usb->enable_id_detection = true; palmas_usb 200 drivers/extcon/extcon-palmas.c palmas_usb->enable_vbus_detection = true; palmas_usb 203 drivers/extcon/extcon-palmas.c palmas_usb->wakeup = pdata->wakeup; palmas_usb 206 drivers/extcon/extcon-palmas.c palmas_usb->id_gpiod = devm_gpiod_get_optional(&pdev->dev, "id", palmas_usb 208 drivers/extcon/extcon-palmas.c if (IS_ERR(palmas_usb->id_gpiod)) { palmas_usb 210 drivers/extcon/extcon-palmas.c return PTR_ERR(palmas_usb->id_gpiod); palmas_usb 213 drivers/extcon/extcon-palmas.c palmas_usb->vbus_gpiod = devm_gpiod_get_optional(&pdev->dev, "vbus", palmas_usb 215 drivers/extcon/extcon-palmas.c if (IS_ERR(palmas_usb->vbus_gpiod)) { palmas_usb 217 drivers/extcon/extcon-palmas.c return PTR_ERR(palmas_usb->vbus_gpiod); palmas_usb 220 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_id_detection && palmas_usb->id_gpiod) { palmas_usb 221 drivers/extcon/extcon-palmas.c palmas_usb->enable_id_detection = false; palmas_usb 222 drivers/extcon/extcon-palmas.c palmas_usb->enable_gpio_id_detection = true; palmas_usb 225 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_vbus_detection && palmas_usb->vbus_gpiod) { palmas_usb 226 drivers/extcon/extcon-palmas.c palmas_usb->enable_vbus_detection = false; palmas_usb 227 drivers/extcon/extcon-palmas.c palmas_usb->enable_gpio_vbus_detection = true; palmas_usb 230 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_gpio_id_detection) { palmas_usb 236 drivers/extcon/extcon-palmas.c status = gpiod_set_debounce(palmas_usb->id_gpiod, palmas_usb 239 drivers/extcon/extcon-palmas.c palmas_usb->sw_debounce_jiffies = msecs_to_jiffies(debounce); palmas_usb 242 drivers/extcon/extcon-palmas.c INIT_DELAYED_WORK(&palmas_usb->wq_detectid, palmas_gpio_id_detect); palmas_usb 244 drivers/extcon/extcon-palmas.c palmas->usb = palmas_usb; palmas_usb 245 drivers/extcon/extcon-palmas.c palmas_usb->palmas = palmas; palmas_usb 247 drivers/extcon/extcon-palmas.c palmas_usb->dev = &pdev->dev; palmas_usb 249 drivers/extcon/extcon-palmas.c palmas_usb_wakeup(palmas, palmas_usb->wakeup); palmas_usb 251 drivers/extcon/extcon-palmas.c platform_set_drvdata(pdev, palmas_usb); palmas_usb 253 drivers/extcon/extcon-palmas.c palmas_usb->edev = devm_extcon_dev_allocate(&pdev->dev, palmas_usb 255 drivers/extcon/extcon-palmas.c if (IS_ERR(palmas_usb->edev)) { palmas_usb 260 drivers/extcon/extcon-palmas.c status = devm_extcon_dev_register(&pdev->dev, palmas_usb->edev); palmas_usb 266 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_id_detection) { palmas_usb 267 drivers/extcon/extcon-palmas.c palmas_usb->id_otg_irq = regmap_irq_get_virq(palmas->irq_data, palmas_usb 269 drivers/extcon/extcon-palmas.c palmas_usb->id_irq = regmap_irq_get_virq(palmas->irq_data, palmas_usb 271 drivers/extcon/extcon-palmas.c status = devm_request_threaded_irq(palmas_usb->dev, palmas_usb 272 drivers/extcon/extcon-palmas.c palmas_usb->id_irq, palmas_usb 276 drivers/extcon/extcon-palmas.c "palmas_usb_id", palmas_usb); palmas_usb 279 drivers/extcon/extcon-palmas.c palmas_usb->id_irq, status); palmas_usb 282 drivers/extcon/extcon-palmas.c } else if (palmas_usb->enable_gpio_id_detection) { palmas_usb 283 drivers/extcon/extcon-palmas.c palmas_usb->gpio_id_irq = gpiod_to_irq(palmas_usb->id_gpiod); palmas_usb 284 drivers/extcon/extcon-palmas.c if (palmas_usb->gpio_id_irq < 0) { palmas_usb 286 drivers/extcon/extcon-palmas.c return palmas_usb->gpio_id_irq; palmas_usb 289 drivers/extcon/extcon-palmas.c palmas_usb->gpio_id_irq, palmas_usb 296 drivers/extcon/extcon-palmas.c palmas_usb); palmas_usb 304 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_vbus_detection) { palmas_usb 305 drivers/extcon/extcon-palmas.c palmas_usb->vbus_otg_irq = regmap_irq_get_virq(palmas->irq_data, palmas_usb 307 drivers/extcon/extcon-palmas.c palmas_usb->vbus_irq = regmap_irq_get_virq(palmas->irq_data, palmas_usb 309 drivers/extcon/extcon-palmas.c status = devm_request_threaded_irq(palmas_usb->dev, palmas_usb 310 drivers/extcon/extcon-palmas.c palmas_usb->vbus_irq, NULL, palmas_usb 314 drivers/extcon/extcon-palmas.c "palmas_usb_vbus", palmas_usb); palmas_usb 317 drivers/extcon/extcon-palmas.c palmas_usb->vbus_irq, status); palmas_usb 320 drivers/extcon/extcon-palmas.c } else if (palmas_usb->enable_gpio_vbus_detection) { palmas_usb 332 drivers/extcon/extcon-palmas.c palmas_usb->vbus_otg_irq = regmap_irq_get_virq(palmas->irq_data, palmas_usb 334 drivers/extcon/extcon-palmas.c palmas_usb->gpio_vbus_irq = gpiod_to_irq(palmas_usb->vbus_gpiod); palmas_usb 335 drivers/extcon/extcon-palmas.c if (palmas_usb->gpio_vbus_irq < 0) { palmas_usb 337 drivers/extcon/extcon-palmas.c return palmas_usb->gpio_vbus_irq; palmas_usb 340 drivers/extcon/extcon-palmas.c palmas_usb->gpio_vbus_irq, palmas_usb 347 drivers/extcon/extcon-palmas.c palmas_usb); palmas_usb 355 drivers/extcon/extcon-palmas.c palmas_enable_irq(palmas_usb); palmas_usb 357 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_gpio_vbus_detection) palmas_usb 358 drivers/extcon/extcon-palmas.c palmas_vbus_irq_handler(palmas_usb->gpio_vbus_irq, palmas_usb); palmas_usb 359 drivers/extcon/extcon-palmas.c palmas_gpio_id_detect(&palmas_usb->wq_detectid.work); palmas_usb 366 drivers/extcon/extcon-palmas.c struct palmas_usb *palmas_usb = platform_get_drvdata(pdev); palmas_usb 368 drivers/extcon/extcon-palmas.c cancel_delayed_work_sync(&palmas_usb->wq_detectid); palmas_usb 376 drivers/extcon/extcon-palmas.c struct palmas_usb *palmas_usb = dev_get_drvdata(dev); palmas_usb 379 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_vbus_detection) palmas_usb 380 drivers/extcon/extcon-palmas.c enable_irq_wake(palmas_usb->vbus_irq); palmas_usb 381 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_gpio_vbus_detection) palmas_usb 382 drivers/extcon/extcon-palmas.c enable_irq_wake(palmas_usb->gpio_vbus_irq); palmas_usb 383 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_id_detection) palmas_usb 384 drivers/extcon/extcon-palmas.c enable_irq_wake(palmas_usb->id_irq); palmas_usb 385 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_gpio_id_detection) palmas_usb 386 drivers/extcon/extcon-palmas.c enable_irq_wake(palmas_usb->gpio_id_irq); palmas_usb 393 drivers/extcon/extcon-palmas.c struct palmas_usb *palmas_usb = dev_get_drvdata(dev); palmas_usb 396 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_vbus_detection) palmas_usb 397 drivers/extcon/extcon-palmas.c disable_irq_wake(palmas_usb->vbus_irq); palmas_usb 398 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_gpio_vbus_detection) palmas_usb 399 drivers/extcon/extcon-palmas.c disable_irq_wake(palmas_usb->gpio_vbus_irq); palmas_usb 400 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_id_detection) palmas_usb 401 drivers/extcon/extcon-palmas.c disable_irq_wake(palmas_usb->id_irq); palmas_usb 402 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_gpio_id_detection) palmas_usb 403 drivers/extcon/extcon-palmas.c disable_irq_wake(palmas_usb->gpio_id_irq); palmas_usb 407 drivers/extcon/extcon-palmas.c if (palmas_usb->enable_gpio_vbus_detection) palmas_usb 408 drivers/extcon/extcon-palmas.c palmas_vbus_irq_handler(palmas_usb->gpio_vbus_irq, palmas_usb); palmas_usb 409 drivers/extcon/extcon-palmas.c palmas_gpio_id_detect(&palmas_usb->wq_detectid.work); palmas_usb 51 include/linux/mfd/palmas.h struct palmas_usb; palmas_usb 83 include/linux/mfd/palmas.h struct palmas_usb *usb; palmas_usb 593 include/linux/mfd/palmas.h #define comparator_to_palmas(x) container_of((x), struct palmas_usb, comparator)