^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * mxl111sf-gpio.h - driver for the MaxLinear MXL111SF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * Copyright (C) 2010-2014 Michael Krufky <mkrufky@linuxtv.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #ifndef _DVB_USB_MXL111SF_GPIO_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #define _DVB_USB_MXL111SF_GPIO_H_
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include "mxl111sf.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) int mxl111sf_set_gpio(struct mxl111sf_state *state, int gpio, int val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) int mxl111sf_init_port_expander(struct mxl111sf_state *state);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define MXL111SF_GPIO_MOD_DVBT 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define MXL111SF_GPIO_MOD_MH 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #define MXL111SF_GPIO_MOD_ATSC 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) int mxl111sf_gpio_mode_switch(struct mxl111sf_state *state, unsigned int mode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) enum mxl111sf_mux_config {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) PIN_MUX_DEFAULT = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) PIN_MUX_TS_OUT_PARALLEL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) PIN_MUX_TS_OUT_SERIAL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) PIN_MUX_GPIO_MODE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) PIN_MUX_TS_SERIAL_IN_MODE_0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) PIN_MUX_TS_SERIAL_IN_MODE_1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) PIN_MUX_TS_SPI_IN_MODE_0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) PIN_MUX_TS_SPI_IN_MODE_1,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) PIN_MUX_TS_PARALLEL_IN,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) PIN_MUX_BT656_I2S_MODE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) int mxl111sf_config_pin_mux_modes(struct mxl111sf_state *state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) enum mxl111sf_mux_config pin_mux_config);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #endif /* _DVB_USB_MXL111SF_GPIO_H_ */