162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Device Tree Source for the MPC5121e based ac14xx board 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright 2012 Anatolij Gustschin <agust@denx.de> 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include "mpc5121.dtsi" 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci/ { 1262306a36Sopenharmony_ci model = "ac14xx"; 1362306a36Sopenharmony_ci compatible = "ifm,ac14xx", "fsl,mpc5121"; 1462306a36Sopenharmony_ci #address-cells = <1>; 1562306a36Sopenharmony_ci #size-cells = <1>; 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci aliases { 1862306a36Sopenharmony_ci serial0 = &serial0; 1962306a36Sopenharmony_ci serial1 = &serial7; 2062306a36Sopenharmony_ci spi4 = &spi4; 2162306a36Sopenharmony_ci spi5 = &spi5; 2262306a36Sopenharmony_ci }; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci cpus { 2562306a36Sopenharmony_ci PowerPC,5121@0 { 2662306a36Sopenharmony_ci timebase-frequency = <40000000>; /* 40 MHz (csb/4) */ 2762306a36Sopenharmony_ci bus-frequency = <160000000>; /* 160 MHz csb bus */ 2862306a36Sopenharmony_ci clock-frequency = <400000000>; /* 400 MHz ppc core */ 2962306a36Sopenharmony_ci }; 3062306a36Sopenharmony_ci }; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci memory { 3362306a36Sopenharmony_ci reg = <0x00000000 0x10000000>; /* 256MB at 0 */ 3462306a36Sopenharmony_ci }; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci nfc@40000000 { 3762306a36Sopenharmony_ci status = "disabled"; 3862306a36Sopenharmony_ci }; 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci localbus@80000020 { 4162306a36Sopenharmony_ci ranges = <0x0 0x0 0xfc000000 0x04000000 /* CS0: NOR flash */ 4262306a36Sopenharmony_ci 0x1 0x0 0xe0000000 0x00010000 /* CS1: FRAM */ 4362306a36Sopenharmony_ci 0x2 0x0 0xe0100000 0x00080000 /* CS2: asi1 */ 4462306a36Sopenharmony_ci 0x3 0x0 0xe0300000 0x00020000 /* CS3: comm */ 4562306a36Sopenharmony_ci 0x5 0x0 0xe0400000 0x00010000 /* CS5: safety */ 4662306a36Sopenharmony_ci 0x6 0x0 0xe0200000 0x00080000>; /* CS6: asi2 */ 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci flash@0,0 { 4962306a36Sopenharmony_ci compatible = "cfi-flash"; 5062306a36Sopenharmony_ci reg = <0 0x00000000 0x04000000>; 5162306a36Sopenharmony_ci #address-cells = <1>; 5262306a36Sopenharmony_ci #size-cells = <1>; 5362306a36Sopenharmony_ci bank-width = <2>; 5462306a36Sopenharmony_ci device-width = <2>; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci partition@0 { 5762306a36Sopenharmony_ci label = "dtb-kernel-production"; 5862306a36Sopenharmony_ci reg = <0x00000000 0x00400000>; 5962306a36Sopenharmony_ci }; 6062306a36Sopenharmony_ci partition@1 { 6162306a36Sopenharmony_ci label = "filesystem-production"; 6262306a36Sopenharmony_ci reg = <0x00400000 0x03400000>; 6362306a36Sopenharmony_ci }; 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci partition@2 { 6662306a36Sopenharmony_ci label = "recovery"; 6762306a36Sopenharmony_ci reg = <0x03800000 0x00700000>; 6862306a36Sopenharmony_ci }; 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci partition@3 { 7162306a36Sopenharmony_ci label = "uboot-code"; 7262306a36Sopenharmony_ci reg = <0x03f00000 0x00040000>; 7362306a36Sopenharmony_ci }; 7462306a36Sopenharmony_ci partition@4 { 7562306a36Sopenharmony_ci label = "uboot-env1"; 7662306a36Sopenharmony_ci reg = <0x03f40000 0x00020000>; 7762306a36Sopenharmony_ci }; 7862306a36Sopenharmony_ci partition@5 { 7962306a36Sopenharmony_ci label = "uboot-env2"; 8062306a36Sopenharmony_ci reg = <0x03f60000 0x00020000>; 8162306a36Sopenharmony_ci }; 8262306a36Sopenharmony_ci }; 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci fram@1,0 { 8562306a36Sopenharmony_ci compatible = "ifm,ac14xx-fram", "linux,uio-pdrv-genirq"; 8662306a36Sopenharmony_ci reg = <1 0x00000000 0x00010000>; 8762306a36Sopenharmony_ci }; 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci asi@2,0 { 9062306a36Sopenharmony_ci /* masters mapping: CS, CS offset, size */ 9162306a36Sopenharmony_ci reg = <2 0x00000000 0x00080000 9262306a36Sopenharmony_ci 6 0x00000000 0x00080000>; 9362306a36Sopenharmony_ci #address-cells = <1>; 9462306a36Sopenharmony_ci #size-cells = <1>; 9562306a36Sopenharmony_ci compatible = "ifm,ac14xx-asi-fpga"; 9662306a36Sopenharmony_ci gpios = < 9762306a36Sopenharmony_ci &gpio_pic 26 0 /* prog */ 9862306a36Sopenharmony_ci &gpio_pic 27 0 /* done */ 9962306a36Sopenharmony_ci &gpio_pic 10 0 /* reset */ 10062306a36Sopenharmony_ci >; 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci master@1 { 10362306a36Sopenharmony_ci interrupts = <20 0x2>; 10462306a36Sopenharmony_ci interrupt-parent = <&gpio_pic>; 10562306a36Sopenharmony_ci chipselect = <2 0x00009000 0x00009100>; 10662306a36Sopenharmony_ci label = "AS-i master 1"; 10762306a36Sopenharmony_ci }; 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci master@2 { 11062306a36Sopenharmony_ci interrupts = <21 0x2>; 11162306a36Sopenharmony_ci interrupt-parent = <&gpio_pic>; 11262306a36Sopenharmony_ci chipselect = <6 0x00009000 0x00009100>; 11362306a36Sopenharmony_ci label = "AS-i master 2"; 11462306a36Sopenharmony_ci }; 11562306a36Sopenharmony_ci }; 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci netx@3,0 { 11862306a36Sopenharmony_ci compatible = "ifm,netx"; 11962306a36Sopenharmony_ci reg = <0x3 0x00000000 0x00020000>; 12062306a36Sopenharmony_ci chipselect = <3 0x00101140 0x00203100>; 12162306a36Sopenharmony_ci interrupts = <17 0x8>; 12262306a36Sopenharmony_ci gpios = <&gpio_pic 15 0>; 12362306a36Sopenharmony_ci }; 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci safety@5,0 { 12662306a36Sopenharmony_ci compatible = "ifm,safety"; 12762306a36Sopenharmony_ci reg = <0x5 0x00000000 0x00010000>; 12862306a36Sopenharmony_ci chipselect = <5 0x00009000 0x00009100>; 12962306a36Sopenharmony_ci interrupts = <22 0x2>; 13062306a36Sopenharmony_ci interrupt-parent = <&gpio_pic>; 13162306a36Sopenharmony_ci gpios = < 13262306a36Sopenharmony_ci &gpio_pic 12 0 /* prog */ 13362306a36Sopenharmony_ci &gpio_pic 11 0 /* done */ 13462306a36Sopenharmony_ci >; 13562306a36Sopenharmony_ci }; 13662306a36Sopenharmony_ci }; 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci clocks { 13962306a36Sopenharmony_ci osc { 14062306a36Sopenharmony_ci clock-frequency = <25000000>; 14162306a36Sopenharmony_ci }; 14262306a36Sopenharmony_ci }; 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci soc@80000000 { 14562306a36Sopenharmony_ci bus-frequency = <80000000>; /* 80 MHz ips bus */ 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ci clock@f00 { 14862306a36Sopenharmony_ci compatible = "fsl,mpc5121rev2-clock", "fsl,mpc5121-clock"; 14962306a36Sopenharmony_ci }; 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci /* 15262306a36Sopenharmony_ci * GPIO PIC: 15362306a36Sopenharmony_ci * interrupts cell = <pin nr, sense> 15462306a36Sopenharmony_ci * sense == 8: Level, low assertion 15562306a36Sopenharmony_ci * sense == 2: Edge, high-to-low change 15662306a36Sopenharmony_ci */ 15762306a36Sopenharmony_ci gpio_pic: gpio@1100 { 15862306a36Sopenharmony_ci gpio-controller; 15962306a36Sopenharmony_ci #gpio-cells = <2>; 16062306a36Sopenharmony_ci interrupt-controller; 16162306a36Sopenharmony_ci #interrupt-cells = <2>; 16262306a36Sopenharmony_ci }; 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci sdhc@1500 { 16562306a36Sopenharmony_ci cd-gpios = <&gpio_pic 23 0>; /* card detect */ 16662306a36Sopenharmony_ci wp-gpios = <&gpio_pic 24 0>; /* write protect */ 16762306a36Sopenharmony_ci wp-inverted; /* WP active high */ 16862306a36Sopenharmony_ci }; 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci i2c@1700 { 17162306a36Sopenharmony_ci /* use Fast-mode */ 17262306a36Sopenharmony_ci clock-frequency = <400000>; 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci at24@30 { 17562306a36Sopenharmony_ci compatible = "atmel,24c01"; 17662306a36Sopenharmony_ci reg = <0x30>; 17762306a36Sopenharmony_ci }; 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci at24@31 { 18062306a36Sopenharmony_ci compatible = "atmel,24c01"; 18162306a36Sopenharmony_ci reg = <0x31>; 18262306a36Sopenharmony_ci }; 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci temp@48 { 18562306a36Sopenharmony_ci compatible = "ad,ad7414"; 18662306a36Sopenharmony_ci reg = <0x48>; 18762306a36Sopenharmony_ci }; 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci at24@50 { 19062306a36Sopenharmony_ci compatible = "atmel,24c01"; 19162306a36Sopenharmony_ci reg = <0x50>; 19262306a36Sopenharmony_ci }; 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci at24@51 { 19562306a36Sopenharmony_ci compatible = "atmel,24c01"; 19662306a36Sopenharmony_ci reg = <0x51>; 19762306a36Sopenharmony_ci }; 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci at24@52 { 20062306a36Sopenharmony_ci compatible = "atmel,24c01"; 20162306a36Sopenharmony_ci reg = <0x52>; 20262306a36Sopenharmony_ci }; 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci at24@53 { 20562306a36Sopenharmony_ci compatible = "atmel,24c01"; 20662306a36Sopenharmony_ci reg = <0x53>; 20762306a36Sopenharmony_ci }; 20862306a36Sopenharmony_ci 20962306a36Sopenharmony_ci at24@54 { 21062306a36Sopenharmony_ci compatible = "atmel,24c01"; 21162306a36Sopenharmony_ci reg = <0x54>; 21262306a36Sopenharmony_ci }; 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci at24@55 { 21562306a36Sopenharmony_ci compatible = "atmel,24c01"; 21662306a36Sopenharmony_ci reg = <0x55>; 21762306a36Sopenharmony_ci }; 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ci at24@56 { 22062306a36Sopenharmony_ci compatible = "atmel,24c01"; 22162306a36Sopenharmony_ci reg = <0x56>; 22262306a36Sopenharmony_ci }; 22362306a36Sopenharmony_ci 22462306a36Sopenharmony_ci at24@57 { 22562306a36Sopenharmony_ci compatible = "atmel,24c01"; 22662306a36Sopenharmony_ci reg = <0x57>; 22762306a36Sopenharmony_ci }; 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci rtc@68 { 23062306a36Sopenharmony_ci compatible = "st,m41t00"; 23162306a36Sopenharmony_ci reg = <0x68>; 23262306a36Sopenharmony_ci }; 23362306a36Sopenharmony_ci }; 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci axe_pic: axe-base@2000 { 23662306a36Sopenharmony_ci compatible = "fsl,mpc5121-axe-base"; 23762306a36Sopenharmony_ci reg = <0x2000 0x100>; 23862306a36Sopenharmony_ci interrupts = <42 0x8>; 23962306a36Sopenharmony_ci interrupt-controller; 24062306a36Sopenharmony_ci #interrupt-cells = <2>; 24162306a36Sopenharmony_ci }; 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci axe-app { 24462306a36Sopenharmony_ci compatible = "fsl,mpc5121-axe-app"; 24562306a36Sopenharmony_ci interrupt-parent = <&axe_pic>; 24662306a36Sopenharmony_ci interrupts = < 24762306a36Sopenharmony_ci /* soft interrupts */ 24862306a36Sopenharmony_ci 0 0x0 1 0x0 2 0x0 3 0x0 24962306a36Sopenharmony_ci 4 0x0 5 0x0 6 0x0 7 0x0 25062306a36Sopenharmony_ci /* fifo interrupts */ 25162306a36Sopenharmony_ci 8 0x0 9 0x0 10 0x0 11 0x0 25262306a36Sopenharmony_ci >; 25362306a36Sopenharmony_ci }; 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ci display@2100 { 25662306a36Sopenharmony_ci edid = [00 FF FF FF FF FF FF 00 14 94 00 00 00 00 00 00 25762306a36Sopenharmony_ci 0A 12 01 03 80 1C 23 78 CA 88 FF 94 52 54 8E 27 25862306a36Sopenharmony_ci 1E 4C 50 00 00 00 01 01 01 01 01 01 01 01 01 01 25962306a36Sopenharmony_ci 01 01 01 01 01 01 FB 00 B0 14 00 DC 05 00 08 04 26062306a36Sopenharmony_ci 21 00 1C 23 00 00 00 18 00 00 00 FD 00 38 3C 1F 26162306a36Sopenharmony_ci 3C 01 0A 20 20 20 20 20 20 20 00 00 00 FC 00 45 26262306a36Sopenharmony_ci 54 30 31 38 30 30 33 44 4D 55 0A 0A 00 00 00 10 26362306a36Sopenharmony_ci 00 41 30 30 30 30 30 30 30 30 30 30 30 31 00 D5]; 26462306a36Sopenharmony_ci }; 26562306a36Sopenharmony_ci 26662306a36Sopenharmony_ci can@2300 { 26762306a36Sopenharmony_ci status = "disabled"; 26862306a36Sopenharmony_ci }; 26962306a36Sopenharmony_ci 27062306a36Sopenharmony_ci can@2380 { 27162306a36Sopenharmony_ci status = "disabled"; 27262306a36Sopenharmony_ci }; 27362306a36Sopenharmony_ci 27462306a36Sopenharmony_ci viu@2400 { 27562306a36Sopenharmony_ci status = "disabled"; 27662306a36Sopenharmony_ci }; 27762306a36Sopenharmony_ci 27862306a36Sopenharmony_ci mdio@2800 { 27962306a36Sopenharmony_ci phy0: ethernet-phy@1f { 28062306a36Sopenharmony_ci compatible = "smsc,lan8700"; 28162306a36Sopenharmony_ci reg = <0x1f>; 28262306a36Sopenharmony_ci }; 28362306a36Sopenharmony_ci }; 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ci enet: ethernet@2800 { 28662306a36Sopenharmony_ci phy-handle = <&phy0>; 28762306a36Sopenharmony_ci }; 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci usb@3000 { 29062306a36Sopenharmony_ci status = "disabled"; 29162306a36Sopenharmony_ci }; 29262306a36Sopenharmony_ci 29362306a36Sopenharmony_ci usb@4000 { 29462306a36Sopenharmony_ci status = "disabled"; 29562306a36Sopenharmony_ci }; 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ci /* PSC3 serial port A, aka ttyPSC0 */ 29862306a36Sopenharmony_ci serial0: psc@11300 { 29962306a36Sopenharmony_ci compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 30062306a36Sopenharmony_ci fsl,rx-fifo-size = <512>; 30162306a36Sopenharmony_ci fsl,tx-fifo-size = <512>; 30262306a36Sopenharmony_ci }; 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ci /* PSC4 in SPI mode */ 30562306a36Sopenharmony_ci spi4: psc@11400 { 30662306a36Sopenharmony_ci compatible = "fsl,mpc5121-psc-spi", "fsl,mpc5121-psc"; 30762306a36Sopenharmony_ci fsl,rx-fifo-size = <768>; 30862306a36Sopenharmony_ci fsl,tx-fifo-size = <768>; 30962306a36Sopenharmony_ci #address-cells = <1>; 31062306a36Sopenharmony_ci #size-cells = <0>; 31162306a36Sopenharmony_ci num-cs = <1>; 31262306a36Sopenharmony_ci cs-gpios = <&gpio_pic 25 0>; 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ci flash: m25p128@0 { 31562306a36Sopenharmony_ci compatible = "st,m25p128"; 31662306a36Sopenharmony_ci spi-max-frequency = <20000000>; 31762306a36Sopenharmony_ci reg = <0>; 31862306a36Sopenharmony_ci #address-cells = <1>; 31962306a36Sopenharmony_ci #size-cells = <1>; 32062306a36Sopenharmony_ci 32162306a36Sopenharmony_ci partition@0 { 32262306a36Sopenharmony_ci label = "spi-flash0"; 32362306a36Sopenharmony_ci reg = <0x00000000 0x01000000>; 32462306a36Sopenharmony_ci }; 32562306a36Sopenharmony_ci }; 32662306a36Sopenharmony_ci }; 32762306a36Sopenharmony_ci 32862306a36Sopenharmony_ci /* PSC5 in SPI mode */ 32962306a36Sopenharmony_ci spi5: psc@11500 { 33062306a36Sopenharmony_ci compatible = "fsl,mpc5121-psc-spi", "fsl,mpc5121-psc"; 33162306a36Sopenharmony_ci fsl,mode = "spi-master"; 33262306a36Sopenharmony_ci fsl,rx-fifo-size = <128>; 33362306a36Sopenharmony_ci fsl,tx-fifo-size = <128>; 33462306a36Sopenharmony_ci #address-cells = <1>; 33562306a36Sopenharmony_ci #size-cells = <0>; 33662306a36Sopenharmony_ci 33762306a36Sopenharmony_ci lcd@0 { 33862306a36Sopenharmony_ci compatible = "ilitek,ili922x"; 33962306a36Sopenharmony_ci reg = <0>; 34062306a36Sopenharmony_ci spi-max-frequency = <100000>; 34162306a36Sopenharmony_ci spi-cpol; 34262306a36Sopenharmony_ci spi-cpha; 34362306a36Sopenharmony_ci }; 34462306a36Sopenharmony_ci }; 34562306a36Sopenharmony_ci 34662306a36Sopenharmony_ci /* PSC7 serial port C, aka ttyPSC2 */ 34762306a36Sopenharmony_ci serial7: psc@11700 { 34862306a36Sopenharmony_ci compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc"; 34962306a36Sopenharmony_ci fsl,rx-fifo-size = <512>; 35062306a36Sopenharmony_ci fsl,tx-fifo-size = <512>; 35162306a36Sopenharmony_ci }; 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci matrix_keypad@0 { 35462306a36Sopenharmony_ci compatible = "gpio-matrix-keypad"; 35562306a36Sopenharmony_ci debounce-delay-ms = <5>; 35662306a36Sopenharmony_ci col-scan-delay-us = <1>; 35762306a36Sopenharmony_ci gpio-activelow; 35862306a36Sopenharmony_ci col-gpios-binary; 35962306a36Sopenharmony_ci col-switch-delay-ms = <200>; 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci col-gpios = <&gpio_pic 1 0>; /* pin1 */ 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ci row-gpios = <&gpio_pic 2 0 /* pin2 */ 36462306a36Sopenharmony_ci &gpio_pic 3 0 /* pin3 */ 36562306a36Sopenharmony_ci &gpio_pic 4 0>; /* pin4 */ 36662306a36Sopenharmony_ci 36762306a36Sopenharmony_ci linux,keymap = <0x0000006e /* FN LEFT */ 36862306a36Sopenharmony_ci 0x01000067 /* UP */ 36962306a36Sopenharmony_ci 0x02000066 /* FN RIGHT */ 37062306a36Sopenharmony_ci 0x00010069 /* LEFT */ 37162306a36Sopenharmony_ci 0x0101006a /* DOWN */ 37262306a36Sopenharmony_ci 0x0201006c>; /* RIGHT */ 37362306a36Sopenharmony_ci }; 37462306a36Sopenharmony_ci }; 37562306a36Sopenharmony_ci 37662306a36Sopenharmony_ci leds { 37762306a36Sopenharmony_ci compatible = "gpio-leds"; 37862306a36Sopenharmony_ci 37962306a36Sopenharmony_ci backlight { 38062306a36Sopenharmony_ci label = "backlight"; 38162306a36Sopenharmony_ci gpios = <&gpio_pic 0 0>; 38262306a36Sopenharmony_ci default-state = "keep"; 38362306a36Sopenharmony_ci }; 38462306a36Sopenharmony_ci green { 38562306a36Sopenharmony_ci label = "green"; 38662306a36Sopenharmony_ci gpios = <&gpio_pic 18 0>; 38762306a36Sopenharmony_ci default-state = "keep"; 38862306a36Sopenharmony_ci }; 38962306a36Sopenharmony_ci red { 39062306a36Sopenharmony_ci label = "red"; 39162306a36Sopenharmony_ci gpios = <&gpio_pic 19 0>; 39262306a36Sopenharmony_ci default-state = "keep"; 39362306a36Sopenharmony_ci }; 39462306a36Sopenharmony_ci }; 39562306a36Sopenharmony_ci}; 396