* [PATCH v3 1/4] mfd: rt4831: Adds support for Richtek RT4831 MFD core
@ 2020-12-08 15:54 cy_huang
2020-12-08 15:54 ` [PATCH v3 2/4] backlight: rt4831: Adds DT binding document for Richtek RT4831 backlight cy_huang
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: cy_huang @ 2020-12-08 15:54 UTC (permalink / raw)
To: lee.jones, robh+dt; +Cc: cy_huang, linux-kernel, devicetree
From: ChiYuan Huang <cy_huang@richtek.com>
This adds support Richtek RT4831 MFD core. It includes four channel WLED driver
and Display Bias Voltage outputs.
Signed-off-by: ChiYuan Huang <cy_huang@richtek.com>
---
since v2
- Refine Kconfig descriptions.
- Add copyright.
- Refine error logs in probe.
- Refine comment lines in remove and shutdown.
---
drivers/mfd/Kconfig | 10 ++++
drivers/mfd/Makefile | 1 +
drivers/mfd/rt4831-core.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 135 insertions(+)
create mode 100644 drivers/mfd/rt4831-core.c
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 8b99a13..dfb2640 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1088,6 +1088,16 @@ config MFD_RDC321X
southbridge which provides access to GPIOs and Watchdog using the
southbridge PCI device configuration space.
+config MFD_RT4831
+ tristate "Richtek RT4831 four channel WLED and Display Bias Voltage"
+ depends on I2C
+ select MFD_CORE
+ select REGMAP_I2C
+ help
+ This enables support for the Richtek RT4831 that includes 4 channel
+ WLED driving and Display Bias Voltage. It's commonly used to provide
+ power to the LCD display and LCD backlight.
+
config MFD_RT5033
tristate "Richtek RT5033 Power Management IC"
depends on I2C
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index 1780019..4108141 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -235,6 +235,7 @@ obj-$(CONFIG_MFD_MENF21BMC) += menf21bmc.o
obj-$(CONFIG_MFD_HI6421_PMIC) += hi6421-pmic-core.o
obj-$(CONFIG_MFD_HI655X_PMIC) += hi655x-pmic.o
obj-$(CONFIG_MFD_DLN2) += dln2.o
+obj-$(CONFIG_MFD_RT4831) += rt4831-core.o
obj-$(CONFIG_MFD_RT5033) += rt5033.o
obj-$(CONFIG_MFD_SKY81452) += sky81452.o
diff --git a/drivers/mfd/rt4831-core.c b/drivers/mfd/rt4831-core.c
new file mode 100644
index 00000000..f837c06
--- /dev/null
+++ b/drivers/mfd/rt4831-core.c
@@ -0,0 +1,124 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (c) 2020 Richtek Technology Corp.
+ *
+ * Author: ChiYuan Huang <cy_huang@richtek.com>
+ */
+
+#include <linux/gpio/consumer.h>
+#include <linux/i2c.h>
+#include <linux/kernel.h>
+#include <linux/mfd/core.h>
+#include <linux/module.h>
+#include <linux/regmap.h>
+
+#define RT4831_REG_REVISION 0x01
+#define RT4831_REG_ENABLE 0x08
+#define RT4831_REG_I2CPROT 0x15
+
+#define RICHTEK_VID 0x03
+#define RT4831_VID_MASK GENMASK(1, 0)
+#define RT4831_RESET_MASK BIT(7)
+#define RT4831_I2CSAFETMR_MASK BIT(0)
+
+static const struct mfd_cell rt4831_subdevs[] = {
+ OF_MFD_CELL("rt4831-backlight", NULL, NULL, 0, 0, "richtek,rt4831-backlight"),
+ MFD_CELL_NAME("rt4831-regulator")
+};
+
+static bool rt4831_is_accessible_reg(struct device *dev, unsigned int reg)
+{
+ if (reg >= RT4831_REG_REVISION && reg <= RT4831_REG_I2CPROT)
+ return true;
+ return false;
+}
+
+static const struct regmap_config rt4831_regmap_config = {
+ .reg_bits = 8,
+ .val_bits = 8,
+ .max_register = RT4831_REG_I2CPROT,
+
+ .readable_reg = rt4831_is_accessible_reg,
+ .writeable_reg = rt4831_is_accessible_reg,
+};
+
+static int rt4831_probe(struct i2c_client *client)
+{
+ struct gpio_desc *enable;
+ struct regmap *regmap;
+ unsigned int val;
+ int ret;
+
+ enable = devm_gpiod_get_optional(&client->dev, "enable", GPIOD_OUT_HIGH);
+ if (IS_ERR(enable)) {
+ dev_err(&client->dev, "Failed to get 'enable' GPIO\n");
+ return PTR_ERR(enable);
+ }
+
+ regmap = devm_regmap_init_i2c(client, &rt4831_regmap_config);
+ if (IS_ERR(regmap)) {
+ dev_err(&client->dev, "Failed to initialize regmap\n");
+ return PTR_ERR(regmap);
+ }
+
+ ret = regmap_read(regmap, RT4831_REG_REVISION, &val);
+ if (ret) {
+ dev_err(&client->dev, "Failed to get H/W revision\n");
+ return ret;
+ }
+
+ if ((val & RT4831_VID_MASK) != RICHTEK_VID) {
+ dev_err(&client->dev, "VID not matched, val = 0x%02x\n", val);
+ return -ENODEV;
+ }
+
+ /*
+ * Used to prevent the abnormal shutdown.
+ * If SCL/SDA both keep low for one second to reset HW.
+ */
+ ret = regmap_update_bits(regmap, RT4831_REG_I2CPROT, RT4831_I2CSAFETMR_MASK,
+ RT4831_I2CSAFETMR_MASK);
+ if (ret) {
+ dev_err(&client->dev, "Failed to enable I2C safety timer\n");
+ return ret;
+ }
+
+ return devm_mfd_add_devices(&client->dev, PLATFORM_DEVID_AUTO, rt4831_subdevs,
+ ARRAY_SIZE(rt4831_subdevs), NULL, 0, NULL);
+}
+
+static int rt4831_remove(struct i2c_client *client)
+{
+ struct regmap *regmap = dev_get_regmap(&client->dev, NULL);
+
+ /* Disable WLED and DSV outputs */
+ return regmap_update_bits(regmap, RT4831_REG_ENABLE, RT4831_RESET_MASK, RT4831_RESET_MASK);
+}
+
+static void rt4831_shutdown(struct i2c_client *client)
+{
+ struct regmap *regmap = dev_get_regmap(&client->dev, NULL);
+
+ /* Disable WLED and DSV outputs */
+ regmap_update_bits(regmap, RT4831_REG_ENABLE, RT4831_RESET_MASK, RT4831_RESET_MASK);
+}
+
+static const struct of_device_id __maybe_unused rt4831_of_match[] = {
+ { .compatible = "richtek,rt4831", },
+ {}
+};
+MODULE_DEVICE_TABLE(of, rt4831_of_match);
+
+static struct i2c_driver rt4831_driver = {
+ .driver = {
+ .name = "rt4831",
+ .of_match_table = of_match_ptr(rt4831_of_match),
+ },
+ .probe_new = rt4831_probe,
+ .remove = rt4831_remove,
+ .shutdown = rt4831_shutdown,
+};
+module_i2c_driver(rt4831_driver);
+
+MODULE_AUTHOR("ChiYuan Huang <cy_huang@richtek.com>");
+MODULE_LICENSE("GPL v2");
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 2/4] backlight: rt4831: Adds DT binding document for Richtek RT4831 backlight
2020-12-08 15:54 [PATCH v3 1/4] mfd: rt4831: Adds support for Richtek RT4831 MFD core cy_huang
@ 2020-12-08 15:54 ` cy_huang
2020-12-10 15:14 ` Rob Herring
2020-12-10 15:16 ` Rob Herring
2020-12-08 15:54 ` [PATCH v3 3/4] regulator: rt4831: Adds DT binding document for Richtek RT4831 DSV regulator cy_huang
2020-12-08 15:54 ` [PATCH v3 4/4] mfd: rt4831: Adds DT binding document for Richtek RT4831 MFD core cy_huang
2 siblings, 2 replies; 8+ messages in thread
From: cy_huang @ 2020-12-08 15:54 UTC (permalink / raw)
To: lee.jones, robh+dt; +Cc: cy_huang, linux-kernel, devicetree
From: ChiYuan Huang <cy_huang@richtek.com>
Adds DT binding document for Richtek RT4831 backlight.
Signed-off-by: ChiYuan Huang <cy_huang@richtek.com>
---
since v3
- Move inlcude/dt-bindings/leds/rt4831-backlight.h from patch 0004 to here.
- Add dual license tag in header and backlight binding document.
- Left backlight dt-binding example only.
---
.../leds/backlight/richtek,rt4831-backlight.yaml | 76 ++++++++++++++++++++++
include/dt-bindings/leds/rt4831-backlight.h | 23 +++++++
2 files changed, 99 insertions(+)
create mode 100644 Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml
create mode 100644 include/dt-bindings/leds/rt4831-backlight.h
diff --git a/Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml
new file mode 100644
index 00000000..f24c8d1
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml
@@ -0,0 +1,76 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/backlight/richtek,rt4831-backlight.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Richtek RT4831 Backlight
+
+maintainers:
+ - ChiYuan Huang <cy_huang@richtek.com>
+
+description: |
+ RT4831 is a mutifunctional device that can provide power to the LCD display
+ and LCD backlight.
+
+ For the LCD backlight, it can provide four channel WLED driving capability.
+ Each channel driving current is up to 30mA
+
+ Datasheet is available at
+ https://www.richtek.com/assets/product_file/RT4831A/DS4831A-05.pdf
+
+properties:
+ compatible:
+ const: richtek,rt4831-backlight
+
+ default-brightness:
+ description: |
+ The default brightness that applied to the system on start-up.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 2048
+
+ max-brightness:
+ description: |
+ The max brightness for the H/W limit
+ $ref: /schemas/types.yaml#/definitions/uint32
+ minimum: 0
+ maximum: 2048
+
+ richtek,pwm-enable:
+ description: |
+ Specify the backlight dimming following by PWM duty or by SW control.
+ type: boolean
+
+ richtek,bled-ovp-sel:
+ description: |
+ Backlight OVP level selection, currently support 17V/21V/25V/29V.
+ $ref: /schemas/types.yaml#/definitions/uint8
+ default: 1
+ minimum: 0
+ maximum: 3
+
+ richtek,channel-use:
+ description: |
+ Backlight LED channel to be used.
+ BIT 0/1/2/3 is used to indicate led channel 1/2/3/4 enable or disable.
+ $ref: /schemas/types.yaml#/definitions/uint8
+ minimum: 1
+ maximum: 15
+
+required:
+ - compatible
+ - richtek,channel-use
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/leds/rt4831-backlight.h>
+ backlight {
+ compatible = "richtek,rt4831-backlight";
+ default-brightness = <1024>;
+ max-brightness = <2048>;
+ richtek,bled-ovp-sel = /bits/ 8 <RT4831_BLOVPLVL_21V>;
+ richtek,channel-use = /bits/ 8 <RT4831_BLED_ALLCHEN>;
+ };
diff --git a/include/dt-bindings/leds/rt4831-backlight.h b/include/dt-bindings/leds/rt4831-backlight.h
new file mode 100644
index 00000000..125c635
--- /dev/null
+++ b/include/dt-bindings/leds/rt4831-backlight.h
@@ -0,0 +1,23 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * This header provides constants for rt4831 backlight bindings.
+ *
+ * Copyright (C) 2020, Richtek Technology Corp.
+ * Author: ChiYuan Huang <cy_huang@richtek.com>
+ */
+
+#ifndef _DT_BINDINGS_RT4831_BACKLIGHT_H
+#define _DT_BINDINGS_RT4831_BACKLIGHT_H
+
+#define RT4831_BLOVPLVL_17V 0
+#define RT4831_BLOVPLVL_21V 1
+#define RT4831_BLOVPLVL_25V 2
+#define RT4831_BLOVPLVL_29V 3
+
+#define RT4831_BLED_CH1EN (1 << 0)
+#define RT4831_BLED_CH2EN (1 << 1)
+#define RT4831_BLED_CH3EN (1 << 2)
+#define RT4831_BLED_CH4EN (1 << 3)
+#define RT4831_BLED_ALLCHEN ((1 << 4) - 1)
+
+#endif /* _DT_BINDINGS_RT4831_BACKLIGHT_H */
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 3/4] regulator: rt4831: Adds DT binding document for Richtek RT4831 DSV regulator
2020-12-08 15:54 [PATCH v3 1/4] mfd: rt4831: Adds support for Richtek RT4831 MFD core cy_huang
2020-12-08 15:54 ` [PATCH v3 2/4] backlight: rt4831: Adds DT binding document for Richtek RT4831 backlight cy_huang
@ 2020-12-08 15:54 ` cy_huang
2020-12-10 15:17 ` Rob Herring
2020-12-08 15:54 ` [PATCH v3 4/4] mfd: rt4831: Adds DT binding document for Richtek RT4831 MFD core cy_huang
2 siblings, 1 reply; 8+ messages in thread
From: cy_huang @ 2020-12-08 15:54 UTC (permalink / raw)
To: lee.jones, robh+dt; +Cc: cy_huang, linux-kernel, devicetree
From: ChiYuan Huang <cy_huang@richtek.com>
Adds DT binding document for Richtek RT4831 DSV regulator.
Signed-off-by: ChiYuan Huang <cy_huang@richtek.com>
---
since v3
- Add dual license tag in regulator binding document.
- Left regulator dt-binding example only.
---
.../regulator/richtek,rt4831-regulator.yaml | 57 ++++++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml
diff --git a/Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml b/Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml
new file mode 100644
index 00000000..c6741f2
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/richtek,rt4831-regulator.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Richtek RT4831 Display Bias Voltage Regulator
+
+maintainers:
+ - ChiYuan Huang <cy_huang@richtek.com>
+
+description: |
+ RT4831 is a multifunctional device that can provide power to the LCD display
+ and LCD backlight.
+
+ For Display Bias Voltage DSVP and DSVN, the output range is about 4V to 6.5V.
+ It is sufficient to meet the current LCD power requirement.
+
+ DSVLCM is a boost regulator in IC internal as DSVP and DSVN input power.
+ Its voltage should be configured above 0.15V to 0.2V gap larger than the
+ voltage needed for DSVP and DSVN. Too much voltage gap could improve the
+ voltage drop from the heavy loading scenario. But it also make the power
+ efficiency worse. It's a trade-off.
+
+ Datasheet is available at
+ https://www.richtek.com/assets/product_file/RT4831A/DS4831A-05.pdf
+
+patternProperties:
+ "^DSV(LCM|P|N)$":
+ type: object
+ $ref: regulator.yaml#
+ description:
+ Properties for single Display Bias Voltage regulator.
+
+additionalProperties: false
+
+examples:
+ - |
+ regulators {
+ DSVLCM {
+ regulator-min-microvolt = <4000000>;
+ regulator-max-microvolt = <7150000>;
+ regulator-allow-bypass;
+ };
+ DSVP {
+ regulator-name = "rt4831-dsvp";
+ regulator-min-microvolt = <4000000>;
+ regulator-max-microvolt = <6500000>;
+ regulator-boot-on;
+ };
+ DSVN {
+ regulator-name = "rt4831-dsvn";
+ regulator-min-microvolt = <4000000>;
+ regulator-max-microvolt = <6500000>;
+ regulator-boot-on;
+ };
+ };
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 4/4] mfd: rt4831: Adds DT binding document for Richtek RT4831 MFD core
2020-12-08 15:54 [PATCH v3 1/4] mfd: rt4831: Adds support for Richtek RT4831 MFD core cy_huang
2020-12-08 15:54 ` [PATCH v3 2/4] backlight: rt4831: Adds DT binding document for Richtek RT4831 backlight cy_huang
2020-12-08 15:54 ` [PATCH v3 3/4] regulator: rt4831: Adds DT binding document for Richtek RT4831 DSV regulator cy_huang
@ 2020-12-08 15:54 ` cy_huang
2 siblings, 0 replies; 8+ messages in thread
From: cy_huang @ 2020-12-08 15:54 UTC (permalink / raw)
To: lee.jones, robh+dt; +Cc: cy_huang, linux-kernel, devicetree
From: ChiYuan Huang <cy_huang@richtek.com>
Adds DT binding document for Richtek RT4831 MFD core.
Signed-off-by: ChiYuan Huang <cy_huang@richtek.com>
---
This patch depends on
"backlight: rt4831: Adds DT binding document for Richtek RT4831 backlight".
"regulator: rt4831: Adds DT binding document for Richtek RT4831 DSV regulator".
since v3
- Move include/dt-bindings/leds/rt4831-backlight.h to patch 0002.
- Add dual license tag in mfd binding document.
since v2
- Add regulator-allow-bypass flag in DSVLCM.
---
.../devicetree/bindings/mfd/richtek,rt4831.yaml | 90 ++++++++++++++++++++++
1 file changed, 90 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mfd/richtek,rt4831.yaml
diff --git a/Documentation/devicetree/bindings/mfd/richtek,rt4831.yaml b/Documentation/devicetree/bindings/mfd/richtek,rt4831.yaml
new file mode 100644
index 00000000..4762eb1
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/richtek,rt4831.yaml
@@ -0,0 +1,90 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/richtek,rt4831.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Richtek RT4831 DSV and Backlight Integrated IC
+
+maintainers:
+ - ChiYuan Huang <cy_huang@richtek.com>
+
+description: |
+ RT4831 is a multifunctional device that can provide power to the LCD display
+ and LCD backlight.
+
+ For Display Bias Voltage DSVP and DSVN, the output range is about 4V to 6.5V.
+ It's sufficient to meet the current LCD power requirement.
+
+ For the LCD backlight, it can provide four channel WLED driving capability.
+ Each channel driving current is up to 30mA
+
+ Datasheet is available at
+ https://www.richtek.com/assets/product_file/RT4831A/DS4831A-05.pdf
+
+properties:
+ compatible:
+ const: richtek,rt4831
+
+ reg:
+ description: I2C device address.
+ maxItems: 1
+
+ enable-gpios:
+ description: |
+ GPIO to enable/disable the chip. It is optional.
+ Some usage directly tied this pin to follow VIO 1.8V power on sequence.
+ maxItems: 1
+
+ regulators:
+ $ref: ../regulator/richtek,rt4831-regulator.yaml
+
+ backlight:
+ $ref: ../leds/backlight/richtek,rt4831-backlight.yaml
+
+required:
+ - compatible
+ - reg
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/leds/rt4831-backlight.h>
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ rt4831@11 {
+ compatible = "richtek,rt4831";
+ reg = <0x11>;
+
+ regulators {
+ DSVLCM {
+ regulator-min-microvolt = <4000000>;
+ regulator-max-microvolt = <7150000>;
+ regulator-allow-bypass;
+ };
+ DSVP {
+ regulator-name = "rt4831-dsvp";
+ regulator-min-microvolt = <4000000>;
+ regulator-max-microvolt = <6500000>;
+ regulator-boot-on;
+ };
+ DSVN {
+ regulator-name = "rt4831-dsvn";
+ regulator-min-microvolt = <4000000>;
+ regulator-max-microvolt = <6500000>;
+ regulator-boot-on;
+ };
+ };
+
+ backlight {
+ compatible = "richtek,rt4831-backlight";
+ default-brightness = <1024>;
+ max-brightness = <2048>;
+ richtek,bled-ovp-sel = /bits/ 8 <RT4831_BLOVPLVL_21V>;
+ richtek,channel-use = /bits/ 8 <RT4831_BLED_ALLCHEN>;
+ };
+ };
+ };
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/4] backlight: rt4831: Adds DT binding document for Richtek RT4831 backlight
2020-12-08 15:54 ` [PATCH v3 2/4] backlight: rt4831: Adds DT binding document for Richtek RT4831 backlight cy_huang
@ 2020-12-10 15:14 ` Rob Herring
2020-12-10 15:16 ` Rob Herring
1 sibling, 0 replies; 8+ messages in thread
From: Rob Herring @ 2020-12-10 15:14 UTC (permalink / raw)
To: cy_huang; +Cc: lee.jones, cy_huang, linux-kernel, devicetree
On Tue, Dec 08, 2020 at 11:54:44PM +0800, cy_huang wrote:
> From: ChiYuan Huang <cy_huang@richtek.com>
>
> Adds DT binding document for Richtek RT4831 backlight.
>
> Signed-off-by: ChiYuan Huang <cy_huang@richtek.com>
> ---
> since v3
> - Move inlcude/dt-bindings/leds/rt4831-backlight.h from patch 0004 to here.
> - Add dual license tag in header and backlight binding document.
> - Left backlight dt-binding example only.
> ---
> .../leds/backlight/richtek,rt4831-backlight.yaml | 76 ++++++++++++++++++++++
> include/dt-bindings/leds/rt4831-backlight.h | 23 +++++++
> 2 files changed, 99 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml
> create mode 100644 include/dt-bindings/leds/rt4831-backlight.h
>
> diff --git a/Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml
> new file mode 100644
> index 00000000..f24c8d1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml
> @@ -0,0 +1,76 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/leds/backlight/richtek,rt4831-backlight.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Richtek RT4831 Backlight
> +
> +maintainers:
> + - ChiYuan Huang <cy_huang@richtek.com>
> +
> +description: |
> + RT4831 is a mutifunctional device that can provide power to the LCD display
> + and LCD backlight.
> +
> + For the LCD backlight, it can provide four channel WLED driving capability.
> + Each channel driving current is up to 30mA
> +
> + Datasheet is available at
> + https://www.richtek.com/assets/product_file/RT4831A/DS4831A-05.pdf
> +
> +properties:
> + compatible:
> + const: richtek,rt4831-backlight
> +
> + default-brightness:
> + description: |
> + The default brightness that applied to the system on start-up.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 2048
> +
> + max-brightness:
> + description: |
> + The max brightness for the H/W limit
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 2048
We have common schema for these. You need to reference that and drop
'description' and the type ref.
> +
> + richtek,pwm-enable:
> + description: |
> + Specify the backlight dimming following by PWM duty or by SW control.
> + type: boolean
> +
> + richtek,bled-ovp-sel:
> + description: |
> + Backlight OVP level selection, currently support 17V/21V/25V/29V.
> + $ref: /schemas/types.yaml#/definitions/uint8
> + default: 1
> + minimum: 0
> + maximum: 3
> +
> + richtek,channel-use:
> + description: |
> + Backlight LED channel to be used.
> + BIT 0/1/2/3 is used to indicate led channel 1/2/3/4 enable or disable.
> + $ref: /schemas/types.yaml#/definitions/uint8
> + minimum: 1
> + maximum: 15
> +
> +required:
> + - compatible
> + - richtek,channel-use
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/leds/rt4831-backlight.h>
> + backlight {
> + compatible = "richtek,rt4831-backlight";
> + default-brightness = <1024>;
> + max-brightness = <2048>;
> + richtek,bled-ovp-sel = /bits/ 8 <RT4831_BLOVPLVL_21V>;
> + richtek,channel-use = /bits/ 8 <RT4831_BLED_ALLCHEN>;
> + };
> diff --git a/include/dt-bindings/leds/rt4831-backlight.h b/include/dt-bindings/leds/rt4831-backlight.h
> new file mode 100644
> index 00000000..125c635
> --- /dev/null
> +++ b/include/dt-bindings/leds/rt4831-backlight.h
> @@ -0,0 +1,23 @@
> +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
> +/*
> + * This header provides constants for rt4831 backlight bindings.
> + *
> + * Copyright (C) 2020, Richtek Technology Corp.
> + * Author: ChiYuan Huang <cy_huang@richtek.com>
> + */
> +
> +#ifndef _DT_BINDINGS_RT4831_BACKLIGHT_H
> +#define _DT_BINDINGS_RT4831_BACKLIGHT_H
> +
> +#define RT4831_BLOVPLVL_17V 0
> +#define RT4831_BLOVPLVL_21V 1
> +#define RT4831_BLOVPLVL_25V 2
> +#define RT4831_BLOVPLVL_29V 3
> +
> +#define RT4831_BLED_CH1EN (1 << 0)
> +#define RT4831_BLED_CH2EN (1 << 1)
> +#define RT4831_BLED_CH3EN (1 << 2)
> +#define RT4831_BLED_CH4EN (1 << 3)
> +#define RT4831_BLED_ALLCHEN ((1 << 4) - 1)
> +
> +#endif /* _DT_BINDINGS_RT4831_BACKLIGHT_H */
> --
> 2.7.4
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/4] backlight: rt4831: Adds DT binding document for Richtek RT4831 backlight
2020-12-08 15:54 ` [PATCH v3 2/4] backlight: rt4831: Adds DT binding document for Richtek RT4831 backlight cy_huang
2020-12-10 15:14 ` Rob Herring
@ 2020-12-10 15:16 ` Rob Herring
1 sibling, 0 replies; 8+ messages in thread
From: Rob Herring @ 2020-12-10 15:16 UTC (permalink / raw)
To: cy_huang; +Cc: lee.jones, cy_huang, linux-kernel, devicetree
On Tue, Dec 08, 2020 at 11:54:44PM +0800, cy_huang wrote:
> From: ChiYuan Huang <cy_huang@richtek.com>
>
> Adds DT binding document for Richtek RT4831 backlight.
>
> Signed-off-by: ChiYuan Huang <cy_huang@richtek.com>
> ---
> since v3
> - Move inlcude/dt-bindings/leds/rt4831-backlight.h from patch 0004 to here.
> - Add dual license tag in header and backlight binding document.
> - Left backlight dt-binding example only.
> ---
> .../leds/backlight/richtek,rt4831-backlight.yaml | 76 ++++++++++++++++++++++
> include/dt-bindings/leds/rt4831-backlight.h | 23 +++++++
> 2 files changed, 99 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml
> create mode 100644 include/dt-bindings/leds/rt4831-backlight.h
>
> diff --git a/Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml b/Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml
> new file mode 100644
> index 00000000..f24c8d1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.yaml
> @@ -0,0 +1,76 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/leds/backlight/richtek,rt4831-backlight.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Richtek RT4831 Backlight
> +
> +maintainers:
> + - ChiYuan Huang <cy_huang@richtek.com>
> +
> +description: |
> + RT4831 is a mutifunctional device that can provide power to the LCD display
> + and LCD backlight.
> +
> + For the LCD backlight, it can provide four channel WLED driving capability.
> + Each channel driving current is up to 30mA
> +
> + Datasheet is available at
> + https://www.richtek.com/assets/product_file/RT4831A/DS4831A-05.pdf
> +
> +properties:
> + compatible:
> + const: richtek,rt4831-backlight
> +
> + default-brightness:
> + description: |
> + The default brightness that applied to the system on start-up.
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 2048
> +
> + max-brightness:
> + description: |
> + The max brightness for the H/W limit
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 0
> + maximum: 2048
> +
> + richtek,pwm-enable:
> + description: |
> + Specify the backlight dimming following by PWM duty or by SW control.
> + type: boolean
> +
> + richtek,bled-ovp-sel:
> + description: |
> + Backlight OVP level selection, currently support 17V/21V/25V/29V.
> + $ref: /schemas/types.yaml#/definitions/uint8
> + default: 1
> + minimum: 0
> + maximum: 3
> +
> + richtek,channel-use:
> + description: |
> + Backlight LED channel to be used.
> + BIT 0/1/2/3 is used to indicate led channel 1/2/3/4 enable or disable.
> + $ref: /schemas/types.yaml#/definitions/uint8
> + minimum: 1
> + maximum: 15
> +
> +required:
> + - compatible
> + - richtek,channel-use
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/leds/rt4831-backlight.h>
> + backlight {
> + compatible = "richtek,rt4831-backlight";
> + default-brightness = <1024>;
> + max-brightness = <2048>;
> + richtek,bled-ovp-sel = /bits/ 8 <RT4831_BLOVPLVL_21V>;
> + richtek,channel-use = /bits/ 8 <RT4831_BLED_ALLCHEN>;
> + };
Also, drop the example here and in the regulator schema as it's in the
mfd schema.
Rob
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 3/4] regulator: rt4831: Adds DT binding document for Richtek RT4831 DSV regulator
2020-12-08 15:54 ` [PATCH v3 3/4] regulator: rt4831: Adds DT binding document for Richtek RT4831 DSV regulator cy_huang
@ 2020-12-10 15:17 ` Rob Herring
2020-12-11 10:42 ` ChiYuan Huang
0 siblings, 1 reply; 8+ messages in thread
From: Rob Herring @ 2020-12-10 15:17 UTC (permalink / raw)
To: cy_huang; +Cc: lee.jones, cy_huang, linux-kernel, devicetree
On Tue, Dec 08, 2020 at 11:54:45PM +0800, cy_huang wrote:
> From: ChiYuan Huang <cy_huang@richtek.com>
>
> Adds DT binding document for Richtek RT4831 DSV regulator.
>
> Signed-off-by: ChiYuan Huang <cy_huang@richtek.com>
> ---
> since v3
> - Add dual license tag in regulator binding document.
> - Left regulator dt-binding example only.
> ---
> .../regulator/richtek,rt4831-regulator.yaml | 57 ++++++++++++++++++++++
> 1 file changed, 57 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml
>
> diff --git a/Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml b/Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml
> new file mode 100644
> index 00000000..c6741f2
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml
> @@ -0,0 +1,57 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/regulator/richtek,rt4831-regulator.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Richtek RT4831 Display Bias Voltage Regulator
> +
> +maintainers:
> + - ChiYuan Huang <cy_huang@richtek.com>
> +
> +description: |
> + RT4831 is a multifunctional device that can provide power to the LCD display
> + and LCD backlight.
> +
> + For Display Bias Voltage DSVP and DSVN, the output range is about 4V to 6.5V.
> + It is sufficient to meet the current LCD power requirement.
> +
> + DSVLCM is a boost regulator in IC internal as DSVP and DSVN input power.
> + Its voltage should be configured above 0.15V to 0.2V gap larger than the
> + voltage needed for DSVP and DSVN. Too much voltage gap could improve the
> + voltage drop from the heavy loading scenario. But it also make the power
> + efficiency worse. It's a trade-off.
> +
> + Datasheet is available at
> + https://www.richtek.com/assets/product_file/RT4831A/DS4831A-05.pdf
> +
> +patternProperties:
> + "^DSV(LCM|P|N)$":
> + type: object
> + $ref: regulator.yaml#
> + description:
> + Properties for single Display Bias Voltage regulator.
Just put this into the MFD schema directly if you don't have any custom
properties to add.
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + regulators {
> + DSVLCM {
> + regulator-min-microvolt = <4000000>;
> + regulator-max-microvolt = <7150000>;
> + regulator-allow-bypass;
> + };
> + DSVP {
> + regulator-name = "rt4831-dsvp";
> + regulator-min-microvolt = <4000000>;
> + regulator-max-microvolt = <6500000>;
> + regulator-boot-on;
> + };
> + DSVN {
> + regulator-name = "rt4831-dsvn";
> + regulator-min-microvolt = <4000000>;
> + regulator-max-microvolt = <6500000>;
> + regulator-boot-on;
> + };
> + };
> --
> 2.7.4
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 3/4] regulator: rt4831: Adds DT binding document for Richtek RT4831 DSV regulator
2020-12-10 15:17 ` Rob Herring
@ 2020-12-11 10:42 ` ChiYuan Huang
0 siblings, 0 replies; 8+ messages in thread
From: ChiYuan Huang @ 2020-12-11 10:42 UTC (permalink / raw)
To: Rob Herring
Cc: Lee Jones, cy_huang, lkml,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS
Rob Herring <robh@kernel.org> 於 2020年12月10日 週四 下午11:17寫道:
>
> On Tue, Dec 08, 2020 at 11:54:45PM +0800, cy_huang wrote:
> > From: ChiYuan Huang <cy_huang@richtek.com>
> >
> > Adds DT binding document for Richtek RT4831 DSV regulator.
> >
> > Signed-off-by: ChiYuan Huang <cy_huang@richtek.com>
> > ---
> > since v3
> > - Add dual license tag in regulator binding document.
> > - Left regulator dt-binding example only.
> > ---
> > .../regulator/richtek,rt4831-regulator.yaml | 57 ++++++++++++++++++++++
> > 1 file changed, 57 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml b/Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml
> > new file mode 100644
> > index 00000000..c6741f2
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/regulator/richtek,rt4831-regulator.yaml
> > @@ -0,0 +1,57 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/regulator/richtek,rt4831-regulator.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Richtek RT4831 Display Bias Voltage Regulator
> > +
> > +maintainers:
> > + - ChiYuan Huang <cy_huang@richtek.com>
> > +
> > +description: |
> > + RT4831 is a multifunctional device that can provide power to the LCD display
> > + and LCD backlight.
> > +
> > + For Display Bias Voltage DSVP and DSVN, the output range is about 4V to 6.5V.
> > + It is sufficient to meet the current LCD power requirement.
> > +
> > + DSVLCM is a boost regulator in IC internal as DSVP and DSVN input power.
> > + Its voltage should be configured above 0.15V to 0.2V gap larger than the
> > + voltage needed for DSVP and DSVN. Too much voltage gap could improve the
> > + voltage drop from the heavy loading scenario. But it also make the power
> > + efficiency worse. It's a trade-off.
> > +
> > + Datasheet is available at
> > + https://www.richtek.com/assets/product_file/RT4831A/DS4831A-05.pdf
> > +
> > +patternProperties:
> > + "^DSV(LCM|P|N)$":
> > + type: object
> > + $ref: regulator.yaml#
> > + description:
> > + Properties for single Display Bias Voltage regulator.
>
> Just put this into the MFD schema directly if you don't have any custom
> properties to add.
>
OK, I'll directly remove rt4831 regulator dt-binding and put the
descriptions into mfd binding.
Ack in next series of patch.
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + regulators {
> > + DSVLCM {
> > + regulator-min-microvolt = <4000000>;
> > + regulator-max-microvolt = <7150000>;
> > + regulator-allow-bypass;
> > + };
> > + DSVP {
> > + regulator-name = "rt4831-dsvp";
> > + regulator-min-microvolt = <4000000>;
> > + regulator-max-microvolt = <6500000>;
> > + regulator-boot-on;
> > + };
> > + DSVN {
> > + regulator-name = "rt4831-dsvn";
> > + regulator-min-microvolt = <4000000>;
> > + regulator-max-microvolt = <6500000>;
> > + regulator-boot-on;
> > + };
> > + };
> > --
> > 2.7.4
> >
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-12-11 10:44 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-08 15:54 [PATCH v3 1/4] mfd: rt4831: Adds support for Richtek RT4831 MFD core cy_huang
2020-12-08 15:54 ` [PATCH v3 2/4] backlight: rt4831: Adds DT binding document for Richtek RT4831 backlight cy_huang
2020-12-10 15:14 ` Rob Herring
2020-12-10 15:16 ` Rob Herring
2020-12-08 15:54 ` [PATCH v3 3/4] regulator: rt4831: Adds DT binding document for Richtek RT4831 DSV regulator cy_huang
2020-12-10 15:17 ` Rob Herring
2020-12-11 10:42 ` ChiYuan Huang
2020-12-08 15:54 ` [PATCH v3 4/4] mfd: rt4831: Adds DT binding document for Richtek RT4831 MFD core cy_huang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).