Home
last modified time | relevance | path

Searched refs:cec (Results 1 – 25 of 150) sorted by relevance

123456

/Linux-v5.4/drivers/media/platform/s5p-cec/
Ds5p_cec.c38 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 …]
Dexynos_hdmi_cecctrl.c23 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, &reg)) { 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 …]
Dexynos_hdmi_cec.h16 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/
Dcec-gpio.c34 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/
Dtegra_cec.c52 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/
Ddw-hdmi-cec.c67 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/
Dstm32-cec.c80 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/
Dmtk_cec.c59 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/
Dstih-cec.c134 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/
Ddrm_dp_cec.c187 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/
DMakefile2 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/
Dcec-funcs.rst20 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
Dcec-func-ioctl.rst13 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`.
Dcec-func-close.rst13 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
Dcec-func-open.rst13 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,
Dcec-func-poll.rst13 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
Dcec-api.rst31 cec-intro
32 cec-funcs
33 cec-pin-error-inj
34 cec-header
/Linux-v5.4/drivers/media/platform/seco-cec/
Dseco-cec.c107 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/
Dst,stm32-cec.txt4 - 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";
Dtegra-cec.txt8 "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";
Dstih-cec.txt4 - 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";
Ds5p-cec.txt8 "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";
Dmeson-ao-cec.txt9 "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";
Dcec-gpio.txt12 - 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/
DMakefile33 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/

123456