Jukka Rissanen | b5525a0 | 2020-04-01 12:42:12 +0300 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (c) 2020 Intel Corporation |
| 3 | * |
| 4 | * SPDX-License-Identifier: Apache-2.0 |
| 5 | */ |
| 6 | |
| 7 | #define DLCI_CONTROL 0 |
Jukka Rissanen | 492088b | 2020-03-30 17:07:11 +0300 | [diff] [blame] | 8 | |
Erwan Gouriou | 66d4c64 | 2022-12-19 17:11:01 +0100 | [diff] [blame] | 9 | #if defined(CONFIG_GSM_MUX) |
Jukka Rissanen | b5525a0 | 2020-04-01 12:42:12 +0300 | [diff] [blame] | 10 | #define DLCI_AT CONFIG_GSM_MUX_DLCI_AT |
| 11 | #define DLCI_PPP CONFIG_GSM_MUX_DLCI_PPP |
Jukka Rissanen | 492088b | 2020-03-30 17:07:11 +0300 | [diff] [blame] | 12 | #else |
| 13 | #define DLCI_AT -1 |
| 14 | #define DLCI_PPP -1 |
| 15 | #endif |
Jukka Rissanen | b5525a0 | 2020-04-01 12:42:12 +0300 | [diff] [blame] | 16 | |
| 17 | struct gsm_mux; |
| 18 | struct gsm_dlci; |
| 19 | |
Kumar Gala | a1b77fd | 2020-05-27 11:26:57 -0500 | [diff] [blame] | 20 | void gsm_mux_recv_buf(struct gsm_mux *mux, uint8_t *buf, int len); |
| 21 | int gsm_mux_send(struct gsm_mux *mux, uint8_t dlci_address, |
| 22 | const uint8_t *buf, size_t size); |
Tomasz Bursztyka | e18fcbb | 2020-04-30 20:33:38 +0200 | [diff] [blame] | 23 | struct gsm_mux *gsm_mux_create(const struct device *uart); |
Jukka Rissanen | d75c83c | 2020-04-08 11:19:06 +0300 | [diff] [blame] | 24 | int gsm_mux_disconnect(struct gsm_mux *mux, k_timeout_t timeout); |
Jukka Rissanen | b5525a0 | 2020-04-01 12:42:12 +0300 | [diff] [blame] | 25 | void gsm_mux_init(void); |
| 26 | |
| 27 | typedef void (*gsm_mux_dlci_created_cb_t)(struct gsm_dlci *dlci, |
| 28 | bool connected, |
| 29 | void *user_data); |
| 30 | |
| 31 | int gsm_dlci_create(struct gsm_mux *mux, |
Tomasz Bursztyka | e18fcbb | 2020-04-30 20:33:38 +0200 | [diff] [blame] | 32 | const struct device *uart, |
Jukka Rissanen | b5525a0 | 2020-04-01 12:42:12 +0300 | [diff] [blame] | 33 | int dlci_address, |
| 34 | gsm_mux_dlci_created_cb_t dlci_created_cb, |
| 35 | void *user_data, |
| 36 | struct gsm_dlci **dlci); |
Kumar Gala | a1b77fd | 2020-05-27 11:26:57 -0500 | [diff] [blame] | 37 | int gsm_dlci_send(struct gsm_dlci *dlci, const uint8_t *buf, size_t size); |
Jukka Rissanen | b5525a0 | 2020-04-01 12:42:12 +0300 | [diff] [blame] | 38 | int gsm_dlci_id(struct gsm_dlci *dlci); |
Benjamin Lindqvist | 54cb2bc | 2020-10-05 13:58:55 +0200 | [diff] [blame] | 39 | void gsm_mux_detach(struct gsm_mux *mux); |