| /kernel/linux/linux-6.6/drivers/media/cec/platform/cec-gpio/ |
| D | cec-gpio.c | 11 #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 …]
|
| /kernel/linux/linux-6.6/drivers/media/cec/platform/s5p/ |
| D | s5p_cec.c | 2 /* 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 …]
|
| D | exynos_hdmi_cecctrl.c | 2 /* 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, ®)) { 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 …]
|
| /kernel/linux/linux-6.6/drivers/media/cec/platform/tegra/ |
| D | tegra_cec.c | 3 * 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 …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/bridge/synopsys/ |
| D | dw-hdmi-cec.c | 3 * Designware HDMI CEC driver 16 #include <media/cec.h> 17 #include <media/cec-notifier.h> 19 #include "dw-hdmi-cec.h" 71 static void dw_hdmi_write(struct dw_hdmi_cec *cec, u8 val, int offset) in dw_hdmi_write() argument 73 cec->ops->write(cec->hdmi, val, offset); in dw_hdmi_write() 76 static u8 dw_hdmi_read(struct dw_hdmi_cec *cec, int offset) in dw_hdmi_read() argument 78 return cec->ops->read(cec->hdmi, offset); in dw_hdmi_read() 83 struct dw_hdmi_cec *cec = cec_get_drvdata(adap); in dw_hdmi_cec_log_addr() local 86 cec->addresses = 0; in dw_hdmi_cec_log_addr() [all …]
|
| /kernel/linux/linux-5.10/drivers/media/cec/platform/cec-gpio/ |
| D | cec-gpio.c | 11 #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 …]
|
| /kernel/linux/linux-5.10/drivers/media/cec/platform/tegra/ |
| D | tegra_cec.c | 3 * 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 …]
|
| /kernel/linux/linux-5.10/drivers/media/cec/platform/s5p/ |
| D | s5p_cec.c | 2 /* 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 …]
|
| D | exynos_hdmi_cecctrl.c | 2 /* 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, ®)) { 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 …]
|
| /kernel/linux/linux-5.10/drivers/media/cec/platform/stm32/ |
| D | stm32-cec.c | 3 * 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 …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/bridge/synopsys/ |
| D | dw-hdmi-cec.c | 3 * 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 …]
|
| /kernel/linux/linux-6.6/drivers/media/cec/platform/stm32/ |
| D | stm32-cec.c | 3 * STM32 CEC driver 16 #include <media/cec.h> 18 #define CEC_NAME "stm32-cec" 20 /* CEC registers */ 79 static void cec_hw_init(struct stm32_cec *cec) in cec_hw_init() argument 81 regmap_update_bits(cec->regmap, CEC_CR, TXEOM | TXSOM | CECEN, 0); in cec_hw_init() 83 regmap_update_bits(cec->regmap, CEC_IER, ALL_TX_IT | ALL_RX_IT, in cec_hw_init() 86 regmap_update_bits(cec->regmap, CEC_CFGR, FULL_CFG, FULL_CFG); in cec_hw_init() 89 static void stm32_tx_done(struct stm32_cec *cec, u32 status) in stm32_tx_done() argument 92 cec_transmit_done(cec->adap, CEC_TX_STATUS_ERROR, in stm32_tx_done() [all …]
|
| /kernel/linux/linux-5.10/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(tmp, 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 …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/mediatek/ |
| D | mtk_cec.c | 62 static void mtk_cec_clear_bits(struct mtk_cec *cec, unsigned int offset, in mtk_cec_clear_bits() argument 65 void __iomem *reg = cec->regs + offset; in mtk_cec_clear_bits() 73 static void mtk_cec_set_bits(struct mtk_cec *cec, unsigned int offset, in mtk_cec_set_bits() argument 76 void __iomem *reg = cec->regs + offset; in mtk_cec_set_bits() 84 static void mtk_cec_mask(struct mtk_cec *cec, unsigned int offset, in mtk_cec_mask() argument 87 u32 tmp = readl(cec->regs + offset) & ~mask; in mtk_cec_mask() 90 writel(tmp, cec->regs + offset); in mtk_cec_mask() 97 struct mtk_cec *cec = dev_get_drvdata(dev); in mtk_cec_set_hpd_event() local 100 spin_lock_irqsave(&cec->lock, flags); in mtk_cec_set_hpd_event() 101 cec->hdmi_dev = hdmi_dev; in mtk_cec_set_hpd_event() [all …]
|
| /kernel/linux/linux-5.10/drivers/media/cec/platform/sti/ |
| D | stih-cec.c | 3 * 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 …]
|
| /kernel/linux/linux-6.6/drivers/media/cec/platform/sti/ |
| D | stih-cec.c | 3 * 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 …]
|
| /kernel/linux/linux-6.6/Documentation/admin-guide/media/ |
| D | cec.rst | 4 HDMI CEC 14 - STIH4xx HDMI CEC 20 - amlogic (meson ao-cec and ao-cec-g12a) 26 - DisplayPort CEC-Tunneling-over-AUX on i915, nouveau and amdgpu 27 - ChromeOS EC CEC 28 - CEC for SECO boards (UDOO x86). 41 - Pulse-Eight: the pulse8-cec driver implements the following module option: 51 - vivid: emulates a CEC receiver and CEC transmitter. 52 Can be used to test CEC applications without actual CEC hardware. 54 - cec-gpio. If the CEC pin is hooked up to a GPIO pin then [all …]
|
| /kernel/linux/linux-6.6/drivers/media/cec/platform/ |
| D | Kconfig | 6 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 …]
|
| /kernel/linux/linux-5.10/drivers/media/cec/platform/ |
| D | Kconfig | 6 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 …]
|
| /kernel/linux/linux-5.10/drivers/gpu/drm/ |
| D | drm_dp_cec.c | 3 * 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 …]
|
| /kernel/linux/linux-6.6/drivers/gpu/drm/display/ |
| D | drm_dp_cec.c | 3 * 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 …]
|
| /kernel/linux/linux-5.10/Documentation/userspace-api/media/cec/ |
| D | cec-ioc-g-mode.rst | 2 .. 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 …]
|
| D | cec-ioc-adap-g-log-addrs.rst | 2 .. 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 …]
|
| /kernel/linux/linux-6.6/Documentation/userspace-api/media/cec/ |
| D | cec-ioc-g-mode.rst | 2 .. 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 …]
|
| D | cec-ioc-adap-g-log-addrs.rst | 2 .. 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 …]
|