1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Copyright (C) 2019 NVIDIA Corporation. All rights reserved. 4 * 5 * NVIDIA USB Type-C Alt Mode Driver 6 */ 7 #include <linux/module.h> 8 #include <linux/usb/typec_altmode.h> 9 #include <linux/usb/typec_dp.h> 10 #include "displayport.h" 11 nvidia_altmode_probe(struct typec_altmode * alt)12static int nvidia_altmode_probe(struct typec_altmode *alt) 13 { 14 if (alt->svid == USB_TYPEC_NVIDIA_VLINK_SID) 15 return dp_altmode_probe(alt); 16 else 17 return -ENOTSUPP; 18 } 19 nvidia_altmode_remove(struct typec_altmode * alt)20static void nvidia_altmode_remove(struct typec_altmode *alt) 21 { 22 if (alt->svid == USB_TYPEC_NVIDIA_VLINK_SID) 23 dp_altmode_remove(alt); 24 } 25 26 static const struct typec_device_id nvidia_typec_id[] = { 27 { USB_TYPEC_NVIDIA_VLINK_SID }, 28 { }, 29 }; 30 MODULE_DEVICE_TABLE(typec, nvidia_typec_id); 31 32 static struct typec_altmode_driver nvidia_altmode_driver = { 33 .id_table = nvidia_typec_id, 34 .probe = nvidia_altmode_probe, 35 .remove = nvidia_altmode_remove, 36 .driver = { 37 .name = "typec_nvidia", 38 }, 39 }; 40 module_typec_altmode_driver(nvidia_altmode_driver); 41 42 MODULE_LICENSE("GPL v2"); 43 MODULE_DESCRIPTION("NVIDIA USB Type-C Alt Mode Driver"); 44