linux/drivers/usb/typec/altmodes/nvidia.c
<<
>>
Prefs
   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
  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
  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
  26static const struct typec_device_id nvidia_typec_id[] = {
  27        { USB_TYPEC_NVIDIA_VLINK_SID, TYPEC_ANY_MODE },
  28        { },
  29};
  30MODULE_DEVICE_TABLE(typec, nvidia_typec_id);
  31
  32static 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                .owner = THIS_MODULE,
  39        },
  40};
  41module_typec_altmode_driver(nvidia_altmode_driver);
  42
  43MODULE_LICENSE("GPL v2");
  44MODULE_DESCRIPTION("NVIDIA USB Type-C Alt Mode Driver");
  45