1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * TSA management 4 * 5 * Copyright 2022 CS GROUP France 6 * 7 * Author: Herve Codina <herve.codina@bootlin.com> 8 */ 9 #ifndef __SOC_FSL_TSA_H__ 10 #define __SOC_FSL_TSA_H__ 11 12 #include <linux/types.h> 13 14 struct device_node; 15 struct device; 16 struct tsa_serial; 17 18 struct tsa_serial *tsa_serial_get_byphandle(struct device_node *np, 19 const char *phandle_name); 20 void tsa_serial_put(struct tsa_serial *tsa_serial); 21 struct tsa_serial *devm_tsa_serial_get_byphandle(struct device *dev, 22 struct device_node *np, 23 const char *phandle_name); 24 25 /* Connect and disconnect the TSA serial */ 26 int tsa_serial_connect(struct tsa_serial *tsa_serial); 27 int tsa_serial_disconnect(struct tsa_serial *tsa_serial); 28 29 /* Cell information */ 30 struct tsa_serial_info { 31 unsigned long rx_fs_rate; 32 unsigned long rx_bit_rate; 33 u8 nb_rx_ts; 34 unsigned long tx_fs_rate; 35 unsigned long tx_bit_rate; 36 u8 nb_tx_ts; 37 }; 38 39 /* Get information */ 40 int tsa_serial_get_info(struct tsa_serial *tsa_serial, struct tsa_serial_info *info); 41 42 /* Get serial number */ 43 int tsa_serial_get_num(struct tsa_serial *tsa_serial); 44 45 #endif /* __SOC_FSL_TSA_H__ */ 46