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

Commit af129fb8 authored by Hsin-Hsiung Wang's avatar Hsin-Hsiung Wang
Browse files

[ALPS05479506] clock buffer: add cap id properity



Allow to modify cap id.

MTK-Commit-Id: 43cb6ec71a175695db24d0a33525a0a960c27c20

Change-Id: Ib56c82b69edbf1eaec78013f6184491a82b8fcf4
Signed-off-by: default avatarHsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
CR-Id: ALPS05479506
Feature: [Module]PMIC
parent 94a6702b
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -129,6 +129,7 @@ static struct dts_predef clkbuf_dts[DTS_NUM] = {
	[XO_HW_SEL] = {"pmic-xo-mode", 7, 0, 0x3, 0},

	[BBL_SW_EN] = {"pmic-bblpm-sw", 1, 0, 0x1, 0},
	[DEF_CAP_ID] = {"pmic-default-capid", 1, 0, 0xff, 0},

	[MISC_SRCLKENI_EN] = {"pmic-srclkeni3", 1, 0, 0x1, 0},

@@ -1012,15 +1013,54 @@ static ssize_t clk_buf_bblpm_show(struct kobject *kobj,
	return len;
}

static u32 default_cap_id = 0x55;
static ssize_t clk_buf_capid_store(struct kobject *kobj,
	struct kobj_attribute *attr, const char *buf, size_t count)
{
	u32 cap_id = 0;

	if ((kstrtouint(buf, 10, &cap_id))) {
		pr_info("cap id input error\n");
		return -EPERM;
	}

	pr_info("cap id input (%d)\n", cap_id);
	if (cap_id < 256) {
		if (default_cap_id == 0x55)
			clkbuf_read(DEF_CAP_ID, 0, &default_cap_id);

		clkbuf_update(DEF_CAP_ID, 0, cap_id);
	} else {
		return -EPERM;
	}

	return count;
}

static ssize_t clk_buf_capid_show(struct kobject *kobj,
	struct kobj_attribute *attr, char *buf)
{
	u32 cap_id = 0;
	int len = 0;

	clkbuf_read(DEF_CAP_ID, 0, &cap_id);
	pr_info("default cap id(%#x), cap id(%#x)\n", default_cap_id, cap_id);
	len = snprintf(buf, PAGE_SIZE, "default cap id(%#x), cap id(%#x)\n",
		default_cap_id, cap_id);
	return len;
}

DEFINE_ATTR_RW(clk_buf_ctrl);
DEFINE_ATTR_RW(clk_buf_debug);
DEFINE_ATTR_RW(clk_buf_bblpm);
DEFINE_ATTR_RW(clk_buf_capid);

static struct attribute *clk_buf_attrs[] = {
	/* for clock buffer control */
	__ATTR_OF(clk_buf_ctrl),
	__ATTR_OF(clk_buf_debug),
	__ATTR_OF(clk_buf_bblpm),
	__ATTR_OF(clk_buf_capid),

	/* must */
	NULL,
+1 −0
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ enum dts_arg {

	MISC_START = BBLPM_END,
	MISC_SRCLKENI_EN = MISC_START,
	DEF_CAP_ID,
	MISC_END,

	DCXO_END = MISC_END,