Lines Matching refs:platform
1402 static void anx7625_init_gpio(struct anx7625_data *platform)
1404 struct device *dev = platform->dev;
1409 platform->pdata.gpio_p_on =
1411 if (IS_ERR_OR_NULL(platform->pdata.gpio_p_on)) {
1413 platform->pdata.gpio_p_on = NULL;
1417 platform->pdata.gpio_reset =
1419 if (IS_ERR_OR_NULL(platform->pdata.gpio_reset)) {
1421 platform->pdata.gpio_reset = NULL;
1424 if (platform->pdata.gpio_p_on && platform->pdata.gpio_reset) {
1425 platform->pdata.low_power_mode = 1;
1427 desc_to_gpio(platform->pdata.gpio_p_on),
1428 desc_to_gpio(platform->pdata.gpio_reset));
1430 platform->pdata.low_power_mode = 0;
2606 struct anx7625_data *platform = container_of(aux, struct anx7625_data, aux);
2610 ret = anx7625_parse_dt_panel(dev, &platform->pdata);
2616 platform->bridge.funcs = &anx7625_bridge_funcs;
2617 platform->bridge.of_node = dev->of_node;
2619 platform->bridge.ops |= DRM_BRIDGE_OP_EDID;
2620 if (!platform->pdata.panel_bridge)
2621 platform->bridge.ops |= DRM_BRIDGE_OP_HPD |
2623 platform->bridge.type = platform->pdata.panel_bridge ?
2627 drm_bridge_add(&platform->bridge);
2629 if (!platform->pdata.is_dpi) {
2630 ret = anx7625_attach_dsi(platform);
2632 drm_bridge_remove(&platform->bridge);
2640 struct anx7625_data *platform;
2651 platform = devm_kzalloc(dev, sizeof(*platform), GFP_KERNEL);
2652 if (!platform) {
2657 pdata = &platform->pdata;
2659 platform->dev = &client->dev;
2660 i2c_set_clientdata(client, platform);
2671 anx7625_init_gpio(platform);
2673 mutex_init(&platform->lock);
2674 mutex_init(&platform->hdcp_wq_lock);
2675 mutex_init(&platform->aux_lock);
2677 INIT_DELAYED_WORK(&platform->hdcp_work, hdcp_check_work_func);
2678 platform->hdcp_workqueue = create_workqueue("hdcp workqueue");
2679 if (!platform->hdcp_workqueue) {
2685 platform->pdata.intp_irq = client->irq;
2686 if (platform->pdata.intp_irq) {
2687 INIT_WORK(&platform->work, anx7625_work_func);
2688 platform->workqueue = alloc_workqueue("anx7625_work",
2690 if (!platform->workqueue) {
2696 ret = devm_request_threaded_irq(dev, platform->pdata.intp_irq,
2700 "anx7625-intp", platform);
2707 platform->aux.name = "anx7625-aux";
2708 platform->aux.dev = dev;
2709 platform->aux.transfer = anx7625_aux_transfer;
2710 platform->aux.wait_hpd_asserted = anx7625_wait_hpd_asserted;
2711 drm_dp_aux_init(&platform->aux);
2720 if (!platform->pdata.is_dpi) {
2721 ret = anx7625_setup_dsi_device(platform);
2731 if (anx7625_register_i2c_dummy_clients(platform, client) != 0) {
2750 ret = devm_of_dp_aux_populate_bus(&platform->aux, anx7625_link_bridge);
2757 ret = anx7625_link_bridge(&platform->aux);
2762 if (!platform->pdata.low_power_mode) {
2763 anx7625_disable_pd_protocol(platform);
2765 _anx7625_hpd_polling(platform, 5000 * 100);
2769 if (platform->pdata.intp_irq)
2770 queue_work(platform->workqueue, &platform->work);
2772 if (platform->pdata.audio_en)
2773 anx7625_register_audio(dev, platform);
2780 if (platform->workqueue)
2781 destroy_workqueue(platform->workqueue);
2784 if (platform->hdcp_workqueue)
2785 destroy_workqueue(platform->hdcp_workqueue);
2792 struct anx7625_data *platform = i2c_get_clientdata(client);
2794 drm_bridge_remove(&platform->bridge);
2796 if (platform->pdata.intp_irq)
2797 destroy_workqueue(platform->workqueue);
2799 if (platform->hdcp_workqueue) {
2800 cancel_delayed_work(&platform->hdcp_work);
2801 flush_workqueue(platform->hdcp_workqueue);
2802 destroy_workqueue(platform->hdcp_workqueue);
2805 if (!platform->pdata.low_power_mode)
2808 if (platform->pdata.audio_en)
2809 anx7625_unregister_audio(platform);