| /Linux-v5.4/drivers/media/platform/s5p-cec/ |
| D | s5p_cec.c | 38 struct s5p_cec_dev *cec = cec_get_drvdata(adap); in s5p_cec_adap_enable() local 41 pm_runtime_get_sync(cec->dev); in s5p_cec_adap_enable() 43 s5p_cec_reset(cec); in s5p_cec_adap_enable() 45 s5p_cec_set_divider(cec); in s5p_cec_adap_enable() 46 s5p_cec_threshold(cec); in s5p_cec_adap_enable() 48 s5p_cec_unmask_tx_interrupts(cec); in s5p_cec_adap_enable() 49 s5p_cec_unmask_rx_interrupts(cec); in s5p_cec_adap_enable() 50 s5p_cec_enable_rx(cec); in s5p_cec_adap_enable() 52 s5p_cec_mask_tx_interrupts(cec); in s5p_cec_adap_enable() 53 s5p_cec_mask_rx_interrupts(cec); in s5p_cec_adap_enable() [all …]
|
| D | exynos_hdmi_cecctrl.c | 23 void s5p_cec_set_divider(struct s5p_cec_dev *cec) in s5p_cec_set_divider() argument 30 if (regmap_read(cec->pmu, EXYNOS_HDMI_PHY_CONTROL, ®)) { in s5p_cec_set_divider() 31 dev_err(cec->dev, "failed to read phy control\n"); in s5p_cec_set_divider() 37 if (regmap_write(cec->pmu, EXYNOS_HDMI_PHY_CONTROL, reg)) { in s5p_cec_set_divider() 38 dev_err(cec->dev, "failed to write phy control\n"); in s5p_cec_set_divider() 44 writeb(0x0, cec->reg + S5P_CEC_DIVISOR_3); in s5p_cec_set_divider() 45 writeb(0x0, cec->reg + S5P_CEC_DIVISOR_2); in s5p_cec_set_divider() 46 writeb(0x0, cec->reg + S5P_CEC_DIVISOR_1); in s5p_cec_set_divider() 47 writeb(div_val, cec->reg + S5P_CEC_DIVISOR_0); in s5p_cec_set_divider() 50 void s5p_cec_enable_rx(struct s5p_cec_dev *cec) in s5p_cec_enable_rx() argument [all …]
|
| D | exynos_hdmi_cec.h | 16 void s5p_cec_set_divider(struct s5p_cec_dev *cec); 17 void s5p_cec_enable_rx(struct s5p_cec_dev *cec); 18 void s5p_cec_mask_rx_interrupts(struct s5p_cec_dev *cec); 19 void s5p_cec_unmask_rx_interrupts(struct s5p_cec_dev *cec); 20 void s5p_cec_mask_tx_interrupts(struct s5p_cec_dev *cec); 21 void s5p_cec_unmask_tx_interrupts(struct s5p_cec_dev *cec); 22 void s5p_cec_reset(struct s5p_cec_dev *cec); 23 void s5p_cec_tx_reset(struct s5p_cec_dev *cec); 24 void s5p_cec_rx_reset(struct s5p_cec_dev *cec); 25 void s5p_cec_threshold(struct s5p_cec_dev *cec); [all …]
|
| /Linux-v5.4/drivers/media/platform/cec-gpio/ |
| D | cec-gpio.c | 34 struct cec_gpio *cec = cec_get_drvdata(adap); in cec_gpio_read() local 36 if (cec->cec_is_low) in cec_gpio_read() 38 return gpiod_get_value(cec->cec_gpio); in cec_gpio_read() 43 struct cec_gpio *cec = cec_get_drvdata(adap); in cec_gpio_high() local 45 if (!cec->cec_is_low) in cec_gpio_high() 47 cec->cec_is_low = false; in cec_gpio_high() 48 gpiod_set_value(cec->cec_gpio, 1); in cec_gpio_high() 53 struct cec_gpio *cec = cec_get_drvdata(adap); in cec_gpio_low() local 55 if (cec->cec_is_low) in cec_gpio_low() 57 cec->cec_is_low = true; in cec_gpio_low() [all …]
|
| /Linux-v5.4/drivers/media/platform/tegra-cec/ |
| D | tegra_cec.c | 52 static inline u32 cec_read(struct tegra_cec *cec, u32 reg) in cec_read() argument 54 return readl(cec->cec_base + reg); in cec_read() 57 static inline void cec_write(struct tegra_cec *cec, u32 reg, u32 val) in cec_write() argument 59 writel(val, cec->cec_base + reg); in cec_write() 62 static void tegra_cec_error_recovery(struct tegra_cec *cec) in tegra_cec_error_recovery() argument 66 hw_ctrl = cec_read(cec, TEGRA_CEC_HW_CONTROL); in tegra_cec_error_recovery() 67 cec_write(cec, TEGRA_CEC_HW_CONTROL, 0); in tegra_cec_error_recovery() 68 cec_write(cec, TEGRA_CEC_INT_STAT, 0xffffffff); in tegra_cec_error_recovery() 69 cec_write(cec, TEGRA_CEC_HW_CONTROL, hw_ctrl); in tegra_cec_error_recovery() 75 struct tegra_cec *cec = dev_get_drvdata(dev); in tegra_cec_irq_thread_handler() local [all …]
|
| /Linux-v5.4/drivers/gpu/drm/bridge/synopsys/ |
| D | dw-hdmi-cec.c | 67 static void dw_hdmi_write(struct dw_hdmi_cec *cec, u8 val, int offset) in dw_hdmi_write() argument 69 cec->ops->write(cec->hdmi, val, offset); in dw_hdmi_write() 72 static u8 dw_hdmi_read(struct dw_hdmi_cec *cec, int offset) in dw_hdmi_read() argument 74 return cec->ops->read(cec->hdmi, offset); in dw_hdmi_read() 79 struct dw_hdmi_cec *cec = cec_get_drvdata(adap); in dw_hdmi_cec_log_addr() local 82 cec->addresses = 0; in dw_hdmi_cec_log_addr() 84 cec->addresses |= BIT(logical_addr) | BIT(15); in dw_hdmi_cec_log_addr() 86 dw_hdmi_write(cec, cec->addresses & 255, HDMI_CEC_ADDR_L); in dw_hdmi_cec_log_addr() 87 dw_hdmi_write(cec, cec->addresses >> 8, HDMI_CEC_ADDR_H); in dw_hdmi_cec_log_addr() 95 struct dw_hdmi_cec *cec = cec_get_drvdata(adap); in dw_hdmi_cec_transmit() local [all …]
|
| /Linux-v5.4/drivers/media/platform/stm32/ |
| D | stm32-cec.c | 80 static void cec_hw_init(struct stm32_cec *cec) in cec_hw_init() argument 82 regmap_update_bits(cec->regmap, CEC_CR, TXEOM | TXSOM | CECEN, 0); in cec_hw_init() 84 regmap_update_bits(cec->regmap, CEC_IER, ALL_TX_IT | ALL_RX_IT, in cec_hw_init() 87 regmap_update_bits(cec->regmap, CEC_CFGR, FULL_CFG, FULL_CFG); in cec_hw_init() 90 static void stm32_tx_done(struct stm32_cec *cec, u32 status) in stm32_tx_done() argument 93 cec_transmit_done(cec->adap, CEC_TX_STATUS_ERROR, in stm32_tx_done() 99 cec_transmit_done(cec->adap, CEC_TX_STATUS_ARB_LOST, in stm32_tx_done() 105 cec_transmit_done(cec->adap, CEC_TX_STATUS_NACK, in stm32_tx_done() 110 if (cec->irq_status & TXBR) { in stm32_tx_done() 112 if (cec->tx_cnt < cec->tx_msg.len) in stm32_tx_done() [all …]
|
| /Linux-v5.4/drivers/gpu/drm/mediatek/ |
| D | mtk_cec.c | 59 static void mtk_cec_clear_bits(struct mtk_cec *cec, unsigned int offset, in mtk_cec_clear_bits() argument 62 void __iomem *reg = cec->regs + offset; in mtk_cec_clear_bits() 70 static void mtk_cec_set_bits(struct mtk_cec *cec, unsigned int offset, in mtk_cec_set_bits() argument 73 void __iomem *reg = cec->regs + offset; in mtk_cec_set_bits() 81 static void mtk_cec_mask(struct mtk_cec *cec, unsigned int offset, in mtk_cec_mask() argument 84 u32 tmp = readl(cec->regs + offset) & ~mask; in mtk_cec_mask() 87 writel(val, cec->regs + offset); in mtk_cec_mask() 94 struct mtk_cec *cec = dev_get_drvdata(dev); in mtk_cec_set_hpd_event() local 97 spin_lock_irqsave(&cec->lock, flags); in mtk_cec_set_hpd_event() 98 cec->hdmi_dev = hdmi_dev; in mtk_cec_set_hpd_event() [all …]
|
| /Linux-v5.4/drivers/media/platform/sti/cec/ |
| D | stih-cec.c | 134 struct stih_cec *cec = cec_get_drvdata(adap); in stih_cec_adap_enable() local 138 unsigned long clk_freq = clk_get_rate(cec->clk); in stih_cec_adap_enable() 141 writel(cec_clk_div, cec->regs + CEC_CLK_DIV); in stih_cec_adap_enable() 145 cec->regs + CEC_BIT_TOUT_THRESH); in stih_cec_adap_enable() 149 cec->regs + CEC_BIT_PULSE_THRESH); in stih_cec_adap_enable() 152 writel(BIT(5) | BIT(7), cec->regs + CEC_TX_CTRL); in stih_cec_adap_enable() 156 cec->regs + CEC_DATA_ARRAY_CTRL); in stih_cec_adap_enable() 160 cec->regs + CEC_CTRL); in stih_cec_adap_enable() 163 writel(0, cec->regs + CEC_ADDR_TABLE); in stih_cec_adap_enable() 166 writel(0x0, cec->regs + CEC_STATUS); in stih_cec_adap_enable() [all …]
|
| /Linux-v5.4/drivers/gpu/drm/ |
| D | drm_dp_cec.c | 187 struct cec_adapter *adap = aux->cec.adap; in drm_dp_cec_received() 210 struct cec_adapter *adap = aux->cec.adap; in drm_dp_cec_handle_irq() 247 mutex_lock(&aux->cec.lock); in drm_dp_cec_irq() 248 if (!aux->cec.adap) in drm_dp_cec_irq() 259 mutex_unlock(&aux->cec.lock); in drm_dp_cec_irq() 282 cec.unregister_work.work); in drm_dp_cec_unregister_work() 284 mutex_lock(&aux->cec.lock); in drm_dp_cec_unregister_work() 285 cec_unregister_adapter(aux->cec.adap); in drm_dp_cec_unregister_work() 286 aux->cec.adap = NULL; in drm_dp_cec_unregister_work() 287 mutex_unlock(&aux->cec.lock); in drm_dp_cec_unregister_work() [all …]
|
| /Linux-v5.4/drivers/media/cec/ |
| D | Makefile | 2 cec-objs := cec-core.o cec-adap.o cec-api.o 5 cec-objs += cec-notifier.o 9 cec-objs += cec-pin.o 13 cec-objs += cec-pin-error-inj.o 16 obj-$(CONFIG_CEC_CORE) += cec.o
|
| /Linux-v5.4/Documentation/media/uapi/cec/ |
| D | cec-funcs.rst | 20 cec-func-open 21 cec-func-close 22 cec-func-ioctl 23 cec-func-poll 24 cec-ioc-adap-g-caps 25 cec-ioc-adap-g-log-addrs 26 cec-ioc-adap-g-phys-addr 27 cec-ioc-dqevent 28 cec-ioc-g-mode 29 cec-ioc-receive
|
| D | cec-func-ioctl.rst | 13 cec ioctl() 19 cec-ioctl - Control a cec device 30 :name: cec-ioctl 36 File descriptor returned by :c:func:`open() <cec-open>`. 39 CEC ioctl request code as defined in the cec.h header file, for 49 The :c:func:`ioctl() <cec-ioctl>` function manipulates cec device parameters. The 52 The ioctl ``request`` code specifies the cec function to be called. It 56 Macros and structures definitions specifying cec ioctl requests and 57 their parameters are located in the cec.h header file. All cec ioctl 59 :ref:`cec-user-func`.
|
| D | cec-func-close.rst | 13 cec close() 19 cec-close - Close a cec device 31 :name: cec-close 37 File descriptor returned by :c:func:`open() <cec-open>`. 43 Closes the cec device. Resources associated with the file descriptor are 50 :c:func:`close() <cec-close>` returns 0 on success. On error, -1 is returned, and
|
| D | cec-func-open.rst | 13 cec open() 19 cec-open - Open a cec device 30 :name: cec-open 56 To open a cec device applications call :c:func:`open() <cec-open>` with the 68 :c:func:`open() <cec-open>` returns the new file descriptor on success. On error,
|
| D | cec-func-poll.rst | 13 cec poll() 19 cec-poll - Wait for some event on a file descriptor 31 :name: cec-poll 49 With the :c:func:`poll() <cec-poll>` function applications can wait for CEC 52 On success :c:func:`poll() <cec-poll>` returns the number of file descriptors 63 For more details see the :c:func:`poll() <cec-poll>` manual page. 69 On success, :c:func:`poll() <cec-poll>` returns the number structures which have
|
| D | cec-api.rst | 31 cec-intro 32 cec-funcs 33 cec-pin-error-inj 34 cec-header
|
| /Linux-v5.4/drivers/media/platform/seco-cec/ |
| D | seco-cec.c | 107 struct secocec_data *cec = cec_get_drvdata(adap); in secocec_adap_enable() local 108 struct device *dev = cec->dev; in secocec_adap_enable() 256 struct secocec_data *cec = cec_get_drvdata(adap); in secocec_rx_done() local 257 struct device *dev = cec->dev; in secocec_rx_done() 319 cec_received_msg(cec->cec_adap, &msg); in secocec_rx_done() 349 struct secocec_data *cec = priv; in secocec_ir_probe() local 350 struct device *dev = cec->dev; in secocec_ir_probe() 355 cec->ir = devm_rc_allocate_device(dev, RC_DRIVER_SCANCODE); in secocec_ir_probe() 356 if (!cec->ir) in secocec_ir_probe() 359 snprintf(cec->ir_input_phys, sizeof(cec->ir_input_phys), in secocec_ir_probe() [all …]
|
| /Linux-v5.4/Documentation/devicetree/bindings/media/ |
| D | st,stm32-cec.txt | 4 - compatible : value should be "st,stm32-cec" 8 - clock-names : from common clock binding: must be "cec" and "hdmi-cec". 13 cec: cec@40006c00 { 14 compatible = "st,stm32-cec"; 18 clock-names = "cec", "hdmi-cec";
|
| D | tegra-cec.txt | 8 "nvidia,tegra114-cec" 9 "nvidia,tegra124-cec" 10 "nvidia,tegra210-cec" 15 - clock-names : from common clock binding: must contain "cec", 17 - hdmi-phandle : phandle to the HDMI controller, see also cec.txt. 21 cec@70015000 { 22 compatible = "nvidia,tegra124-cec"; 26 clock-names = "cec";
|
| D | stih-cec.txt | 4 - compatible : value should be "st,stih-cec" 12 - hdmi-phandle: Phandle to the HDMI controller, see also cec.txt. 16 sti-cec@94a087c { 17 compatible = "st,stih-cec"; 20 clock-names = "cec-clk"; 22 interrupt-names = "cec-irq";
|
| D | s5p-cec.txt | 8 "samsung,s5p-cec" 18 - hdmi-phandle - phandle to the HDMI controller, see also cec.txt. 22 is high. See cec.txt for more details. 26 hdmicec: cec@100b0000 { 27 compatible = "samsung,s5p-cec";
|
| D | meson-ao-cec.txt | 9 "amlogic,meson-gx-ao-cec" 11 "amlogic,meson-g12a-ao-cec" 13 "amlogic,meson-sm1-ao-cec" 30 cec_AO: cec@100 { 31 compatible = "amlogic,meson-gx-ao-cec";
|
| D | cec-gpio.txt | 12 - compatible: value must be "cec-gpio". 13 - cec-gpios: gpio that the CEC line is connected to. The line should be 19 - hdmi-phandle - phandle to the HDMI controller, see also cec.txt. 37 cec-gpio { 38 compatible = "cec-gpio"; 39 cec-gpios = <&gpio 7 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
|
| /Linux-v5.4/drivers/media/platform/ |
| D | Makefile | 33 obj-$(CONFIG_CEC_GPIO) += cec-gpio/ 45 obj-$(CONFIG_VIDEO_SAMSUNG_S5P_CEC) += s5p-cec/ 51 obj-$(CONFIG_VIDEO_STI_HDMI_CEC) += sti/cec/ 55 obj-$(CONFIG_VIDEO_TEGRA_HDMI_CEC) += tegra-cec/ 59 obj-$(CONFIG_VIDEO_SECO_CEC) += seco-cec/ 101 obj-y += cros-ec-cec/
|