};
aocec: aocec {
- compatible = "amlogic, aocec-tl1";
+ compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
vendor_name = "Amlogic"; /* Max Chars: 8 */
* http://standards.ieee.org/develop/regauth/oui/oui.txt
*/
vendor_id = <0x000000>;
- product_desc = "TL1"; /* Max Chars: 16 */
+ product_desc = "TM2"; /* Max Chars: 16 */
cec_osd_string = "AML_TV"; /* Max Chars: 14 */
port_num = <3>;
ee_cec;
+ /*cec_sel = <2>;*/
+ output = <1>; /*output port number*/
arc_port_mask = <0x2>;
interrupts = <0 205 1
0 199 1>;
};
aocec: aocec {
- compatible = "amlogic, aocec-tl1";
+ compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
vendor_name = "Amlogic"; /* Max Chars: 8 */
* http://standards.ieee.org/develop/regauth/oui/oui.txt
*/
vendor_id = <0x000000>;
- product_desc = "TL1"; /* Max Chars: 16 */
+ product_desc = "TM2"; /* Max Chars: 16 */
cec_osd_string = "AML_TV"; /* Max Chars: 14 */
port_num = <3>;
ee_cec;
+ /*cec_sel = <2>;*/
+ output = <1>; /*output port number*/
arc_port_mask = <0x2>;
interrupts = <0 205 1
0 199 1>;
};
aocec: aocec {
- compatible = "amlogic, aocec-tl1";
+ compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
vendor_name = "Amlogic"; /* Max Chars: 8 */
* http://standards.ieee.org/develop/regauth/oui/oui.txt
*/
vendor_id = <0x000000>;
- product_desc = "TL1"; /* Max Chars: 16 */
+ product_desc = "TM2"; /* Max Chars: 16 */
cec_osd_string = "AML_TV"; /* Max Chars: 14 */
port_num = <3>;
ee_cec;
+ /*cec_sel = <2>;*/
+ output = <1>; /*output port number*/
arc_port_mask = <0x2>;
interrupts = <0 205 1
0 199 1>;
};
aocec: aocec {
- compatible = "amlogic, aocec-tl1";
+ compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
vendor_name = "Amlogic"; /* Max Chars: 8 */
* http://standards.ieee.org/develop/regauth/oui/oui.txt
*/
vendor_id = <0x000000>;
- product_desc = "TL1"; /* Max Chars: 16 */
+ product_desc = "TM2"; /* Max Chars: 16 */
cec_osd_string = "AML_TV"; /* Max Chars: 14 */
port_num = <3>;
ee_cec;
+ /*cec_sel = <2>;*/
arc_port_mask = <0x2>;
+ output = <1>; /*output port number*/
interrupts = <0 205 1
0 199 1>;
interrupt-names = "hdmi_aocecb","hdmi_aocec";
};
aocec: aocec {
- compatible = "amlogic, aocec-tl1";
+ compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
vendor_name = "Amlogic"; /* Max Chars: 8 */
* http://standards.ieee.org/develop/regauth/oui/oui.txt
*/
vendor_id = <0x000000>;
- product_desc = "TL1"; /* Max Chars: 16 */
+ product_desc = "TM2"; /* Max Chars: 16 */
cec_osd_string = "AML_TV"; /* Max Chars: 14 */
port_num = <3>;
ee_cec;
+ /*cec_sel = <2>;*/
arc_port_mask = <0x2>;
+ output = <1>; /*output port number*/
interrupts = <0 205 1
0 199 1>;
interrupt-names = "hdmi_aocecb","hdmi_aocec";
};
aocec: aocec {
- compatible = "amlogic, aocec-tl1";
+ compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
vendor_name = "Amlogic"; /* Max Chars: 8 */
* http://standards.ieee.org/develop/regauth/oui/oui.txt
*/
vendor_id = <0x000000>;
- product_desc = "TL1"; /* Max Chars: 16 */
+ product_desc = "TM2"; /* Max Chars: 16 */
cec_osd_string = "AML_TV"; /* Max Chars: 14 */
port_num = <3>;
ee_cec;
+ /*cec_sel = <2>;*/
+ output = <1>; /*output port number*/
arc_port_mask = <0x2>;
interrupts = <0 205 1
0 199 1>;
};
aocec: aocec {
- compatible = "amlogic, aocec-tl1";
+ compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
vendor_name = "Amlogic"; /* Max Chars: 8 */
* http://standards.ieee.org/develop/regauth/oui/oui.txt
*/
vendor_id = <0x000000>;
- product_desc = "TL1"; /* Max Chars: 16 */
+ product_desc = "TM2"; /* Max Chars: 16 */
cec_osd_string = "AML_TV"; /* Max Chars: 14 */
port_num = <3>;
ee_cec;
+ /*cec_sel = <2>;*/
+ output = <1>; /*output port number*/
arc_port_mask = <0x2>;
interrupts = <0 205 1
0 199 1>;
};
aocec: aocec {
- compatible = "amlogic, aocec-tl1";
+ compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
vendor_name = "Amlogic"; /* Max Chars: 8 */
* http://standards.ieee.org/develop/regauth/oui/oui.txt
*/
vendor_id = <0x000000>;
- product_desc = "TL1"; /* Max Chars: 16 */
+ product_desc = "TM2"; /* Max Chars: 16 */
cec_osd_string = "AML_TV"; /* Max Chars: 14 */
port_num = <3>;
ee_cec;
+ /*cec_sel = <2>;*/
+ output = <1>; /*output port number*/
arc_port_mask = <0x2>;
interrupts = <0 205 1
0 199 1>;
};
aocec: aocec {
- compatible = "amlogic, aocec-tl1";
+ compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
vendor_name = "Amlogic"; /* Max Chars: 8 */
* http://standards.ieee.org/develop/regauth/oui/oui.txt
*/
vendor_id = <0x000000>;
- product_desc = "TL1"; /* Max Chars: 16 */
+ product_desc = "TM2"; /* Max Chars: 16 */
cec_osd_string = "AML_TV"; /* Max Chars: 14 */
port_num = <3>;
ee_cec;
+ /*cec_sel = <2>;*/
+ output = <1>; /*output port number*/
arc_port_mask = <0x2>;
interrupts = <0 205 1
0 199 1>;
};
aocec: aocec {
- compatible = "amlogic, aocec-tl1";
+ compatible = "amlogic, aocec-tm2";
/*device_name = "aocec";*/
status = "okay";
vendor_name = "Amlogic"; /* Max Chars: 8 */
* http://standards.ieee.org/develop/regauth/oui/oui.txt
*/
vendor_id = <0x000000>;
- product_desc = "TL1"; /* Max Chars: 16 */
+ product_desc = "TM2"; /* Max Chars: 16 */
cec_osd_string = "AML_TV"; /* Max Chars: 14 */
port_num = <3>;
ee_cec;
+ /*cec_sel = <2>;*/
arc_port_mask = <0x2>;
+ output = <1>; /*output port number*/
interrupts = <0 205 1
0 199 1>;
interrupt-names = "hdmi_aocecb","hdmi_aocec";
bool ee_to_ao;/*ee cec hw module mv to ao;ao cec delete*/
bool ceca_sts_reg;/*add new internal status register*/
enum cecbver cecb_ver;/* detail discription ref enum cecbver */
+ enum cecaver ceca_ver;
};
{
unsigned int data;
+ if (is_meson_sm1_cpu() ||
+ cpu_after_eq(MESON_CPU_MAJOR_ID_TM2)) {
+ /*sm1 and tm2 later, audio module handle this*/
+
+ return;
+ }
+
if (cec_dev->plat_data->cecb_ver >= CECB_VER_2) {
data = rd_reg_hhi(HHI_HDMIRX_ARC_CNTL);
/* enable bit 1:1 bit 0: 0*/
.line_bit = 3,
.ee_to_ao = 1,
.ceca_sts_reg = 0,
+ .ceca_ver = CECA_VER_0,
.cecb_ver = CECB_VER_1,
};
.line_bit = 7,
.ee_to_ao = 0,
.ceca_sts_reg = 0,
+ .ceca_ver = CECA_VER_0,
.cecb_ver = CECB_VER_0,
};
.line_bit = 10,
.ee_to_ao = 1,
.ceca_sts_reg = 1,
+ .ceca_ver = CECA_VER_0,
.cecb_ver = CECB_VER_2,
};
.line_bit = 3,
.ee_to_ao = 1,
.ceca_sts_reg = 1,
+ .ceca_ver = CECA_VER_1,
+ .cecb_ver = CECB_VER_2,
+};
+
+static const struct cec_platform_data_s cec_tm2_data = {
+ .line_reg = 0,
+ .line_bit = 3,
+ .ee_to_ao = 1,
+ .ceca_sts_reg = 1,
+ .ceca_ver = CECA_VER_1,
.cecb_ver = CECB_VER_2,
};
.compatible = "amlogic, aocec-sm1",
.data = &cec_sm1_data,
},
+ {
+ .compatible = "amlogic, aocec-tm2",
+ .data = &cec_tm2_data,
+ },
{}
};
#endif
#define CEC_PHY_PORT_NUM 4
#define HR_DELAY(n) (ktime_set(0, n * 1000 * 1000))
+enum cecaver {
+ /*first version*/
+ CECA_VER_0 = 0,
+
+ /*support multi logical address*/
+ CECA_VER_1 = 1,
+};
+
enum cecbver {
/*first version*/
CECB_VER_0 = 0,