diff for duplicates of <20190105004904.17947-3-nicoleotsuka@gmail.com> diff --git a/a/1.txt b/N1/1.txt index a11a1af..e1c8945 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -9,7 +9,7 @@ down to save power. So this patch implements the DT property accordingly. -Signed-off-by: Nicolin Chen <nicoleots...@gmail.com> +Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com> --- drivers/hwmon/ina3221.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) @@ -19,13 +19,13 @@ index e90ccac8bebb..152735659e19 100644 --- a/drivers/hwmon/ina3221.c +++ b/drivers/hwmon/ina3221.c @@ -91,6 +91,12 @@ enum ina3221_channels { - INA3221_NUM_CHANNELS + INA3221_NUM_CHANNELS }; +enum ina3221_modes { -+ INA3221_MODE_SINGLE_SHOT, -+ INA3221_MODE_CONTINUOUS, -+ INA3221_NUM_MODES, ++ INA3221_MODE_SINGLE_SHOT, ++ INA3221_MODE_CONTINUOUS, ++ INA3221_NUM_MODES, +}; + /** @@ -38,71 +38,69 @@ index e90ccac8bebb..152735659e19 100644 + * @mode: Operating mode -- continuous or single-shot */ struct ina3221_data { - struct device *pm_dev; + struct device *pm_dev; @@ -119,6 +126,7 @@ struct ina3221_data { - struct ina3221_input inputs[INA3221_NUM_CHANNELS]; - struct mutex lock; - u32 reg_config; -+ enum ina3221_modes mode; + struct ina3221_input inputs[INA3221_NUM_CHANNELS]; + struct mutex lock; + u32 reg_config; ++ enum ina3221_modes mode; }; static inline bool ina3221_is_enabled(struct ina3221_data *ina, int channel) -@@ -188,6 +196,11 @@ static int ina3221_read_in(struct device *dev, u32 attr, -int channel, long *val) - if (!ina3221_is_enabled(ina, channel)) - return -ENODATA; +@@ -188,6 +196,11 @@ static int ina3221_read_in(struct device *dev, u32 attr, int channel, long *val) + if (!ina3221_is_enabled(ina, channel)) + return -ENODATA; -+ /* Write CONFIG register to trigger a single-shot measurement */ -+ if (ina->mode == INA3221_MODE_SINGLE_SHOT) -+ regmap_write(ina->regmap, INA3221_CONFIG, -+ ina->reg_config); ++ /* Write CONFIG register to trigger a single-shot measurement */ ++ if (ina->mode == INA3221_MODE_SINGLE_SHOT) ++ regmap_write(ina->regmap, INA3221_CONFIG, ++ ina->reg_config); + - ret = ina3221_wait_for_data(ina); - if (ret) - return ret; + ret = ina3221_wait_for_data(ina); + if (ret) + return ret; @@ -232,6 +245,11 @@ static int ina3221_read_curr(struct device *dev, u32 attr, - if (!ina3221_is_enabled(ina, channel)) - return -ENODATA; + if (!ina3221_is_enabled(ina, channel)) + return -ENODATA; -+ /* Write CONFIG register to trigger a single-shot measurement */ -+ if (ina->mode == INA3221_MODE_SINGLE_SHOT) -+ regmap_write(ina->regmap, INA3221_CONFIG, -+ ina->reg_config); ++ /* Write CONFIG register to trigger a single-shot measurement */ ++ if (ina->mode == INA3221_MODE_SINGLE_SHOT) ++ regmap_write(ina->regmap, INA3221_CONFIG, ++ ina->reg_config); + - ret = ina3221_wait_for_data(ina); - if (ret) - return ret; -@@ -617,6 +635,9 @@ static int ina3221_probe_from_dt(struct device *dev, struct -ina3221_data *ina) - if (!np) - return 0; + ret = ina3221_wait_for_data(ina); + if (ret) + return ret; +@@ -617,6 +635,9 @@ static int ina3221_probe_from_dt(struct device *dev, struct ina3221_data *ina) + if (!np) + return 0; -+ if (of_property_read_bool(np, "ti,single-shot")) -+ ina->mode = INA3221_MODE_SINGLE_SHOT; ++ if (of_property_read_bool(np, "ti,single-shot")) ++ ina->mode = INA3221_MODE_SINGLE_SHOT; + - for_each_child_of_node(np, child) { - ret = ina3221_probe_child_from_dt(dev, child, ina); - if (ret) + for_each_child_of_node(np, child) { + ret = ina3221_probe_child_from_dt(dev, child, ina); + if (ret) @@ -654,6 +675,9 @@ static int ina3221_probe(struct i2c_client *client, - } - } + } + } -+ /* Hardware default uses the continuous mode */ -+ ina->mode = INA3221_MODE_CONTINUOUS; ++ /* Hardware default uses the continuous mode */ ++ ina->mode = INA3221_MODE_CONTINUOUS; + - for (i = 0; i < INA3221_NUM_CHANNELS; i++) - ina->inputs[i].shunt_resistor = INA3221_RSHUNT_DEFAULT; + for (i = 0; i < INA3221_NUM_CHANNELS; i++) + ina->inputs[i].shunt_resistor = INA3221_RSHUNT_DEFAULT; @@ -666,6 +690,10 @@ static int ina3221_probe(struct i2c_client *client, - /* The driver will be reset, so use reset value */ - ina->reg_config = INA3221_CONFIG_DEFAULT; + /* The driver will be reset, so use reset value */ + ina->reg_config = INA3221_CONFIG_DEFAULT; -+ /* Clear continuous bit to use single-shot mode */ -+ if (ina->mode == INA3221_MODE_SINGLE_SHOT) -+ ina->reg_config &= ~INA3221_CONFIG_MODE_CONTINUOUS; ++ /* Clear continuous bit to use single-shot mode */ ++ if (ina->mode == INA3221_MODE_SINGLE_SHOT) ++ ina->reg_config &= ~INA3221_CONFIG_MODE_CONTINUOUS; + - /* Disable channels if their inputs are disconnected */ - for (i = 0; i < INA3221_NUM_CHANNELS; i++) { - if (ina->inputs[i].disconnected) + /* Disable channels if their inputs are disconnected */ + for (i = 0; i < INA3221_NUM_CHANNELS; i++) { + if (ina->inputs[i].disconnected) -- 2.17.1 diff --git a/a/content_digest b/N1/content_digest index a51c9f4..5197827 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,8 +1,14 @@ "ref\020190105004904.17947-1-nicoleotsuka@gmail.com\0" "From\0Nicolin Chen <nicoleotsuka@gmail.com>\0" "Subject\0[PATCH 2/2] hwmon: (ina3221) Implement ti,single-shot DT property\0" - "Date\0Fri, 04 Jan 2019 16:50:27 -0800\0" - "To\0linux-hwmon@vger.kernel.org\0" + "Date\0Fri, 4 Jan 2019 16:49:04 -0800\0" + "To\0jdelvare@suse.com" + linux@roeck-us.net + robh+dt@kernel.org + " mark.rutland@arm.com\0" + "Cc\0linux-hwmon@vger.kernel.org" + devicetree@vger.kernel.org + " linux-kernel@vger.kernel.org\0" "\00:1\0" "b\0" "By default, ina3221, as a hardware monitor, continuously measures\n" @@ -16,7 +22,7 @@ "\n" "So this patch implements the DT property accordingly.\n" "\n" - "Signed-off-by: Nicolin Chen <nicoleots...@gmail.com>\n" + "Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com>\n" "---\n" " drivers/hwmon/ina3221.c | 28 ++++++++++++++++++++++++++++\n" " 1 file changed, 28 insertions(+)\n" @@ -26,13 +32,13 @@ "--- a/drivers/hwmon/ina3221.c\n" "+++ b/drivers/hwmon/ina3221.c\n" "@@ -91,6 +91,12 @@ enum ina3221_channels {\n" - " INA3221_NUM_CHANNELS\n" + " \tINA3221_NUM_CHANNELS\n" " };\n" " \n" "+enum ina3221_modes {\n" - "+ INA3221_MODE_SINGLE_SHOT,\n" - "+ INA3221_MODE_CONTINUOUS,\n" - "+ INA3221_NUM_MODES,\n" + "+\tINA3221_MODE_SINGLE_SHOT,\n" + "+\tINA3221_MODE_CONTINUOUS,\n" + "+\tINA3221_NUM_MODES,\n" "+};\n" "+\n" " /**\n" @@ -45,73 +51,71 @@ "+ * @mode: Operating mode -- continuous or single-shot\n" " */\n" " struct ina3221_data {\n" - " struct device *pm_dev;\n" + " \tstruct device *pm_dev;\n" "@@ -119,6 +126,7 @@ struct ina3221_data {\n" - " struct ina3221_input inputs[INA3221_NUM_CHANNELS];\n" - " struct mutex lock;\n" - " u32 reg_config;\n" - "+ enum ina3221_modes mode;\n" + " \tstruct ina3221_input inputs[INA3221_NUM_CHANNELS];\n" + " \tstruct mutex lock;\n" + " \tu32 reg_config;\n" + "+\tenum ina3221_modes mode;\n" " };\n" " \n" " static inline bool ina3221_is_enabled(struct ina3221_data *ina, int channel)\n" - "@@ -188,6 +196,11 @@ static int ina3221_read_in(struct device *dev, u32 attr, \n" - "int channel, long *val)\n" - " if (!ina3221_is_enabled(ina, channel))\n" - " return -ENODATA;\n" + "@@ -188,6 +196,11 @@ static int ina3221_read_in(struct device *dev, u32 attr, int channel, long *val)\n" + " \t\tif (!ina3221_is_enabled(ina, channel))\n" + " \t\t\treturn -ENODATA;\n" " \n" - "+ /* Write CONFIG register to trigger a single-shot measurement */\n" - "+ if (ina->mode == INA3221_MODE_SINGLE_SHOT)\n" - "+ regmap_write(ina->regmap, INA3221_CONFIG,\n" - "+ ina->reg_config);\n" + "+\t\t/* Write CONFIG register to trigger a single-shot measurement */\n" + "+\t\tif (ina->mode == INA3221_MODE_SINGLE_SHOT)\n" + "+\t\t\tregmap_write(ina->regmap, INA3221_CONFIG,\n" + "+\t\t\t\t ina->reg_config);\n" "+\n" - " ret = ina3221_wait_for_data(ina);\n" - " if (ret)\n" - " return ret;\n" + " \t\tret = ina3221_wait_for_data(ina);\n" + " \t\tif (ret)\n" + " \t\t\treturn ret;\n" "@@ -232,6 +245,11 @@ static int ina3221_read_curr(struct device *dev, u32 attr,\n" - " if (!ina3221_is_enabled(ina, channel))\n" - " return -ENODATA;\n" + " \t\tif (!ina3221_is_enabled(ina, channel))\n" + " \t\t\treturn -ENODATA;\n" " \n" - "+ /* Write CONFIG register to trigger a single-shot measurement */\n" - "+ if (ina->mode == INA3221_MODE_SINGLE_SHOT)\n" - "+ regmap_write(ina->regmap, INA3221_CONFIG,\n" - "+ ina->reg_config);\n" + "+\t\t/* Write CONFIG register to trigger a single-shot measurement */\n" + "+\t\tif (ina->mode == INA3221_MODE_SINGLE_SHOT)\n" + "+\t\t\tregmap_write(ina->regmap, INA3221_CONFIG,\n" + "+\t\t\t\t ina->reg_config);\n" "+\n" - " ret = ina3221_wait_for_data(ina);\n" - " if (ret)\n" - " return ret;\n" - "@@ -617,6 +635,9 @@ static int ina3221_probe_from_dt(struct device *dev, struct \n" - "ina3221_data *ina)\n" - " if (!np)\n" - " return 0;\n" + " \t\tret = ina3221_wait_for_data(ina);\n" + " \t\tif (ret)\n" + " \t\t\treturn ret;\n" + "@@ -617,6 +635,9 @@ static int ina3221_probe_from_dt(struct device *dev, struct ina3221_data *ina)\n" + " \tif (!np)\n" + " \t\treturn 0;\n" " \n" - "+ if (of_property_read_bool(np, \"ti,single-shot\"))\n" - "+ ina->mode = INA3221_MODE_SINGLE_SHOT;\n" + "+\tif (of_property_read_bool(np, \"ti,single-shot\"))\n" + "+\t\tina->mode = INA3221_MODE_SINGLE_SHOT;\n" "+\n" - " for_each_child_of_node(np, child) {\n" - " ret = ina3221_probe_child_from_dt(dev, child, ina);\n" - " if (ret)\n" + " \tfor_each_child_of_node(np, child) {\n" + " \t\tret = ina3221_probe_child_from_dt(dev, child, ina);\n" + " \t\tif (ret)\n" "@@ -654,6 +675,9 @@ static int ina3221_probe(struct i2c_client *client,\n" - " }\n" - " }\n" + " \t\t}\n" + " \t}\n" " \n" - "+ /* Hardware default uses the continuous mode */\n" - "+ ina->mode = INA3221_MODE_CONTINUOUS;\n" + "+\t/* Hardware default uses the continuous mode */\n" + "+\tina->mode = INA3221_MODE_CONTINUOUS;\n" "+\n" - " for (i = 0; i < INA3221_NUM_CHANNELS; i++)\n" - " ina->inputs[i].shunt_resistor = INA3221_RSHUNT_DEFAULT;\n" + " \tfor (i = 0; i < INA3221_NUM_CHANNELS; i++)\n" + " \t\tina->inputs[i].shunt_resistor = INA3221_RSHUNT_DEFAULT;\n" " \n" "@@ -666,6 +690,10 @@ static int ina3221_probe(struct i2c_client *client,\n" - " /* The driver will be reset, so use reset value */\n" - " ina->reg_config = INA3221_CONFIG_DEFAULT;\n" + " \t/* The driver will be reset, so use reset value */\n" + " \tina->reg_config = INA3221_CONFIG_DEFAULT;\n" " \n" - "+ /* Clear continuous bit to use single-shot mode */\n" - "+ if (ina->mode == INA3221_MODE_SINGLE_SHOT)\n" - "+ ina->reg_config &= ~INA3221_CONFIG_MODE_CONTINUOUS;\n" + "+\t/* Clear continuous bit to use single-shot mode */\n" + "+\tif (ina->mode == INA3221_MODE_SINGLE_SHOT)\n" + "+\t\tina->reg_config &= ~INA3221_CONFIG_MODE_CONTINUOUS;\n" "+\n" - " /* Disable channels if their inputs are disconnected */\n" - " for (i = 0; i < INA3221_NUM_CHANNELS; i++) {\n" - " if (ina->inputs[i].disconnected)\n" + " \t/* Disable channels if their inputs are disconnected */\n" + " \tfor (i = 0; i < INA3221_NUM_CHANNELS; i++) {\n" + " \t\tif (ina->inputs[i].disconnected)\n" "-- \n" 2.17.1 -4b70abad0506decaba5efde3a4b9bd36624775aa3a28a041487fd07697a27662 +83cf24c37ce831880bc5abc15330b1b7454859f9fb97b4857a46067a9f98a98e
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox