1/*	$NetBSD: intel_tc.h,v 1.2 2021/12/18 23:45:30 riastradh Exp $	*/
2
3/* SPDX-License-Identifier: MIT */
4/*
5 * Copyright �� 2019 Intel Corporation
6 */
7
8#ifndef __INTEL_TC_H__
9#define __INTEL_TC_H__
10
11#include <linux/mutex.h>
12#include <linux/types.h>
13
14struct intel_digital_port;
15
16bool intel_tc_port_connected(struct intel_digital_port *dig_port);
17u32 intel_tc_port_get_lane_mask(struct intel_digital_port *dig_port);
18u32 intel_tc_port_get_pin_assignment_mask(struct intel_digital_port *dig_port);
19int intel_tc_port_fia_max_lane_count(struct intel_digital_port *dig_port);
20void intel_tc_port_set_fia_lane_count(struct intel_digital_port *dig_port,
21				      int required_lanes);
22
23void intel_tc_port_sanitize(struct intel_digital_port *dig_port);
24void intel_tc_port_lock(struct intel_digital_port *dig_port);
25void intel_tc_port_unlock(struct intel_digital_port *dig_port);
26void intel_tc_port_get_link(struct intel_digital_port *dig_port,
27			    int required_lanes);
28void intel_tc_port_put_link(struct intel_digital_port *dig_port);
29bool intel_tc_port_ref_held(struct intel_digital_port *dig_port);
30
31void intel_tc_port_init(struct intel_digital_port *dig_port, bool is_legacy);
32
33#endif /* __INTEL_TC_H__ */
34