19d59b708SYixun Lan/* 29d59b708SYixun Lan * Copyright (c) 2017 Amlogic, Inc. All rights reserved. 39d59b708SYixun Lan * 49d59b708SYixun Lan * SPDX-License-Identifier: (GPL-2.0+ OR MIT) 59d59b708SYixun Lan */ 69d59b708SYixun Lan 79d59b708SYixun Lan#include <dt-bindings/gpio/gpio.h> 89d59b708SYixun Lan#include <dt-bindings/interrupt-controller/irq.h> 99d59b708SYixun Lan#include <dt-bindings/interrupt-controller/arm-gic.h> 1006b7a631SYixun Lan#include <dt-bindings/clock/axg-clkc.h> 119d59b708SYixun Lan 129d59b708SYixun Lan/ { 139d59b708SYixun Lan compatible = "amlogic,meson-axg"; 149d59b708SYixun Lan 159d59b708SYixun Lan interrupt-parent = <&gic>; 169d59b708SYixun Lan #address-cells = <2>; 179d59b708SYixun Lan #size-cells = <2>; 189d59b708SYixun Lan 199d59b708SYixun Lan reserved-memory { 209d59b708SYixun Lan #address-cells = <2>; 219d59b708SYixun Lan #size-cells = <2>; 229d59b708SYixun Lan ranges; 239d59b708SYixun Lan 249d59b708SYixun Lan /* 16 MiB reserved for Hardware ROM Firmware */ 259d59b708SYixun Lan hwrom_reserved: hwrom@0 { 269d59b708SYixun Lan reg = <0x0 0x0 0x0 0x1000000>; 279d59b708SYixun Lan no-map; 289d59b708SYixun Lan }; 299d59b708SYixun Lan 309d59b708SYixun Lan /* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */ 31a5494aedSArnd Bergmann secmon_reserved: secmon@5000000 { 329d59b708SYixun Lan reg = <0x0 0x05000000 0x0 0x300000>; 339d59b708SYixun Lan no-map; 349d59b708SYixun Lan }; 359d59b708SYixun Lan }; 369d59b708SYixun Lan 379d59b708SYixun Lan cpus { 389d59b708SYixun Lan #address-cells = <0x2>; 399d59b708SYixun Lan #size-cells = <0x0>; 409d59b708SYixun Lan 419d59b708SYixun Lan cpu0: cpu@0 { 429d59b708SYixun Lan device_type = "cpu"; 439d59b708SYixun Lan compatible = "arm,cortex-a53", "arm,armv8"; 449d59b708SYixun Lan reg = <0x0 0x0>; 459d59b708SYixun Lan enable-method = "psci"; 469d59b708SYixun Lan next-level-cache = <&l2>; 479d59b708SYixun Lan }; 489d59b708SYixun Lan 499d59b708SYixun Lan cpu1: cpu@1 { 509d59b708SYixun Lan device_type = "cpu"; 519d59b708SYixun Lan compatible = "arm,cortex-a53", "arm,armv8"; 529d59b708SYixun Lan reg = <0x0 0x1>; 539d59b708SYixun Lan enable-method = "psci"; 549d59b708SYixun Lan next-level-cache = <&l2>; 559d59b708SYixun Lan }; 569d59b708SYixun Lan 579d59b708SYixun Lan cpu2: cpu@2 { 589d59b708SYixun Lan device_type = "cpu"; 599d59b708SYixun Lan compatible = "arm,cortex-a53", "arm,armv8"; 609d59b708SYixun Lan reg = <0x0 0x2>; 619d59b708SYixun Lan enable-method = "psci"; 629d59b708SYixun Lan next-level-cache = <&l2>; 639d59b708SYixun Lan }; 649d59b708SYixun Lan 659d59b708SYixun Lan cpu3: cpu@3 { 669d59b708SYixun Lan device_type = "cpu"; 679d59b708SYixun Lan compatible = "arm,cortex-a53", "arm,armv8"; 689d59b708SYixun Lan reg = <0x0 0x3>; 699d59b708SYixun Lan enable-method = "psci"; 709d59b708SYixun Lan next-level-cache = <&l2>; 719d59b708SYixun Lan }; 729d59b708SYixun Lan 739d59b708SYixun Lan l2: l2-cache0 { 749d59b708SYixun Lan compatible = "cache"; 759d59b708SYixun Lan }; 769d59b708SYixun Lan }; 779d59b708SYixun Lan 789d59b708SYixun Lan arm-pmu { 799d59b708SYixun Lan compatible = "arm,cortex-a53-pmu"; 809d59b708SYixun Lan interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>, 819d59b708SYixun Lan <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>, 829d59b708SYixun Lan <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 839d59b708SYixun Lan <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 849d59b708SYixun Lan interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 859d59b708SYixun Lan }; 869d59b708SYixun Lan 879d59b708SYixun Lan psci { 889d59b708SYixun Lan compatible = "arm,psci-1.0"; 899d59b708SYixun Lan method = "smc"; 909d59b708SYixun Lan }; 919d59b708SYixun Lan 929d59b708SYixun Lan timer { 939d59b708SYixun Lan compatible = "arm,armv8-timer"; 949d59b708SYixun Lan interrupts = <GIC_PPI 13 959d59b708SYixun Lan (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 969d59b708SYixun Lan <GIC_PPI 14 979d59b708SYixun Lan (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 989d59b708SYixun Lan <GIC_PPI 11 999d59b708SYixun Lan (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>, 1009d59b708SYixun Lan <GIC_PPI 10 1019d59b708SYixun Lan (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>; 1029d59b708SYixun Lan }; 1039d59b708SYixun Lan 1049d59b708SYixun Lan xtal: xtal-clk { 1059d59b708SYixun Lan compatible = "fixed-clock"; 1069d59b708SYixun Lan clock-frequency = <24000000>; 1079d59b708SYixun Lan clock-output-names = "xtal"; 1089d59b708SYixun Lan #clock-cells = <0>; 1099d59b708SYixun Lan }; 1109d59b708SYixun Lan 1119d59b708SYixun Lan soc { 1129d59b708SYixun Lan compatible = "simple-bus"; 1139d59b708SYixun Lan #address-cells = <2>; 1149d59b708SYixun Lan #size-cells = <2>; 1159d59b708SYixun Lan ranges; 1169d59b708SYixun Lan 1170cb6c604SKevin Hilman cbus: bus@ffd00000 { 1189d59b708SYixun Lan compatible = "simple-bus"; 1199d59b708SYixun Lan reg = <0x0 0xffd00000 0x0 0x25000>; 1209d59b708SYixun Lan #address-cells = <2>; 1219d59b708SYixun Lan #size-cells = <2>; 1229d59b708SYixun Lan ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>; 1239d59b708SYixun Lan 1244a81e5ddSJian Hu pwm_ab: pwm@1b000 { 1254a81e5ddSJian Hu compatible = "amlogic,meson-axg-ee-pwm"; 1264a81e5ddSJian Hu reg = <0x0 0x1b000 0x0 0x20>; 1274a81e5ddSJian Hu #pwm-cells = <3>; 1284a81e5ddSJian Hu status = "disabled"; 1294a81e5ddSJian Hu }; 1304a81e5ddSJian Hu 1314a81e5ddSJian Hu pwm_cd: pwm@1a000 { 1324a81e5ddSJian Hu compatible = "amlogic,meson-axg-ee-pwm"; 1334a81e5ddSJian Hu reg = <0x0 0x1a000 0x0 0x20>; 1344a81e5ddSJian Hu #pwm-cells = <3>; 1354a81e5ddSJian Hu status = "disabled"; 1364a81e5ddSJian Hu }; 1374a81e5ddSJian Hu 13843b9f617SYixun Lan reset: reset-controller@1004 { 13943b9f617SYixun Lan compatible = "amlogic,meson-axg-reset"; 14043b9f617SYixun Lan reg = <0x0 0x01004 0x0 0x9c>; 14143b9f617SYixun Lan #reset-cells = <1>; 14243b9f617SYixun Lan }; 14343b9f617SYixun Lan 1449d59b708SYixun Lan uart_A: serial@24000 { 1459d59b708SYixun Lan compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart"; 1469d59b708SYixun Lan reg = <0x0 0x24000 0x0 0x14>; 1479d59b708SYixun Lan interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>; 1489d59b708SYixun Lan status = "disabled"; 1499d59b708SYixun Lan }; 1509d59b708SYixun Lan 1519d59b708SYixun Lan uart_B: serial@23000 { 1529d59b708SYixun Lan compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart"; 1539d59b708SYixun Lan reg = <0x0 0x23000 0x0 0x14>; 1549d59b708SYixun Lan interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>; 1559d59b708SYixun Lan status = "disabled"; 1569d59b708SYixun Lan }; 1579d59b708SYixun Lan }; 1589d59b708SYixun Lan 1599d59b708SYixun Lan gic: interrupt-controller@ffc01000 { 1609d59b708SYixun Lan compatible = "arm,gic-400"; 1619d59b708SYixun Lan reg = <0x0 0xffc01000 0 0x1000>, 1629d59b708SYixun Lan <0x0 0xffc02000 0 0x2000>, 1639d59b708SYixun Lan <0x0 0xffc04000 0 0x2000>, 1649d59b708SYixun Lan <0x0 0xffc06000 0 0x2000>; 1659d59b708SYixun Lan interrupt-controller; 1669d59b708SYixun Lan interrupts = <GIC_PPI 9 1679d59b708SYixun Lan (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 1689d59b708SYixun Lan #interrupt-cells = <3>; 1699d59b708SYixun Lan #address-cells = <0>; 1709d59b708SYixun Lan }; 1719d59b708SYixun Lan 172abfc18f9SQiufang Dai hiubus: bus@ff63c000 { 173abfc18f9SQiufang Dai compatible = "simple-bus"; 174abfc18f9SQiufang Dai reg = <0x0 0xff63c000 0x0 0x1c00>; 175abfc18f9SQiufang Dai #address-cells = <2>; 176abfc18f9SQiufang Dai #size-cells = <2>; 177abfc18f9SQiufang Dai ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>; 178abfc18f9SQiufang Dai 179abfc18f9SQiufang Dai clkc: clock-controller@0 { 180abfc18f9SQiufang Dai compatible = "amlogic,axg-clkc"; 181abfc18f9SQiufang Dai #clock-cells = <1>; 182abfc18f9SQiufang Dai reg = <0x0 0x0 0x0 0x320>; 183abfc18f9SQiufang Dai }; 184abfc18f9SQiufang Dai }; 185abfc18f9SQiufang Dai 1869d59b708SYixun Lan mailbox: mailbox@ff63dc00 { 1879d59b708SYixun Lan compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu"; 1889d59b708SYixun Lan reg = <0 0xff63dc00 0 0x400>; 1899d59b708SYixun Lan interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>, 1909d59b708SYixun Lan <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>, 1919d59b708SYixun Lan <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>; 1929d59b708SYixun Lan #mbox-cells = <1>; 1939d59b708SYixun Lan }; 1949d59b708SYixun Lan 195de05ded6SXingyu Chen periphs: periphs@ff634000 { 196de05ded6SXingyu Chen compatible = "simple-bus"; 197de05ded6SXingyu Chen reg = <0x0 0xff634000 0x0 0x2000>; 198de05ded6SXingyu Chen #address-cells = <2>; 199de05ded6SXingyu Chen #size-cells = <2>; 200de05ded6SXingyu Chen ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>; 201de05ded6SXingyu Chen 202de05ded6SXingyu Chen pinctrl_periphs: pinctrl@480 { 203de05ded6SXingyu Chen compatible = "amlogic,meson-axg-periphs-pinctrl"; 204de05ded6SXingyu Chen #address-cells = <2>; 205de05ded6SXingyu Chen #size-cells = <2>; 206de05ded6SXingyu Chen ranges; 207de05ded6SXingyu Chen 208de05ded6SXingyu Chen gpio: bank@480 { 209de05ded6SXingyu Chen reg = <0x0 0x00480 0x0 0x40>, 210de05ded6SXingyu Chen <0x0 0x004e8 0x0 0x14>, 211de05ded6SXingyu Chen <0x0 0x00520 0x0 0x14>, 212de05ded6SXingyu Chen <0x0 0x00430 0x0 0x3c>; 213de05ded6SXingyu Chen reg-names = "mux", "pull", "pull-enable", "gpio"; 214de05ded6SXingyu Chen gpio-controller; 215de05ded6SXingyu Chen #gpio-cells = <2>; 216de05ded6SXingyu Chen gpio-ranges = <&pinctrl_periphs 0 0 86>; 217de05ded6SXingyu Chen }; 2184a81e5ddSJian Hu 2194a81e5ddSJian Hu pwm_a_a_pins: pwm_a_a { 2204a81e5ddSJian Hu mux { 2214a81e5ddSJian Hu groups = "pwm_a_a"; 2224a81e5ddSJian Hu function = "pwm_a"; 2234a81e5ddSJian Hu }; 2244a81e5ddSJian Hu }; 2254a81e5ddSJian Hu 2264a81e5ddSJian Hu pwm_a_x18_pins: pwm_a_x18 { 2274a81e5ddSJian Hu mux { 2284a81e5ddSJian Hu groups = "pwm_a_x18"; 2294a81e5ddSJian Hu function = "pwm_a"; 2304a81e5ddSJian Hu }; 2314a81e5ddSJian Hu }; 2324a81e5ddSJian Hu 2334a81e5ddSJian Hu pwm_a_x20_pins: pwm_a_x20 { 2344a81e5ddSJian Hu mux { 2354a81e5ddSJian Hu groups = "pwm_a_x20"; 2364a81e5ddSJian Hu function = "pwm_a"; 2374a81e5ddSJian Hu }; 2384a81e5ddSJian Hu }; 2394a81e5ddSJian Hu 2404a81e5ddSJian Hu pwm_a_z_pins: pwm_a_z { 2414a81e5ddSJian Hu mux { 2424a81e5ddSJian Hu groups = "pwm_a_z"; 2434a81e5ddSJian Hu function = "pwm_a"; 2444a81e5ddSJian Hu }; 2454a81e5ddSJian Hu }; 2464a81e5ddSJian Hu 2474a81e5ddSJian Hu pwm_b_a_pins: pwm_b_a { 2484a81e5ddSJian Hu mux { 2494a81e5ddSJian Hu groups = "pwm_b_a"; 2504a81e5ddSJian Hu function = "pwm_b"; 2514a81e5ddSJian Hu }; 2524a81e5ddSJian Hu }; 2534a81e5ddSJian Hu 2544a81e5ddSJian Hu pwm_b_x_pins: pwm_b_x { 2554a81e5ddSJian Hu mux { 2564a81e5ddSJian Hu groups = "pwm_b_x"; 2574a81e5ddSJian Hu function = "pwm_b"; 2584a81e5ddSJian Hu }; 2594a81e5ddSJian Hu }; 2604a81e5ddSJian Hu 2614a81e5ddSJian Hu pwm_b_z_pins: pwm_b_z { 2624a81e5ddSJian Hu mux { 2634a81e5ddSJian Hu groups = "pwm_b_z"; 2644a81e5ddSJian Hu function = "pwm_b"; 2654a81e5ddSJian Hu }; 2664a81e5ddSJian Hu }; 2674a81e5ddSJian Hu 2684a81e5ddSJian Hu pwm_c_a_pins: pwm_c_a { 2694a81e5ddSJian Hu mux { 2704a81e5ddSJian Hu groups = "pwm_c_a"; 2714a81e5ddSJian Hu function = "pwm_c"; 2724a81e5ddSJian Hu }; 2734a81e5ddSJian Hu }; 2744a81e5ddSJian Hu 2754a81e5ddSJian Hu pwm_c_x10_pins: pwm_c_x10 { 2764a81e5ddSJian Hu mux { 2774a81e5ddSJian Hu groups = "pwm_c_x10"; 2784a81e5ddSJian Hu function = "pwm_c"; 2794a81e5ddSJian Hu }; 2804a81e5ddSJian Hu }; 2814a81e5ddSJian Hu 2824a81e5ddSJian Hu pwm_c_x17_pins: pwm_c_x17 { 2834a81e5ddSJian Hu mux { 2844a81e5ddSJian Hu groups = "pwm_c_x17"; 2854a81e5ddSJian Hu function = "pwm_c"; 2864a81e5ddSJian Hu }; 2874a81e5ddSJian Hu }; 2884a81e5ddSJian Hu 2894a81e5ddSJian Hu pwm_d_x11_pins: pwm_d_x11 { 2904a81e5ddSJian Hu mux { 2914a81e5ddSJian Hu groups = "pwm_d_x11"; 2924a81e5ddSJian Hu function = "pwm_d"; 2934a81e5ddSJian Hu }; 2944a81e5ddSJian Hu }; 2954a81e5ddSJian Hu 2964a81e5ddSJian Hu pwm_d_x16_pins: pwm_d_x16 { 2974a81e5ddSJian Hu mux { 2984a81e5ddSJian Hu groups = "pwm_d_x16"; 2994a81e5ddSJian Hu function = "pwm_d"; 3004a81e5ddSJian Hu }; 3014a81e5ddSJian Hu }; 302de05ded6SXingyu Chen }; 303de05ded6SXingyu Chen }; 304de05ded6SXingyu Chen 3059d59b708SYixun Lan sram: sram@fffc0000 { 3069d59b708SYixun Lan compatible = "amlogic,meson-axg-sram", "mmio-sram"; 3079d59b708SYixun Lan reg = <0x0 0xfffc0000 0x0 0x20000>; 3089d59b708SYixun Lan #address-cells = <1>; 3099d59b708SYixun Lan #size-cells = <1>; 3109d59b708SYixun Lan ranges = <0 0x0 0xfffc0000 0x20000>; 3119d59b708SYixun Lan 3129d59b708SYixun Lan cpu_scp_lpri: scp-shmem@0 { 3139d59b708SYixun Lan compatible = "amlogic,meson-axg-scp-shmem"; 3149d59b708SYixun Lan reg = <0x13000 0x400>; 3159d59b708SYixun Lan }; 3169d59b708SYixun Lan 3179d59b708SYixun Lan cpu_scp_hpri: scp-shmem@200 { 3189d59b708SYixun Lan compatible = "amlogic,meson-axg-scp-shmem"; 3199d59b708SYixun Lan reg = <0x13400 0x400>; 3209d59b708SYixun Lan }; 3219d59b708SYixun Lan }; 3229d59b708SYixun Lan 3230cb6c604SKevin Hilman aobus: bus@ff800000 { 3249d59b708SYixun Lan compatible = "simple-bus"; 3259d59b708SYixun Lan reg = <0x0 0xff800000 0x0 0x100000>; 3269d59b708SYixun Lan #address-cells = <2>; 3279d59b708SYixun Lan #size-cells = <2>; 3289d59b708SYixun Lan ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>; 3299d59b708SYixun Lan 330de05ded6SXingyu Chen pinctrl_aobus: pinctrl@14 { 331de05ded6SXingyu Chen compatible = "amlogic,meson-axg-aobus-pinctrl"; 332de05ded6SXingyu Chen #address-cells = <2>; 333de05ded6SXingyu Chen #size-cells = <2>; 334de05ded6SXingyu Chen ranges; 335de05ded6SXingyu Chen 336de05ded6SXingyu Chen gpio_ao: bank@14 { 337de05ded6SXingyu Chen reg = <0x0 0x00014 0x0 0x8>, 338de05ded6SXingyu Chen <0x0 0x0002c 0x0 0x4>, 339de05ded6SXingyu Chen <0x0 0x00024 0x0 0x8>; 340de05ded6SXingyu Chen reg-names = "mux", "pull", "gpio"; 341de05ded6SXingyu Chen gpio-controller; 342de05ded6SXingyu Chen #gpio-cells = <2>; 343de05ded6SXingyu Chen gpio-ranges = <&pinctrl_aobus 0 0 15>; 344de05ded6SXingyu Chen }; 3457bd46a79SYixun Lan 3467bd46a79SYixun Lan remote_input_ao_pins: remote_input_ao { 3477bd46a79SYixun Lan mux { 3487bd46a79SYixun Lan groups = "remote_input_ao"; 3497bd46a79SYixun Lan function = "remote_input_ao"; 3507bd46a79SYixun Lan }; 3517bd46a79SYixun Lan }; 352de05ded6SXingyu Chen }; 353de05ded6SXingyu Chen 3544a81e5ddSJian Hu pwm_AO_ab: pwm@7000 { 3554a81e5ddSJian Hu compatible = "amlogic,meson-axg-ao-pwm"; 3564a81e5ddSJian Hu reg = <0x0 0x07000 0x0 0x20>; 3574a81e5ddSJian Hu #pwm-cells = <3>; 3584a81e5ddSJian Hu status = "disabled"; 3594a81e5ddSJian Hu }; 3604a81e5ddSJian Hu 3614a81e5ddSJian Hu pwm_AO_cd: pwm@2000 { 3624a81e5ddSJian Hu compatible = "amlogic,axg-ao-pwm"; 3634a81e5ddSJian Hu reg = <0x0 0x02000 0x0 0x20>; 3644a81e5ddSJian Hu #pwm-cells = <3>; 3654a81e5ddSJian Hu status = "disabled"; 3664a81e5ddSJian Hu }; 3674a81e5ddSJian Hu 3689d59b708SYixun Lan uart_AO: serial@3000 { 3699d59b708SYixun Lan compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart"; 3709d59b708SYixun Lan reg = <0x0 0x3000 0x0 0x18>; 3719d59b708SYixun Lan interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>; 37206b7a631SYixun Lan clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>; 3739d59b708SYixun Lan clock-names = "xtal", "pclk", "baud"; 3749d59b708SYixun Lan status = "disabled"; 3759d59b708SYixun Lan }; 3769d59b708SYixun Lan 3779d59b708SYixun Lan uart_AO_B: serial@4000 { 3789d59b708SYixun Lan compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart"; 3799d59b708SYixun Lan reg = <0x0 0x4000 0x0 0x18>; 3809d59b708SYixun Lan interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>; 38106b7a631SYixun Lan clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>; 3829d59b708SYixun Lan clock-names = "xtal", "pclk", "baud"; 3839d59b708SYixun Lan status = "disabled"; 3849d59b708SYixun Lan }; 3857bd46a79SYixun Lan 3867bd46a79SYixun Lan ir: ir@8000 { 3877bd46a79SYixun Lan compatible = "amlogic,meson-gxbb-ir"; 3887bd46a79SYixun Lan reg = <0x0 0x8000 0x0 0x20>; 3897bd46a79SYixun Lan interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>; 3907bd46a79SYixun Lan status = "disabled"; 3917bd46a79SYixun Lan }; 3929d59b708SYixun Lan }; 3939d59b708SYixun Lan }; 3949d59b708SYixun Lan}; 395