mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 03:40:35 +09:00
irblaster: meson: refactored irblaster driver [1/1]
PD#SWPL-1856 Problem: refactored irblaster code Solution: 1. Refactor the code according to the core, provider, and consumer frameworks. 2. Provide software encode to let irblaster work according to different protocols 3. Provide a unified consumer interface to allow other consumer drivers to use irblaster. Verify: test pass on g12a_u200_v1 Change-Id: Ifd841ef0ed741b7fd721defc25691744ea2103f0 Signed-off-by: Bichao Zheng <bichao.zheng@amlogic.com>
This commit is contained in:
13
MAINTAINERS
13
MAINTAINERS
@@ -14066,13 +14066,6 @@ AMLOGIC AXG ADD AO CLK
|
||||
M: Yun Cai <yun.cai@amlogic.com>
|
||||
F: drivers/amlogic/clk/axg/axg_ao.c
|
||||
|
||||
AMLOGIC Irblaster driver
|
||||
M: Zan Peng <zan.peng@amlogic.com>
|
||||
F: drivers/amlogic/irblaster/irblaster.c
|
||||
F: drivers/amlogic/irblaster/irblaster.h
|
||||
F: drivers/amlogic/irblaster/Kconfig
|
||||
F: drivers/amlogic/irblaster/Makefile
|
||||
|
||||
AMLOGIC AXG ADD CLKMSR INTERFACE
|
||||
M: wang xing <xing.wang@amlogic.com>
|
||||
F: include/linux/amlogic/clk_measure.h
|
||||
@@ -14428,9 +14421,9 @@ F: drivers/amlogic/cpufreq/meson-cpufreq.c
|
||||
F: drivers/amlogic/clk/clk-cpu-fclk-composite.c
|
||||
|
||||
AMLOGIC Irblaster driver
|
||||
M: yu.tu <yu.tu@amlogic.com>
|
||||
F: drivers/amlogic/irblaster/meson-irblaster.c
|
||||
F: drivers/amlogic/irblaster/meson-irblaster.h
|
||||
M: Bichao.Zheng <bichao.zheng@amlogic.com>
|
||||
F: drivers/amlogic/irblaster/*
|
||||
F: include/linux/amlogic/irblaster*
|
||||
|
||||
AMLOGIC THERMAL DRIVER
|
||||
M: Huan Biao <huan.biao@amlogic.com>
|
||||
|
||||
@@ -423,14 +423,6 @@
|
||||
pinctrl-0 = <&b_uart_pins>;
|
||||
};
|
||||
|
||||
meson-irblaster {
|
||||
compatible = "amlogic, am_irblaster";
|
||||
dev_name = "meson-irblaster";
|
||||
status = "disable";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
};
|
||||
|
||||
vpu {
|
||||
compatible = "amlogic, vpu-axg";
|
||||
dev_name = "vpu";
|
||||
|
||||
@@ -316,14 +316,6 @@
|
||||
pinctrl-0 = <&b_uart_pins>;
|
||||
};
|
||||
|
||||
meson-irblaster {
|
||||
compatible = "amlogic, am_irblaster";
|
||||
dev_name = "meson-irblaster";
|
||||
status = "disable";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
};
|
||||
|
||||
/* Sound iomap */
|
||||
aml_snd_iomap {
|
||||
compatible = "amlogic, snd-iomap";
|
||||
|
||||
@@ -468,6 +468,16 @@
|
||||
clock-names = "clk_i2c";
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster@c0 {
|
||||
compatible = "amlogic, aml_irblaster";
|
||||
reg = <0xc0 0xc>,
|
||||
<0x40 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
};/* end of aobus */
|
||||
|
||||
periphs: periphs@ff634400 {
|
||||
@@ -743,16 +753,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0xff8000c0 0x10>,
|
||||
<0xff800040 0x4>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
interrupts = <0 198 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saradc:saradc {
|
||||
compatible = "amlogic,meson-axg-saradc";
|
||||
status = "okay";
|
||||
|
||||
@@ -754,6 +754,17 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ao_b_uart_pins>;
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster@14c {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0x14c 0x10>,
|
||||
<0x40 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
};/* end of aobus */
|
||||
|
||||
periphs: periphs@ff634400 {
|
||||
@@ -1337,15 +1348,6 @@
|
||||
clocks = <&clkc CLKID_VPU_CLKC_MUX>;
|
||||
clock-names = "vpu_clkc";
|
||||
};
|
||||
irblaster: meson-irblaster {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0xff80014c 0x10>,
|
||||
<0xff800040 0x4>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
interrupts = <0 198 1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sd_emmc_c: emmc@ffe07000 {
|
||||
status = "disabled";
|
||||
|
||||
@@ -813,6 +813,15 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ao_b_uart_pins>;
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster@14c {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0x14c 0x10>,
|
||||
<0x40 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
};/* end of aobus */
|
||||
|
||||
periphs: periphs@ff634400 {
|
||||
@@ -1451,15 +1460,6 @@
|
||||
clocks = <&clkc CLKID_VPU_CLKC_MUX>;
|
||||
clock-names = "vpu_clkc";
|
||||
};
|
||||
irblaster: meson-irblaster {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0xff80014c 0x10>,
|
||||
<0xff800040 0x4>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
interrupts = <0 198 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sd_emmc_c: emmc@ffe07000 {
|
||||
status = "disabled";
|
||||
|
||||
@@ -524,6 +524,14 @@
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
clock-names = "clk_i2c";
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster@c0 {
|
||||
compatible = "amlogic, aml_irblaster";
|
||||
reg = <0xc0 0xc>,
|
||||
<0x40 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
periphs: periphs@c8834000 {
|
||||
@@ -637,6 +645,20 @@
|
||||
function = "ee_cec";
|
||||
};
|
||||
};
|
||||
|
||||
irblaster_pins:irblaster_pin {
|
||||
mux {
|
||||
groups = "ir_out_ao7";
|
||||
function = "ir_out";
|
||||
};
|
||||
};
|
||||
|
||||
irblaster_pins1:irblaster_pin1 {
|
||||
mux {
|
||||
groups = "ir_out_ao9";
|
||||
function = "ir_out";
|
||||
};
|
||||
};
|
||||
}; /* end of pinctrl_aobus*/
|
||||
|
||||
&pinctrl_periphs {
|
||||
|
||||
@@ -633,6 +633,14 @@
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
clock-names = "clk_i2c";
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster@c0 {
|
||||
compatible = "amlogic, aml_irblaster";
|
||||
reg = <0xc0 0xc>,
|
||||
<0x40 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
periphs: periphs@c8834000 {
|
||||
@@ -739,6 +747,20 @@
|
||||
function = "ee_cec";
|
||||
};
|
||||
};
|
||||
|
||||
irblaster_pins:irblaster_pin {
|
||||
mux {
|
||||
groups = "ir_out_ao7";
|
||||
function = "ir_out";
|
||||
};
|
||||
};
|
||||
|
||||
irblaster_pins1:irblaster_pin1 {
|
||||
mux {
|
||||
groups = "ir_out_ao9";
|
||||
function = "ir_out";
|
||||
};
|
||||
};
|
||||
}; /* end of pinctrl_aobus*/
|
||||
|
||||
&pinctrl_periphs {
|
||||
|
||||
@@ -841,12 +841,12 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
meson-irblaster {
|
||||
compatible = "amlogic, am_irblaster";
|
||||
dev_name = "meson-irblaster";
|
||||
status = "disable";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
irblaster: meson-irblaster@c0 {
|
||||
compatible = "amlogic, aml_irblaster";
|
||||
reg = <0xc0 0xc>,
|
||||
<0x40 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
||||
@@ -1024,6 +1024,13 @@
|
||||
};
|
||||
};
|
||||
|
||||
irblaster_pins1:irblaster_pin1 {
|
||||
mux {
|
||||
groups = "remote_out_ao6";
|
||||
function = "ir_out";
|
||||
};
|
||||
};
|
||||
|
||||
pwmleds_pins:pwmleds {
|
||||
|
||||
mux {
|
||||
|
||||
@@ -366,7 +366,9 @@ CONFIG_AMLOGIC_WIFI=y
|
||||
CONFIG_AMLOGIC_BT_DEVICE=y
|
||||
CONFIG_AMLOGIC_POWER=y
|
||||
CONFIG_AMLOGIC_PCIE=y
|
||||
CONFIG_AMLOGIC_IRBLASTER=y
|
||||
CONFIG_AMLOGIC_IRBLASTER_CORE=y
|
||||
CONFIG_AMLOGIC_IRBLASTER_MESON=y
|
||||
CONFIG_AMLOGIC_IRBLASTER_PROTOCOL=y
|
||||
CONFIG_AMLOGIC_IIO=y
|
||||
CONFIG_AMLOGIC_SARADC=y
|
||||
CONFIG_AMLOGIC_DDR_TOOL=y
|
||||
|
||||
@@ -423,14 +423,6 @@
|
||||
pinctrl-0 = <&b_uart_pins>;
|
||||
};
|
||||
|
||||
meson-irblaster {
|
||||
compatible = "amlogic, am_irblaster";
|
||||
dev_name = "meson-irblaster";
|
||||
status = "disable";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
};
|
||||
|
||||
vpu {
|
||||
compatible = "amlogic, vpu-axg";
|
||||
dev_name = "vpu";
|
||||
|
||||
@@ -316,14 +316,6 @@
|
||||
pinctrl-0 = <&b_uart_pins>;
|
||||
};
|
||||
|
||||
meson-irblaster {
|
||||
compatible = "amlogic, am_irblaster";
|
||||
dev_name = "meson-irblaster";
|
||||
status = "disable";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
};
|
||||
|
||||
/* Sound iomap */
|
||||
aml_snd_iomap {
|
||||
compatible = "amlogic, snd-iomap";
|
||||
|
||||
@@ -474,6 +474,16 @@
|
||||
clock-names = "clk_i2c";
|
||||
clock-frequency = <100000>;
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster@c0 {
|
||||
compatible = "amlogic, aml_irblaster";
|
||||
reg = <0x0 0xc0 0x0 0xc>,
|
||||
<0x0 0x40 0x0 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
};/* end of aobus */
|
||||
|
||||
periphs: periphs@ff634400 {
|
||||
@@ -749,16 +759,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0x0 0xff8000c0 0x0 0x10>,
|
||||
<0x0 0xff800040 0x0 0x4>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
interrupts = <0 198 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
saradc:saradc {
|
||||
compatible = "amlogic,meson-axg-saradc";
|
||||
status = "okay";
|
||||
|
||||
@@ -754,6 +754,17 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ao_b_uart_pins>;
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster@14c {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0x0 0x14c 0x0 0x10>,
|
||||
<0x0 0x40 0x0 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
};/* end of aobus */
|
||||
|
||||
periphs: periphs@ff634400 {
|
||||
@@ -1337,15 +1348,6 @@
|
||||
clocks = <&clkc CLKID_VPU_CLKC_MUX>;
|
||||
clock-names = "vpu_clkc";
|
||||
};
|
||||
irblaster: meson-irblaster {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0x0 0xff80014c 0x0 0x10>,
|
||||
<0x0 0xff800040 0x0 0x4>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
interrupts = <0 198 1>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
sd_emmc_c: emmc@ffe07000 {
|
||||
status = "disabled";
|
||||
|
||||
@@ -813,6 +813,15 @@
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&ao_b_uart_pins>;
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster@14c {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0x0 0x14c 0x0 0x10>,
|
||||
<0x0 0x40 0x0 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
};/* end of aobus */
|
||||
|
||||
periphs: periphs@ff634400 {
|
||||
@@ -1436,15 +1445,6 @@
|
||||
clocks = <&clkc CLKID_VPU_CLKC_MUX>;
|
||||
clock-names = "vpu_clkc";
|
||||
};
|
||||
irblaster: meson-irblaster {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0x0 0xff80014c 0x0 0x10>,
|
||||
<0x0 0xff800040 0x0 0x4>;
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
interrupts = <0 198 1>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
sd_emmc_c: emmc@ffe07000 {
|
||||
status = "disabled";
|
||||
|
||||
@@ -511,6 +511,14 @@
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
clock-names = "clk_i2c";
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster@c0 {
|
||||
compatible = "amlogic, aml_irblaster";
|
||||
reg = <0x0 0xc0 0x0 0xc>,
|
||||
<0x0 0x40 0x0 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
periphs: periphs@c8834000 {
|
||||
@@ -625,6 +633,19 @@
|
||||
};
|
||||
};
|
||||
|
||||
irblaster_pins:irblaster_pin {
|
||||
mux {
|
||||
groups = "ir_out_ao7";
|
||||
function = "ir_out";
|
||||
};
|
||||
};
|
||||
|
||||
irblaster_pins1:irblaster_pin1 {
|
||||
mux {
|
||||
groups = "ir_out_ao9";
|
||||
function = "ir_out";
|
||||
};
|
||||
};
|
||||
}; /* end of pinctrl_aobus*/
|
||||
|
||||
&pinctrl_periphs {
|
||||
|
||||
@@ -634,6 +634,14 @@
|
||||
clocks = <&clkc CLKID_I2C>;
|
||||
clock-names = "clk_i2c";
|
||||
};
|
||||
|
||||
irblaster: meson-irblaster@c0 {
|
||||
compatible = "amlogic, aml_irblaster";
|
||||
reg = <0x0 0xc0 0x0 0xc>,
|
||||
<0x0 0x40 0x0 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
periphs: periphs@c8834000 {
|
||||
@@ -740,6 +748,20 @@
|
||||
function = "ee_cec";
|
||||
};
|
||||
};
|
||||
|
||||
irblaster_pins:irblaster_pin {
|
||||
mux {
|
||||
groups = "ir_out_ao7";
|
||||
function = "ir_out";
|
||||
};
|
||||
};
|
||||
|
||||
irblaster_pins1:irblaster_pin1 {
|
||||
mux {
|
||||
groups = "ir_out_ao9";
|
||||
function = "ir_out";
|
||||
};
|
||||
};
|
||||
}; /* end of pinctrl_aobus*/
|
||||
|
||||
&pinctrl_periphs {
|
||||
|
||||
@@ -985,11 +985,12 @@
|
||||
max_frame_time = <200>;
|
||||
};
|
||||
|
||||
meson_irblaster: irblaster@14c {
|
||||
irblaster: meson-irblaster@14c {
|
||||
compatible = "amlogic, meson_irblaster";
|
||||
reg = <0x0 0x14c 0x0 0x10>,
|
||||
<0x0 0x40 0x0 0x4>;
|
||||
interrupts = <0 198 1>;
|
||||
#irblaster-cells = <2>;
|
||||
interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
||||
@@ -841,15 +841,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
meson-irblaster {
|
||||
compatible = "amlogic, am_irblaster";
|
||||
dev_name = "meson-irblaster";
|
||||
status = "disable";
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&irblaster_pins>;
|
||||
irblaster: meson-irblaster@c0 {
|
||||
compatible = "amlogic, aml_irblaster";
|
||||
reg = <0x0 0xc0 0x0 0xc>,
|
||||
<0x0 0x40 0x0 0x4>;
|
||||
#irblaster-cells = <2>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
|
||||
remote: rc@8040 {
|
||||
compatible = "amlogic, aml_remote";
|
||||
dev_name = "meson-remote";
|
||||
@@ -1024,6 +1023,13 @@
|
||||
};
|
||||
};
|
||||
|
||||
irblaster_pins1:irblaster_pin1 {
|
||||
mux {
|
||||
groups = "remote_out_ao6";
|
||||
function = "ir_out";
|
||||
};
|
||||
};
|
||||
|
||||
pwmleds_pins:pwmleds {
|
||||
|
||||
mux {
|
||||
|
||||
@@ -360,7 +360,9 @@ CONFIG_AMLOGIC_WIFI=y
|
||||
CONFIG_AMLOGIC_BT_DEVICE=y
|
||||
CONFIG_AMLOGIC_POWER=y
|
||||
CONFIG_AMLOGIC_PCIE=y
|
||||
CONFIG_AMLOGIC_IRBLASTER=y
|
||||
CONFIG_AMLOGIC_IRBLASTER_CORE=y
|
||||
CONFIG_AMLOGIC_IRBLASTER_MESON=y
|
||||
CONFIG_AMLOGIC_IRBLASTER_PROTOCOL=y
|
||||
CONFIG_AMLOGIC_IIO=y
|
||||
CONFIG_AMLOGIC_SARADC=y
|
||||
CONFIG_AMLOGIC_DDR_TOOL=y
|
||||
|
||||
@@ -112,7 +112,7 @@ obj-$(CONFIG_AMLOGIC_POWER) += power/
|
||||
|
||||
obj-$(CONFIG_AMLOGIC_PCIE) += pci/
|
||||
|
||||
obj-$(CONFIG_AMLOGIC_IRBLASTER) += irblaster/
|
||||
obj-$(CONFIG_AMLOGIC_IRBLASTER_CORE) += irblaster/
|
||||
|
||||
obj-$(CONFIG_AMLOGIC_IIO) += iio/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user