Home
last modified time | relevance | path

Searched full:cec (Results 1 – 25 of 311) sorted by relevance

12345678910>>...13

/Linux-v6.1/drivers/media/cec/platform/s5p/
Ds5p_cec.c2 /* drivers/media/platform/s5p-cec/s5p_cec.c
4 * Samsung S5P CEC driver
8 * This driver is based on the "cec interface driver for exynos soc" by
23 #include <media/cec.h>
24 #include <media/cec-notifier.h>
27 #include "regs-cec.h"
30 #define CEC_NAME "s5p-cec"
39 struct s5p_cec_dev *cec = cec_get_drvdata(adap); in s5p_cec_adap_enable() local
42 ret = pm_runtime_resume_and_get(cec->dev); in s5p_cec_adap_enable()
46 s5p_cec_reset(cec); in s5p_cec_adap_enable()
[all …]
Dexynos_hdmi_cecctrl.c2 /* drivers/media/platform/s5p-cec/exynos_hdmi_cecctrl.c
7 * cec ftn file for Samsung TVOUT driver
14 #include "regs-cec.h"
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, &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()
[all …]
Dexynos_hdmi_cec.h2 /* drivers/media/platform/s5p-cec/exynos_hdmi_cec.h
7 * Header file for interface of Samsung Exynos hdmi cec hardware
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);
[all …]
/Linux-v6.1/drivers/media/cec/platform/cec-gpio/
Dcec-gpio.c11 #include <media/cec-notifier.h>
12 #include <media/cec-pin.h>
36 struct cec_gpio *cec = cec_get_drvdata(adap); in cec_gpio_read() local
38 if (cec->cec_is_low) in cec_gpio_read()
40 return gpiod_get_value(cec->cec_gpio); in cec_gpio_read()
45 struct cec_gpio *cec = cec_get_drvdata(adap); in cec_gpio_high() local
47 if (!cec->cec_is_low) in cec_gpio_high()
49 cec->cec_is_low = false; in cec_gpio_high()
50 gpiod_set_value(cec->cec_gpio, 1); in cec_gpio_high()
55 struct cec_gpio *cec = cec_get_drvdata(adap); in cec_gpio_low() local
[all …]
/Linux-v6.1/drivers/media/cec/platform/tegra/
Dtegra_cec.c3 * Tegra CEC implementation
5 * The original 3.10 CEC driver using a custom API:
9 * Conversion to the CEC framework and to the mainline kernel:
29 #include <media/cec-notifier.h>
33 #define TEGRA_CEC_NAME "tegra-cec"
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
[all …]
/Linux-v6.1/drivers/media/cec/platform/stm32/
Dstm32-cec.c3 * STM32 CEC driver
17 #include <media/cec.h>
19 #define CEC_NAME "stm32-cec"
21 /* CEC registers */
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()
[all …]
/Linux-v6.1/drivers/gpu/drm/bridge/synopsys/
Ddw-hdmi-cec.c3 * Designware HDMI CEC driver
16 #include <media/cec.h>
17 #include <media/cec-notifier.h>
19 #include "dw-hdmi-cec.h"
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()
[all …]
/Linux-v6.1/drivers/gpu/drm/mediatek/
Dmtk_cec.c60 static void mtk_cec_clear_bits(struct mtk_cec *cec, unsigned int offset, in mtk_cec_clear_bits() argument
63 void __iomem *reg = cec->regs + offset; in mtk_cec_clear_bits()
71 static void mtk_cec_set_bits(struct mtk_cec *cec, unsigned int offset, in mtk_cec_set_bits() argument
74 void __iomem *reg = cec->regs + offset; in mtk_cec_set_bits()
82 static void mtk_cec_mask(struct mtk_cec *cec, unsigned int offset, in mtk_cec_mask() argument
85 u32 tmp = readl(cec->regs + offset) & ~mask; in mtk_cec_mask()
88 writel(tmp, cec->regs + offset); in mtk_cec_mask()
95 struct mtk_cec *cec = dev_get_drvdata(dev); in mtk_cec_set_hpd_event() local
98 spin_lock_irqsave(&cec->lock, flags); in mtk_cec_set_hpd_event()
99 cec->hdmi_dev = hdmi_dev; in mtk_cec_set_hpd_event()
[all …]
/Linux-v6.1/drivers/media/cec/platform/sti/
Dstih-cec.c3 * STIH4xx CEC driver
16 #include <media/cec.h>
17 #include <media/cec-notifier.h>
19 #define CEC_NAME "stih-cec"
21 /* CEC registers */
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()
[all …]
/Linux-v6.1/drivers/media/cec/platform/
DKconfig6 tristate "ChromeOS EC CEC driver"
13 ChromeOS Embedded Controller's CEC.
14 The CEC bus is present in the HDMI connector and enables communication
18 tristate "Amlogic Meson AO CEC driver"
23 This is a driver for Amlogic Meson SoCs AO CEC interface. It uses the
24 generic CEC framework interface.
25 CEC bus is present in the HDMI connector and enables communication
28 tristate "Amlogic Meson G12A AO CEC driver"
36 This is a driver for Amlogic Meson G12A SoCs AO CEC interface.
37 This driver if for the new AO-CEC module found in G12A SoCs,
[all …]
/Linux-v6.1/drivers/gpu/drm/display/
Ddrm_dp_cec.c3 * DisplayPort CEC-Tunneling-over-AUX support
12 #include <media/cec.h>
21 * have a converter chip that supports CEC-Tunneling-over-AUX (usually the
22 * Parade PS176), but they do not wire up the CEC pin, thus making CEC
24 * support for CEC tunneling. Those adapters that I have tested using
25 * this chipset all have the CEC line connected.
29 * any of the other CEC devices. Quite literally the CEC wire is cut
34 * and no incentive to correctly wire up the CEC pin.
37 * finally fix their adapters and test the CEC functionality.
41 * https://hverkuil.home.xs4all.nl/cec-status.txt
[all …]
/Linux-v6.1/Documentation/userspace-api/media/cec/
Dcec-ioc-g-mode.rst2 .. c:namespace:: CEC
12 CEC_G_MODE, CEC_S_MODE - Get or set exclusive use of the CEC adapter
32 Pointer to CEC mode.
39 obtain exclusive access to the CEC adapter. This ioctl sets the
42 used to initiate messages, i.e. it commands other CEC devices. The
43 follower is the filehandle that receives messages sent to the CEC
47 When a CEC message is received, then the CEC framework will decide how
50 is waiting for it. In addition the CEC framework will process it.
52 If the message is not a reply, then the CEC framework will process it
60 The CEC framework will process core messages unless requested otherwise
[all …]
Dcec-ioc-adap-g-log-addrs.rst2 .. c:namespace:: CEC
40 To query the current CEC logical addresses, applications call
55 values (CEC version 2.0, no vendor ID and an empty OSD name).
62 A :ref:`CEC_EVENT_STATE_CHANGE <CEC-EVENT-STATE-CHANGE>` event is sent when the
94 - The CEC version that this adapter shall use. See
95 :ref:`cec-versions`. Used to implement the
97 Note that :ref:`CEC_OP_CEC_VERSION_1_3A <CEC-OP-CEC-VERSION-1-3A>` is not allowed by the CEC
106 ignored. Note that the CEC 2.0 standard allows for a maximum of 2
110 what was requested. If this field is set to 0, then the CEC
121 - Flags. See :ref:`cec-log-addrs-flags` for a list of available flags.
[all …]
Dcec-ioc-adap-g-caps.rst2 .. c:namespace:: CEC
33 All cec devices must support :ref:`ioctl CEC_ADAP_G_CAPS <CEC_ADAP_G_CAPS>`. To query
49 - The name of the cec adapter driver.
52 - The name of this CEC adapter. The combination ``driver`` and
59 - The capabilities of the CEC adapter, see
60 :ref:`cec-capabilities`.
63 - CEC Framework API version, formatted with the ``KERNEL_VERSION()``
70 .. flat-table:: CEC Capabilities Flags
75 * .. _`CEC-CAP-PHYS-ADDR`:
84 * .. _`CEC-CAP-LOG-ADDRS`:
[all …]
Dcec-intro.rst10 HDMI cable to communicate. The protocol for CEC version 1.4 is defined
11 in supplements 1 (CEC) and 2 (HEAC or HDMI Ethernet and Audio Return
13 extensions added to CEC version 2.0 are defined in chapter 11 of the
21 CEC, need to be handled by the kernel, others can be handled either by
24 In addition, CEC can be implemented in HDMI receivers, transmitters and
26 control just the CEC pin.
28 Drivers that support CEC will create a CEC device node (/dev/cecX) to
29 give userspace access to the CEC adapter. The
34 provides three tools to handle CEC:
36 - cec-ctl: the Swiss army knife of CEC. Allows you to configure, transmit
[all …]
Dcec-pin-error-inj.rst3 CEC Pin Framework Error Injection
6 The CEC Pin Framework is a core CEC framework for CEC hardware that only
7 has low-level support for the CEC bus. Most hardware today will have
8 high-level CEC support where the hardware deals with driving the CEC bus,
10 allows you to connect the CEC pin to a GPIO on e.g. a Raspberry Pi and
11 you have now made a CEC adapter.
15 test how well CEC adapters can handle error conditions.
17 Currently only the cec-gpio driver (when the CEC line is directly
22 through debugfs. Specifically, in ``/sys/kernel/debug/cec/cecX/`` there is
33 $ cat /sys/kernel/debug/cec/cec0/error-inj
[all …]
Dcec-ioc-dqevent.rst2 .. c:namespace:: CEC
13 CEC_DQEVENT - Dequeue a CEC event
33 CEC devices can send asynchronous events. These can be retrieved by
43 two :ref:`CEC_EVENT_STATE_CHANGE <CEC-EVENT-STATE-CHANGE>` events with
93 replied to within a second according to the CEC specification,
114 - The CEC event type, see :ref:`cec-events`.
117 - Event flags, see :ref:`cec-event-flags`.
122 - The new adapter state as sent by the :ref:`CEC_EVENT_STATE_CHANGE <CEC-EVENT-STATE-CHANGE>`
126 - The number of lost messages as sent by the :ref:`CEC_EVENT_LOST_MSGS <CEC-EVENT-LOST-MSGS>`
135 .. flat-table:: CEC Events Types
[all …]
Dcec-ioc-receive.rst2 .. c:namespace:: CEC
14 CEC_RECEIVE, CEC_TRANSMIT - Receive or transmit a CEC message
39 To receive a CEC message the application has to fill in the
50 1. a message received from another CEC device (the ``sequence`` field will
58 To send a CEC message the application has to fill in the struct
64 of 2-byte messages). Note that the CEC kernel framework will also reply
65 to core messages (see :ref:`cec-core-processing`), so it is not a good
79 However, the CEC specification allows sending messages from 'Unregistered' to
85 physical address, but the cable is still connected and CEC still works.
126 - A non-zero sequence number is automatically assigned by the CEC framework
[all …]
/Linux-v6.1/drivers/media/rc/keymaps/
Drc-cec.c2 /* Keytable for the CEC remote control
8 * allowed to use request_module() to load rc-cec.ko in that case.
21 * CEC Spec "High-Definition Multimedia Interface Specification" can be obtained
26 static struct rc_map_table cec[] = { variable
36 { 0x09, KEY_ROOT_MENU }, /* CEC Spec: Device Root Menu - see Note 2 */
44 { 0x0b, KEY_MENU }, /* CEC Spec: Contents Menu */
45 { 0x0c, KEY_FAVORITES }, /* CEC Spec: Favorite Menu */
51 { 0x1d, KEY_DIGITS }, /* CEC Spec: select/toggle a Number Entry Mode */
69 { 0x2f, KEY_NEXT_FAVORITE }, /* CEC Spec: Next Favorite */
72 { 0x32, KEY_PREVIOUS }, /* CEC Spec: Previous Channel */
[all …]
/Linux-v6.1/Documentation/driver-api/media/
Dcec-core.rst3 CEC Kernel Support
6 The CEC framework provides a unified kernel interface for use with HDMI CEC
14 The CEC Protocol
17 The CEC protocol enables consumer electronic devices to communicate with each
24 The CEC framework described here is up to date with the CEC 2.0 specification.
32 CEC Adapter Interface
35 The struct cec_adapter represents the CEC adapter hardware. It is created by
49 adapter operations which are called by the CEC framework and that you
57 the name of the CEC adapter. Note: this name will be copied.
60 capabilities of the CEC adapter. These capabilities determine the
[all …]
/Linux-v6.1/include/media/
Dcec-pin.h3 * cec-pin.h - low-level CEC pin control
12 #include <media/cec.h>
15 * struct cec_pin_ops - low-level CEC pin operations
16 * @read: read the CEC pin. Returns > 0 if high, 0 if low, or an error
18 * @low: drive the CEC pin low.
19 * @high: stop driving the CEC pin. The pull-up will drive the pin
30 * @received: optional. High-level CEC message callback. Allows the driver
31 * to process CEC messages.
34 * cec pin framework to manipulate the CEC pin.
47 /* High-level CEC message callback */
[all …]
/Linux-v6.1/Documentation/devicetree/bindings/media/
Dcec-gpio.txt1 * HDMI CEC GPIO driver
3 The HDMI CEC GPIO module supports CEC implementations where the CEC line
7 Please note: the maximum voltage for the CEC line is 3.63V, for the HPD and
12 - compatible: value must be "cec-gpio".
13 - cec-gpios: gpio that the CEC line is connected to. The line should be
16 If the CEC line is associated with an HDMI receiver/transmitter, then the
19 - hdmi-phandle - phandle to the HDMI controller, see also cec.txt.
21 If the CEC line is not associated with an HDMI receiver/transmitter, then
30 Example for the Raspberry Pi 3 where the CEC line is connected to
37 cec-gpio {
[all …]
Dtegra-cec.txt1 * Tegra HDMI CEC hardware
3 The HDMI CEC module is present in Tegra SoCs and its purpose is to
4 handle communication between HDMI connected devices over the CEC bus.
8 "nvidia,tegra114-cec"
9 "nvidia,tegra124-cec"
10 "nvidia,tegra210-cec"
13 - interrupts : HDMI CEC interrupt number to the CPU.
14 - clocks : from common clock binding: handle to HDMI CEC clock.
15 - clock-names : from common clock binding: must contain "cec",
17 - hdmi-phandle : phandle to the HDMI controller, see also cec.txt.
[all …]
/Linux-v6.1/drivers/media/cec/
DKconfig11 menu "CEC support"
14 bool "HDMI CEC RC integration"
18 Pass on CEC remote control messages to the RC framework.
21 bool "Enable CEC error injection support"
24 This option enables CEC error injection using debugfs.
28 prompt "HDMI CEC drivers"
31 Enable support for HDMI CEC (Consumer Electronics Control),
34 Say Y when you have an HDMI receiver, transmitter or a USB CEC
35 adapter that supports HDMI CEC.
38 source "drivers/media/cec/i2c/Kconfig"
[all …]
/Linux-v6.1/drivers/media/cec/core/
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

12345678910>>...13