Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fec7194f authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "socinfo: Add support for ADP platforms"

parents cfd6d33c 35f2674b
Loading
Loading
Loading
Loading
+53 −14
Original line number Diff line number Diff line
@@ -102,17 +102,33 @@ enum {
};

enum {
	PLATFORM_SUBTYPE_ADP_V1 = 0x0,
	PLATFORM_SUBTYPE_ADP_V2 = 0x1,
	PLATFORM_SUBTYPE_ADP_AIR_V1 = 0x2,
	PLATFORM_SUBTYPE_ADP_INVALID,
	PLATFORM_SUBTYPE_SA8155_ADP_STAR = 0x0,
	PLATFORM_SUBTYPE_SA8155_ADP_AIR = 0x1,
	PLATFORM_SUBTYPE_SA8155_ADP_ALCOR = 0x2,
	PLATFORM_SUBTYPE_SA8155_ADP_INVALID,
};

const char *adp_hw_platform_subtype[] = {
	[PLATFORM_SUBTYPE_ADP_V1] = "ADP_V1",
	[PLATFORM_SUBTYPE_ADP_V2] = "ADP_V2",
	[PLATFORM_SUBTYPE_ADP_AIR_V1] = "ADP_AIR_V1",
	[PLATFORM_SUBTYPE_ADP_INVALID] = "INVALID",
static const char * const sa8155adp_hw_platform_subtype[] = {
	[PLATFORM_SUBTYPE_SA8155_ADP_STAR] = "ADP_STAR",
	[PLATFORM_SUBTYPE_SA8155_ADP_AIR] = "ADP_AIR",
	[PLATFORM_SUBTYPE_SA8155_ADP_ALCOR] = "ADP_ALCOR",
	[PLATFORM_SUBTYPE_SA8155_ADP_INVALID] = "INVALID",
};

enum {
	PLATFORM_SUBTYPE_SA6155_ADP_STAR = 0x0,
	PLATFORM_SUBTYPE_SA6155_ADP_STAR_EMACPPO = 0x1,
	PLATFORM_SUBTYPE_SA6155_ADP_STAR_AUDREFCLK = 0x2,
	PLATFORM_SUBTYPE_SA6155_ADP_AIR = 0x3,
	PLATFORM_SUBTYPE_SA6155_ADP_INVALID,
};

static const char * const sa6155adp_hw_platform_subtype[] = {
	[PLATFORM_SUBTYPE_SA6155_ADP_STAR] = "ADP_STAR",
	[PLATFORM_SUBTYPE_SA6155_ADP_STAR_EMACPPO] = "ADP_STAR_EMACPPO",
	[PLATFORM_SUBTYPE_SA6155_ADP_STAR_AUDREFCLK] = "ADP_STAR_AUDREFCLK",
	[PLATFORM_SUBTYPE_SA6155_ADP_AIR] = "ADP_AIR",
	[PLATFORM_SUBTYPE_SA6155_ADP_INVALID] = "INVALID",
};

enum {
@@ -748,6 +764,7 @@ msm_get_platform_subtype(struct device *dev,
			char *buf)
{
	uint32_t hw_subtype;
	const char *machine_name;

	hw_subtype = socinfo_get_platform_subtype();
	if (socinfo_get_platform_type() == HW_PLATFORM_QRD) {
@@ -759,12 +776,33 @@ msm_get_platform_subtype(struct device *dev,
					qrd_hw_platform_subtype[hw_subtype]);
	}
	if (socinfo_get_platform_type() == HW_PLATFORM_ADP) {
		if (hw_subtype >= PLATFORM_SUBTYPE_ADP_INVALID) {
		machine_name = socinfo_get_id_string();
		if (machine_name) {
			if ((strcmp(machine_name, "SA8155") == 0) ||
				(strcmp(machine_name, "SA8155P") == 0)) {
				if (hw_subtype >=
					PLATFORM_SUBTYPE_SA8155_ADP_INVALID) {
					pr_err("Invalid hardware platform sub type for adp found\n");
			hw_subtype = PLATFORM_SUBTYPE_ADP_INVALID;
					hw_subtype =
					PLATFORM_SUBTYPE_SA8155_ADP_INVALID;
				}
				return snprintf(buf, PAGE_SIZE, "%-.32s\n",
					adp_hw_platform_subtype[hw_subtype]);
				sa8155adp_hw_platform_subtype[hw_subtype]);
			} else if ((strcmp(machine_name, "SA6155") == 0) ||
				(strcmp(machine_name, "SA6155P") == 0)) {
				if (hw_subtype >=
					PLATFORM_SUBTYPE_SA6155_ADP_INVALID) {
					pr_err("Invalid hardware platform sub type for adp found\n");
					hw_subtype =
					PLATFORM_SUBTYPE_SA6155_ADP_INVALID;
				}
			return snprintf(buf, PAGE_SIZE, "%-.32s\n",
				sa6155adp_hw_platform_subtype[hw_subtype]);
			} else {
				pr_err("Invalid machine name for ADP platform\n");
				return 0;
			}
		}
	} else {
		if (hw_subtype >= PLATFORM_SUBTYPE_INVALID) {
			pr_err("Invalid hardware platform subtype\n");
@@ -773,6 +811,7 @@ msm_get_platform_subtype(struct device *dev,
		return snprintf(buf, PAGE_SIZE, "%-.32s\n",
			hw_platform_subtype[hw_subtype]);
	}
	return 0;
}

static ssize_t