/*
 * Copyright (c) 2023 ITE Corporation. All Rights Reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <ite/it8xxx2.dtsi>

/ {
	soc {
		gpiogcr: gpio-gcr@f01600 {
			compatible = "ite,it8xxx2-gpiogcr";
			reg = <0x00f01600 0x100>;
		};

		gpioksi: gpiokscan@f01d07 {
			compatible = "ite,it8xxx2-gpiokscan";
			reg = <0x00f01d07 1
			       0x00f01d06 1
			       0x00f01d08 1
			       0x00f01d09 1
			       0x00f01d26 1>;
			reg-names = "goen", "gctrl", "gdat", "gdmr", "gpod";
			ngpios = <8>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpioksoh: gpiokscan@f01d0b {
			compatible = "ite,it8xxx2-gpiokscan";
			reg = <0x00f01d0b 1
			       0x00f01d0a 1
			       0x00f01d01 1
			       0x00f01d0c 1
			       0x00f01d27 1>;
			reg-names = "goen", "gctrl", "gdat", "gdmr", "gpod";
			ngpios = <8>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		gpioksol: gpiokscan@f01d0e {
			compatible = "ite,it8xxx2-gpiokscan";
			reg = <0x00f01d0e 1
			       0x00f01d0d 1
			       0x00f01d00 1
			       0x00f01d0f 1
			       0x00f01d28 1>;
			reg-names = "goen", "gctrl", "gdat", "gdmr", "gpod";
			ngpios = <8>;
			gpio-controller;
			#gpio-cells = <2>;
		};

		pinctrl: pin-controller {
			compatible = "ite,it8xxx2-pinctrl";
			#address-cells = <1>;
			#size-cells = <1>;
			status = "okay";
		};

		pinctrla: pinctrl@f01610 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01610 8>;   /* GPCR */
			func3-gcr =     <NO_FUNC  NO_FUNC  NO_FUNC  NO_FUNC
					 0xf02032 0xf02032 0xf016f0 0xf016f0>;
			func3-en-mask = <0        0        0        0
					 0x02     0x02     0x10     0x0C    >;
			func4-gcr =     <NO_FUNC  NO_FUNC  NO_FUNC  NO_FUNC
					 NO_FUNC  NO_FUNC  NO_FUNC  NO_FUNC >;
			func4-en-mask = <0        0        0        0
					 0        0        0        0       >;
			volt-sel =      <NO_FUNC  NO_FUNC  NO_FUNC  NO_FUNC
					 0xf016e9 0xf016e9 0xf016e9 0xf016e9>;
			volt-sel-mask = <0        0        0        0
					 0x1      0x02     0x20     0x40    >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrlb: pinctrl@f01618 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01618 8>;   /* GPCR */
			func3-gcr =     <0xf016f5 0xf016f5 NO_FUNC NO_FUNC
					 NO_FUNC  NO_FUNC  NO_FUNC 0xf01600>;
			func3-en-mask = <0x01     0x02     0       0
					 0        0        0       0x02    >;
			func4-gcr =     <NO_FUNC  NO_FUNC  NO_FUNC NO_FUNC
					 NO_FUNC  NO_FUNC  NO_FUNC 0xf016f1>;
			func4-en-mask = <0        0        0       0
					 0        0        0       0x40    >;
			volt-sel =      <NO_FUNC  NO_FUNC  NO_FUNC  0xf016e7
					 0xf016e7 0xf016e4 0xf016e4 0xf016e9>;
			volt-sel-mask = <0        0        0        0x02
					 0x01     0x80     0x40     0x10    >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrlc: pinctrl@f01620 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01620 8>;   /* GPCR */
			func3-gcr =     <NO_FUNC NO_FUNC  NO_FUNC 0xf016f0
					 NO_FUNC 0xf016f0 NO_FUNC 0xf016f3>;
			func3-en-mask = <0       0        0       0x10
					 0       0x10     0       0x02    >;
			func4-gcr =     <NO_FUNC NO_FUNC  NO_FUNC NO_FUNC
					 NO_FUNC NO_FUNC  NO_FUNC 0xf016f6>;
			func4-en-mask = <0       0        0       0
					 0       0        0       0x80    >;
			volt-sel =      <0xf016e7 0xf016e4 0xf016e4 NO_FUNC
					 0xf016e9 NO_FUNC  0xf016e9 0xf016e4>;
			volt-sel-mask = <0x80     0x20     0x10     0
					 0x04     0        0x08     0x08    >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrld: pinctrl@f01628 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01628 8>;   /* GPCR */
			func3-gcr =     <NO_FUNC NO_FUNC  NO_FUNC NO_FUNC
					 NO_FUNC 0xf016f0 NO_FUNC NO_FUNC>;
			func3-en-mask = <0       0        0       0
					 0       0x02     0       0      >;
			func4-gcr =     <NO_FUNC NO_FUNC  NO_FUNC NO_FUNC
					 NO_FUNC NO_FUNC  NO_FUNC NO_FUNC>;
			func4-en-mask = <0       0        0       0
					 0       0        0       0      >;
			volt-sel =      <0xf016e4 0xf016e4 0xf016e4 0xf016e5
					 0xf016e5 0xf016e7 0xf016e7 0xf016e7>;
			volt-sel-mask = <0x04     0x02     0x01     0x80
					 0x40     0x10     0x20     0x40    >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrle: pinctrl@f01630 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01630 8>;   /* GPCR */
			func3-gcr =     <0xf02032 NO_FUNC  NO_FUNC NO_FUNC
					 NO_FUNC  0xf016f0 NO_FUNC 0xf02032>;
			func3-en-mask = <0x01     0        0       0
					 0        0x08     0       0x01    >;
			func4-gcr =     <0xf016f3 NO_FUNC  NO_FUNC NO_FUNC
					 NO_FUNC  NO_FUNC  NO_FUNC NO_FUNC >;
			func4-en-mask = <0x01     0        0       0
					 0        0        0       0       >;
			volt-sel =      <0xf016e5 0xf016d4 0xf016d4 NO_FUNC
					 0xf016e7 0xf016e7 0xf016e5 0xf016e5>;
			volt-sel-mask = <0x20     0x40     0x80     0
					 0x04     0x08     0x10     0x08    >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrlf: pinctrl@f01638 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01638 8>;   /* GPCR */
			func3-gcr =     <NO_FUNC NO_FUNC 0xf016f0 0xf016f0
					 NO_FUNC NO_FUNC 0xf016f1 0xf016f1>;
			func3-en-mask = <0       0       0x02     0x02
					 0       0       0x10     0x10    >;
			func4-gcr =     <NO_FUNC NO_FUNC 0xf02046 0xf02046
					 NO_FUNC NO_FUNC NO_FUNC  NO_FUNC >;
			func4-en-mask = <0       0       0x40     0x40
					 0       0       0        0       >;
			volt-sel =      <0xf016d4 0xf016d4 0xf016e5 0xf016e5
					 0xf016e5 0xf016e6 0xf016e6 0xf016e6>;
			volt-sel-mask = <0x10     0x20     0x04     0x02
					 0x01     0x80     0x40     0x20    >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrlg: pinctrl@f01640 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01640 8>;   /* GPCR */
			func3-gcr =     <0xf016f0 0xf016f0 0xf016f0 NO_FUNC
					 NO_FUNC  NO_FUNC  0xf016f0 NO_FUNC>;
			func3-en-mask = <0x20     0x08     0x10     0
					 0        0        0x02     0      >;
			func4-gcr =     <NO_FUNC  NO_FUNC  NO_FUNC  NO_FUNC
					 NO_FUNC  NO_FUNC  NO_FUNC  NO_FUNC>;
			func4-en-mask = <0        0        0        0
					 0        0        0        0      >;
			volt-sel =      <0xf016d4 0xf016e6 0xf016d4 NO_FUNC
					 NO_FUNC  NO_FUNC  0xf016e6 NO_FUNC>;
			volt-sel-mask = <0x04     0x10    0x08     0
					 0        0       0x08     0       >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrlh: pinctrl@f01648 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01648 8>;   /* GPCR */
			func3-gcr =     <NO_FUNC 0xf016f1 0xf016f1 NO_FUNC
					 NO_FUNC 0xf016f5 0xf016f5 NO_FUNC>;
			func3-en-mask = <0       0x20     0x20     0
					 0       0x04     0x08     0      >;
			func3-ext =     <NO_FUNC NO_FUNC  NO_FUNC  NO_FUNC
					 NO_FUNC 0xf03a23 0xf03a23 NO_FUNC>;
			func3-ext-mask = <0      0        0        0
					  0      0x01     0x01     0      >;
			func4-gcr =     <NO_FUNC 0xf016f5 0xf016f5 NO_FUNC
					 NO_FUNC NO_FUNC  NO_FUNC  NO_FUNC>;
			func4-en-mask = <0       0x04     0x08     0
					 0       0        0        0      >;
			volt-sel =      <0xf016e6 0xf016e6 0xf016e6 NO_FUNC
					 NO_FUNC  0xf016d3 0xf016d4 NO_FUNC>;
			volt-sel-mask = <0x04     0x02     0x01     0
					 0        0x80     0x01     0      >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrli: pinctrl@f01650 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01650 8>;   /* GPCR */
			func3-gcr =     <NO_FUNC NO_FUNC  NO_FUNC  NO_FUNC
					 NO_FUNC 0xf016f0 0xf016f0 0xf016f0>;
			func3-en-mask = <0       0        0        0
					 0       0x08     0x08     0x08    >;
			func4-gcr =     <NO_FUNC NO_FUNC  NO_FUNC  NO_FUNC
					 NO_FUNC NO_FUNC  NO_FUNC  NO_FUNC >;
			func4-en-mask = <0       0        0        0
					 0       0        0        0       >;
			volt-sel =      <0xf016d3 0xf016e8 0xf016e8 0xf016e8
					 0xf016e8 0xf016d3 0xf016d3 0xf016d3>;
			volt-sel-mask = <0x08     0x10     0x20     0x40
					 0x80     0x10     0x20     0x40    >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrlj: pinctrl@f01658 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01658 8>;   /* GPCR */
			func3-gcr =     <0xf016f4 NO_FUNC  0xf016f4 0xf016f4
					 0xf016f0 0xf016f0 NO_FUNC  NO_FUNC>;
			func3-en-mask = <0x01     0        0x01     0x02
					 0x02     0x03     0        0      >;
			func4-gcr =     <NO_FUNC  NO_FUNC  NO_FUNC  NO_FUNC
					 NO_FUNC  NO_FUNC  NO_FUNC  NO_FUNC>;
			func4-en-mask = <0        0        0        0
					 0        0        0        0      >;
			volt-sel =      <0xf016e8 0xf016e8 0xf016e8 0xf016e8
					 0xf016d3 0xf016d3 0xf016d3 0xf016d7>;
			volt-sel-mask = <0x01     0x02     0x04     0x08
					 0x01     0x02     0x04     0x04    >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrlk: pinctrl@f01690 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01690 8>;   /* GPCR */
			func3-gcr =     <NO_FUNC NO_FUNC NO_FUNC NO_FUNC
					 NO_FUNC NO_FUNC NO_FUNC NO_FUNC>;
			func3-en-mask = <0       0       0       0
					 0       0       0       0      >;
			func4-gcr =     <NO_FUNC NO_FUNC NO_FUNC NO_FUNC
					 NO_FUNC NO_FUNC NO_FUNC NO_FUNC>;
			func4-en-mask = <0       0       0       0
					 0       0       0       0      >;
			volt-sel =      <0xf016d2 0xf016d2 0xf016d2 0xf016d2
					 0xf016d2 0xf016d2 0xf016d2 0xf016d2>;
			volt-sel-mask = <0x01     0x02     0x04     0x08
					 0x10     0x20     0x40     0x80    >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrll: pinctrl@f01698 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01698 8>;   /* GPCR */
			func3-gcr =     <NO_FUNC NO_FUNC NO_FUNC NO_FUNC
					 NO_FUNC NO_FUNC NO_FUNC NO_FUNC>;
			func3-en-mask = <0       0       0       0
					 0       0       0       0      >;
			func4-gcr =     <NO_FUNC NO_FUNC NO_FUNC NO_FUNC
					 NO_FUNC NO_FUNC NO_FUNC NO_FUNC>;
			func4-en-mask = <0       0       0       0
					 0       0       0       0      >;
			volt-sel =      <0xf016d1 0xf016d1 0xf016d1 0xf016d1
					 0xf016d1 0xf016d1 0xf016d1 0xf016d1>;
			volt-sel-mask = <0x01     0x02     0x04     0x08
					 0x10     0x20     0x40     0x80    >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrlm: pinctrl@f016a0 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f016a0 8>;   /* GPCR */
			func3-gcr =     <NO_FUNC NO_FUNC NO_FUNC NO_FUNC
					 NO_FUNC NO_FUNC NO_FUNC NO_FUNC>;
			func3-en-mask = <0       0       0       0
					 0       0       0       0      >;
			func4-gcr =     <NO_FUNC NO_FUNC NO_FUNC NO_FUNC
					 NO_FUNC NO_FUNC NO_FUNC NO_FUNC>;
			func4-en-mask = <0       0       0       0
					 0       0       0       0      >;
			volt-sel =      <0xf016ed 0xf016ed 0xf016ed 0xf016ed
					 0xf016ed 0xf016ed 0xf016ed NO_FUNC >;
			volt-sel-mask = <0x10     0x10     0x10     0x10
					 0x10     0x10     0x10     0       >;
			#pinmux-cells = <2>;
			gpio-group;
		};

		pinctrlksi: pinctrl@f01d06 {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01d06 1   /* KSIGCTRL */
			       0x00f01d05 1>; /* KSICTRL */
			pp-od-mask = <NO_FUNC>;
			pullup-mask = <BIT(2)>;
			#pinmux-cells = <2>;
		};

		pinctrlksoh: pinctrl@f01d0a {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01d0a 1   /* KSOHGCTRL */
			       0x00f01d02 1>; /* KSOCTRL */
			pp-od-mask = <BIT(0)>;
			pullup-mask = <BIT(2)>;
			#pinmux-cells = <2>;
		};

		pinctrlksol: pinctrl@f01d0d {
			compatible = "ite,it8xxx2-pinctrl-func";
			reg = <0x00f01d0d 1   /* KSOLGCTRL */
			       0x00f01d02 1>; /* KSOCTRL */
			pp-od-mask = <BIT(0)>;
			pullup-mask = <BIT(2)>;
			#pinmux-cells = <2>;
		};

		i2c0: i2c@f01c40 {
			compatible = "ite,it8xxx2-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00f01c40 0x0040   /* Base address */
			       0x00f01c0d 0x0001>; /* MSTFCTRL1 */
			interrupts = <IT8XXX2_IRQ_SMB_A IRQ_TYPE_LEVEL_HIGH>;
			interrupt-parent = <&intc>;
			status = "disabled";
			port-num = <SMB_CHANNEL_A>;
			channel-switch-sel = <I2C_CHA_LOCATE>;
			scl-gpios = <&gpiob 3 0>;
			sda-gpios = <&gpiob 4 0>;
			clock-gate-offset = <CGC_OFFSET_SMBA>;
			fifo-enable;   /* FIFO1 */
		};

		i2c1: i2c@f01c80 {
			compatible = "ite,it8xxx2-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00f01c80 0x0040   /* Base address */
			       0x00f01c0f 0x0001>; /* MSTFCTRL2 */
			interrupts = <IT8XXX2_IRQ_SMB_B IRQ_TYPE_LEVEL_HIGH>;
			interrupt-parent = <&intc>;
			status = "disabled";
			port-num = <SMB_CHANNEL_B>;
			channel-switch-sel = <I2C_CHB_LOCATE>;
			scl-gpios = <&gpioc 1 0>;
			sda-gpios = <&gpioc 2 0>;
			clock-gate-offset = <CGC_OFFSET_SMBB>;
			fifo-enable;   /* FIFO2 */
		};

		i2c2: i2c@f01cc0 {
			compatible = "ite,it8xxx2-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00f01cc0 0x0040   /* Base address */
			       0x00f01c0f 0x0001>; /* MSTFCTRL2 */
			interrupts = <IT8XXX2_IRQ_SMB_C IRQ_TYPE_LEVEL_HIGH>;
			interrupt-parent = <&intc>;
			status = "disabled";
			port-num = <SMB_CHANNEL_C>;
			channel-switch-sel = <I2C_CHC_LOCATE>;
			scl-gpios = <&gpiof 6 0>;
			sda-gpios = <&gpiof 7 0>;
			clock-gate-offset = <CGC_OFFSET_SMBC>;
			/delete-property/ fifo-enable;   /* FIFO2 */
		};

		i2c3: i2c@f03680 {
			compatible = "ite,enhance-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00f03680 0x0080>;
			interrupts = <IT8XXX2_IRQ_SMB_D IRQ_TYPE_LEVEL_HIGH>;
			interrupt-parent = <&intc>;
			status = "disabled";
			port-num = <I2C_CHANNEL_D>;
			channel-switch-sel = <I2C_CHD_LOCATE>;
			scl-gpios = <&gpioh 1 0>;
			sda-gpios = <&gpioh 2 0>;
			clock-gate-offset = <CGC_OFFSET_SMBD>;
		};

		i2c4: i2c@f03500 {
			compatible = "ite,enhance-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00f03500 0x0080>;
			interrupts = <IT8XXX2_IRQ_SMB_E IRQ_TYPE_LEVEL_HIGH>;
			interrupt-parent = <&intc>;
			status = "disabled";
			port-num = <I2C_CHANNEL_E>;
			channel-switch-sel = <I2C_CHE_LOCATE>;
			scl-gpios = <&gpioe 0 0>;
			sda-gpios = <&gpioe 7 0>;
			clock-gate-offset = <CGC_OFFSET_SMBE>;
		};

		i2c5: i2c@f03580 {
			compatible = "ite,enhance-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00f03580 0x0080>;
			interrupts = <IT8XXX2_IRQ_SMB_F IRQ_TYPE_LEVEL_HIGH>;
			interrupt-parent = <&intc>;
			status = "disabled";
			port-num = <I2C_CHANNEL_F>;
			channel-switch-sel = <I2C_CHF_LOCATE>;
			scl-gpios = <&gpioa 4 0>;
			sda-gpios = <&gpioa 5 0>;
			clock-gate-offset = <CGC_OFFSET_SMBF>;
		};

		wuc1: wakeup-controller@f01b00 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b00 1   /* WUEMR1 */
			       0x00f01b04 1   /* WUESR1 */
			       0x00f01b08 1   /* WUENR1 */
			       0x00f01b3c 1>; /* WUBEMR1 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc2: wakeup-controller@f01b01 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b01             1   /* WUEMR2 */
			       0x00f01b05             1   /* WUESR2 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR2 */
			       0x00f01b3d             1>; /* WUBEMR2 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc3: wakeup-controller@f01b02 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b02 1   /* WUEMR3 */
			       0x00f01b06 1   /* WUESR3 */
			       0x00f01b0a 1   /* WUENR3 */
			       0x00f01b3e 1>; /* WUBEMR3 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc4: wakeup-controller@f01b03 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b03 1   /* WUEMR4 */
			       0x00f01b07 1   /* WUESR4 */
			       0x00f01b0b 1   /* WUENR4 */
			       0x00f01b3f 1>; /* WUBEMR4 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc5: wakeup-controller@f01b0c {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b0c             1   /* WUEMR5 */
			       0x00f01b0d             1   /* WUESR5 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR5 */
			       0x00f01b0f             1>; /* WUBEMR5 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc6: wakeup-controller@f01b10 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b10             1   /* WUEMR6 */
			       0x00f01b11             1   /* WUESR6 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR6 */
			       0x00f01b13             1>; /* WUBEMR6 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc7: wakeup-controller@f01b14 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b14             1   /* WUEMR7 */
			       0x00f01b15             1   /* WUESR7 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR7 */
			       0x00f01b17             1>; /* WUBEMR7 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc8: wakeup-controller@f01b18 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b18             1   /* WUEMR8 */
			       0x00f01b19             1   /* WUESR8 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR8 */
			       0x00f01b1b             1>; /* WUBEMR8 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc9: wakeup-controller@f01b1c {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b1c             1   /* WUEMR9 */
			       0x00f01b1d             1   /* WUESR9 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR9 */
			       0x00f01b1f             1>; /* WUBEMR9 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc10: wakeup-controller@f01b20 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b20             1   /* WUEMR10 */
			       0x00f01b21             1   /* WUESR10 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR10 */
			       0x00f01b23             1>; /* WUBEMR10 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc11: wakeup-controller@f01b24 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b24             1   /* WUEMR11 */
			       0x00f01b25             1   /* WUESR11 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR11 */
			       0x00f01b27             1>; /* WUBEMR11 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc12: wakeup-controller@f01b28 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b28             1   /* WUEMR12 */
			       0x00f01b29             1   /* WUESR12 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR12 */
			       0x00f01b2b             1>; /* WUBEMR12 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc13: wakeup-controller@f01b2c {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b2c             1   /* WUEMR13 */
			       0x00f01b2d             1   /* WUESR13 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR13 */
			       0x00f01b2f             1>; /* WUBEMR13 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc14: wakeup-controller@f01b30 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b30             1   /* WUEMR14 */
			       0x00f01b31             1   /* WUESR14 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR14 */
			       0x00f01b33             1>; /* WUBEMR14 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc15: wakeup-controller@f01b34 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b34             1   /* WUEMR15 */
			       0x00f01b35             1   /* WUESR15 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR15 */
			       0x00f01b37             1>; /* WUBEMR15 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		wuc16: wakeup-controller@f01b38 {
			compatible = "ite,it8xxx2-wuc";
			reg = <0x00f01b38             1   /* WUEMR16 */
			       0x00f01b39             1   /* WUESR16 */
			       IT8XXX2_WUC_UNUSED_REG 1   /* WUENR16 */
			       0x00f01b3b             1>; /* WUBEMR16 */
			wakeup-controller;
			#wuc-cells = <1>;
		};

		intc: interrupt-controller@f03f00 {
			compatible = "ite,it8xxx2-intc";
			#address-cells = <0>;
			#interrupt-cells = <2>;
			interrupt-controller;
			reg = <0x00f03f00 0x0100>;
		};

		twd0: watchdog@f01f00 {
			compatible = "ite,it8xxx2-watchdog";
			reg = <0x00f01f00 0x000f>;
			interrupts = <IT8XXX2_IRQ_TIMER1 IRQ_TYPE_EDGE_RISING   /* Warning timer */
				      IT8XXX2_IRQ_TIMER2 IRQ_TYPE_EDGE_RISING>; /* One shot timer */
			interrupt-parent = <&intc>;
		};

		sha0: sha@f0202d {
			compatible = "ite,it8xxx2-sha";
			reg = <0x00f0202d 0x3>;
			status = "disabled";
		};
	};
};

