Add the EPD PMIC for the e70k02 based devices as a step towards full EPD
support.
Signed-off-by: Andreas Kemnade <akemnade@kernel.org>
---
arch/arm/boot/dts/nxp/imx/e70k02.dtsi | 25 +++++++++++++++++++++-
.../arm/boot/dts/nxp/imx/imx6sl-tolino-vision5.dts | 24 +++++++++++++++++++++
.../arm/boot/dts/nxp/imx/imx6sll-kobo-librah2o.dts | 24 +++++++++++++++++++++
3 files changed, 72 insertions(+), 1 deletion(-)
diff --git a/arch/arm/boot/dts/nxp/imx/e70k02.dtsi b/arch/arm/boot/dts/nxp/imx/e70k02.dtsi
index dcc3c9d488a88..5f6b7545a0c0c 100644
--- a/arch/arm/boot/dts/nxp/imx/e70k02.dtsi
+++ b/arch/arm/boot/dts/nxp/imx/e70k02.dtsi
@@ -69,6 +69,14 @@ memory@80000000 {
reg = <0x80000000 0x20000000>;
};
+ epd_pmic_supply: regulator-epd-pmic-in {
+ compatible = "regulator-fixed";
+ regulator-name = "epd_pmic_supply";
+ gpio = <&gpio2 14 GPIO_ACTIVE_HIGH>;
+ startup-delay-us = <20000>;
+ enable-active-high;
+ };
+
reg_wifi: regulator-wifi {
compatible = "regulator-fixed";
regulator-name = "SD3_SPWR";
@@ -133,7 +141,22 @@ touchscreen@24 {
vdd-supply = <&ldo5_reg>;
};
- /* TODO: SY7636 PMIC for E Ink at 0x62 */
+ sy7636: pmic@62 {
+ compatible = "silergy,sy7636a";
+ reg = <0x62>;
+ en-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
+ vcom-en-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+ epd-pwr-good-gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>;
+ vin-supply = <&epd_pmic_supply>;
+
+ #thermal-sensor-cells = <0>;
+
+ regulators {
+ reg_epdpmic: vcom {
+ regulator-name = "vcom";
+ };
+ };
+ };
};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6sl-tolino-vision5.dts b/arch/arm/boot/dts/nxp/imx/imx6sl-tolino-vision5.dts
index a2534c422a522..f8709a9524093 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6sl-tolino-vision5.dts
+++ b/arch/arm/boot/dts/nxp/imx/imx6sl-tolino-vision5.dts
@@ -26,6 +26,11 @@ / {
compatible = "kobo,tolino-vision5", "fsl,imx6sl";
};
+&epd_pmic_supply {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_epd_pmic_supply>;
+};
+
&gpio_keys {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_keys>;
@@ -59,6 +64,12 @@ MX6SL_PAD_FEC_RXD1__GPIO4_IO18 0x10059 /* TP_RST */
>;
};
+ pinctrl_epd_pmic_supply: epd-pmic-supplygrp {
+ fsl,pins = <
+ MX6SL_PAD_EPDC_PWRWAKEUP__GPIO2_IO14 0x40010059
+ >;
+ };
+
pinctrl_gpio_keys: gpio-keysgrp {
fsl,pins = <
MX6SL_PAD_FEC_CRS_DV__GPIO4_IO25 0x17059 /* PWR_SW */
@@ -159,6 +170,14 @@ MX6SL_PAD_KEY_COL2__GPIO3_IO28 0x1b8b1 /* ricoh619 bat_low_int */
>;
};
+ pinctrl_sy7636_gpio: sy7636-gpiogrp {
+ fsl,pins = <
+ MX6SL_PAD_EPDC_VCOM0__GPIO2_IO03 0x40010059 /* VCOM_CTRL */
+ MX6SL_PAD_EPDC_PWRCTRL1__GPIO2_IO08 0x40010059 /* EN */
+ MX6SL_PAD_EPDC_PWRSTAT__GPIO2_IO13 0x17059 /* PWR_GOOD */
+ >;
+ };
+
pinctrl_uart1: uart1grp {
fsl,pins = <
MX6SL_PAD_UART1_TXD__UART1_TX_DATA 0x1b0b1
@@ -329,6 +348,11 @@ &ricoh619 {
pinctrl-0 = <&pinctrl_ricoh_gpio>;
};
+&sy7636 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_sy7636_gpio>;
+};
+
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
diff --git a/arch/arm/boot/dts/nxp/imx/imx6sll-kobo-librah2o.dts b/arch/arm/boot/dts/nxp/imx/imx6sll-kobo-librah2o.dts
index 660620d226f71..19bbe60331b36 100644
--- a/arch/arm/boot/dts/nxp/imx/imx6sll-kobo-librah2o.dts
+++ b/arch/arm/boot/dts/nxp/imx/imx6sll-kobo-librah2o.dts
@@ -36,6 +36,11 @@ &cpu0 {
soc-supply = <&dcdc1_reg>;
};
+&epd_pmic_supply {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_epd_pmic_supply>;
+};
+
&gpio_keys {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_gpio_keys>;
@@ -69,6 +74,12 @@ MX6SLL_PAD_GPIO4_IO18__GPIO4_IO18 0x10059 /* TP_RST */
>;
};
+ pinctrl_epd_pmic_supply: epd-pmic-supplygrp {
+ fsl,pins = <
+ MX6SLL_PAD_EPDC_PWR_WAKE__GPIO2_IO14 0x40010059
+ >;
+ };
+
pinctrl_gpio_keys: gpio-keysgrp {
fsl,pins = <
MX6SLL_PAD_GPIO4_IO25__GPIO4_IO25 0x17059 /* PWR_SW */
@@ -169,6 +180,14 @@ MX6SLL_PAD_KEY_COL2__GPIO3_IO28 0x1b8b1 /* ricoh619 bat_low_int */
>;
};
+ pinctrl_sy7636_gpio: sy7636-gpiogrp {
+ fsl,pins = <
+ MX6SLL_PAD_EPDC_VCOM0__GPIO2_IO03 0x40010059 /* VCOM_CTRL */
+ MX6SLL_PAD_EPDC_PWR_CTRL1__GPIO2_IO08 0x40010059 /* EN */
+ MX6SLL_PAD_EPDC_PWR_STAT__GPIO2_IO13 0x17059 /* PWR_GOOD */
+ >;
+ };
+
pinctrl_uart1: uart1grp {
fsl,pins = <
MX6SLL_PAD_UART1_TXD__UART1_DCE_TX 0x1b0b1
@@ -319,6 +338,11 @@ &ricoh619 {
pinctrl-0 = <&pinctrl_ricoh_gpio>;
};
+&sy7636 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_sy7636_gpio>;
+};
+
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
--
2.39.5
On Sat, 6 Sep 2025, at 7:09 PM, Andreas Kemnade wrote: > Add the EPD PMIC for the e70k02 based devices as a step towards full EPD > support. > > Signed-off-by: Andreas Kemnade <akemnade@kernel.org> Acked-by: Alistair Francis <alistair@alistair23.me> Alistair > --- > arch/arm/boot/dts/nxp/imx/e70k02.dtsi | 25 +++++++++++++++++++++- > .../arm/boot/dts/nxp/imx/imx6sl-tolino-vision5.dts | 24 +++++++++++++++++++++ > .../arm/boot/dts/nxp/imx/imx6sll-kobo-librah2o.dts | 24 +++++++++++++++++++++ > 3 files changed, 72 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/boot/dts/nxp/imx/e70k02.dtsi b/arch/arm/boot/dts/nxp/imx/e70k02.dtsi > index dcc3c9d488a88..5f6b7545a0c0c 100644 > --- a/arch/arm/boot/dts/nxp/imx/e70k02.dtsi > +++ b/arch/arm/boot/dts/nxp/imx/e70k02.dtsi > @@ -69,6 +69,14 @@ memory@80000000 { > reg = <0x80000000 0x20000000>; > }; > > + epd_pmic_supply: regulator-epd-pmic-in { > + compatible = "regulator-fixed"; > + regulator-name = "epd_pmic_supply"; > + gpio = <&gpio2 14 GPIO_ACTIVE_HIGH>; > + startup-delay-us = <20000>; > + enable-active-high; > + }; > + > reg_wifi: regulator-wifi { > compatible = "regulator-fixed"; > regulator-name = "SD3_SPWR"; > @@ -133,7 +141,22 @@ touchscreen@24 { > vdd-supply = <&ldo5_reg>; > }; > > - /* TODO: SY7636 PMIC for E Ink at 0x62 */ > + sy7636: pmic@62 { > + compatible = "silergy,sy7636a"; > + reg = <0x62>; > + en-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; > + vcom-en-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>; > + epd-pwr-good-gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>; > + vin-supply = <&epd_pmic_supply>; > + > + #thermal-sensor-cells = <0>; > + > + regulators { > + reg_epdpmic: vcom { > + regulator-name = "vcom"; > + }; > + }; > + }; > > }; > > diff --git a/arch/arm/boot/dts/nxp/imx/imx6sl-tolino-vision5.dts b/arch/arm/boot/dts/nxp/imx/imx6sl-tolino-vision5.dts > index a2534c422a522..f8709a9524093 100644 > --- a/arch/arm/boot/dts/nxp/imx/imx6sl-tolino-vision5.dts > +++ b/arch/arm/boot/dts/nxp/imx/imx6sl-tolino-vision5.dts > @@ -26,6 +26,11 @@ / { > compatible = "kobo,tolino-vision5", "fsl,imx6sl"; > }; > > +&epd_pmic_supply { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_epd_pmic_supply>; > +}; > + > &gpio_keys { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_gpio_keys>; > @@ -59,6 +64,12 @@ MX6SL_PAD_FEC_RXD1__GPIO4_IO18 0x10059 /* TP_RST */ > >; > }; > > + pinctrl_epd_pmic_supply: epd-pmic-supplygrp { > + fsl,pins = < > + MX6SL_PAD_EPDC_PWRWAKEUP__GPIO2_IO14 0x40010059 > + >; > + }; > + > pinctrl_gpio_keys: gpio-keysgrp { > fsl,pins = < > MX6SL_PAD_FEC_CRS_DV__GPIO4_IO25 0x17059 /* PWR_SW */ > @@ -159,6 +170,14 @@ MX6SL_PAD_KEY_COL2__GPIO3_IO28 0x1b8b1 /* ricoh619 bat_low_int */ > >; > }; > > + pinctrl_sy7636_gpio: sy7636-gpiogrp { > + fsl,pins = < > + MX6SL_PAD_EPDC_VCOM0__GPIO2_IO03 0x40010059 /* VCOM_CTRL */ > + MX6SL_PAD_EPDC_PWRCTRL1__GPIO2_IO08 0x40010059 /* EN */ > + MX6SL_PAD_EPDC_PWRSTAT__GPIO2_IO13 0x17059 /* PWR_GOOD */ > + >; > + }; > + > pinctrl_uart1: uart1grp { > fsl,pins = < > MX6SL_PAD_UART1_TXD__UART1_TX_DATA 0x1b0b1 > @@ -329,6 +348,11 @@ &ricoh619 { > pinctrl-0 = <&pinctrl_ricoh_gpio>; > }; > > +&sy7636 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_sy7636_gpio>; > +}; > + > &uart1 { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_uart1>; > diff --git a/arch/arm/boot/dts/nxp/imx/imx6sll-kobo-librah2o.dts b/arch/arm/boot/dts/nxp/imx/imx6sll-kobo-librah2o.dts > index 660620d226f71..19bbe60331b36 100644 > --- a/arch/arm/boot/dts/nxp/imx/imx6sll-kobo-librah2o.dts > +++ b/arch/arm/boot/dts/nxp/imx/imx6sll-kobo-librah2o.dts > @@ -36,6 +36,11 @@ &cpu0 { > soc-supply = <&dcdc1_reg>; > }; > > +&epd_pmic_supply { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_epd_pmic_supply>; > +}; > + > &gpio_keys { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_gpio_keys>; > @@ -69,6 +74,12 @@ MX6SLL_PAD_GPIO4_IO18__GPIO4_IO18 0x10059 /* TP_RST */ > >; > }; > > + pinctrl_epd_pmic_supply: epd-pmic-supplygrp { > + fsl,pins = < > + MX6SLL_PAD_EPDC_PWR_WAKE__GPIO2_IO14 0x40010059 > + >; > + }; > + > pinctrl_gpio_keys: gpio-keysgrp { > fsl,pins = < > MX6SLL_PAD_GPIO4_IO25__GPIO4_IO25 0x17059 /* PWR_SW */ > @@ -169,6 +180,14 @@ MX6SLL_PAD_KEY_COL2__GPIO3_IO28 0x1b8b1 /* ricoh619 bat_low_int */ > >; > }; > > + pinctrl_sy7636_gpio: sy7636-gpiogrp { > + fsl,pins = < > + MX6SLL_PAD_EPDC_VCOM0__GPIO2_IO03 0x40010059 /* VCOM_CTRL */ > + MX6SLL_PAD_EPDC_PWR_CTRL1__GPIO2_IO08 0x40010059 /* EN */ > + MX6SLL_PAD_EPDC_PWR_STAT__GPIO2_IO13 0x17059 /* PWR_GOOD */ > + >; > + }; > + > pinctrl_uart1: uart1grp { > fsl,pins = < > MX6SLL_PAD_UART1_TXD__UART1_DCE_TX 0x1b0b1 > @@ -319,6 +338,11 @@ &ricoh619 { > pinctrl-0 = <&pinctrl_ricoh_gpio>; > }; > > +&sy7636 { > + pinctrl-names = "default"; > + pinctrl-0 = <&pinctrl_sy7636_gpio>; > +}; > + > &uart1 { > pinctrl-names = "default"; > pinctrl-0 = <&pinctrl_uart1>; > > -- > 2.39.5 > >
© 2016 - 2025 Red Hat, Inc.