1326e5751SDongjin Kim// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2326e5751SDongjin Kim/* 3326e5751SDongjin Kim * Copyright (c) 2020 Dongjin Kim <tobetter@gmail.com> 4326e5751SDongjin Kim */ 5326e5751SDongjin Kim 6326e5751SDongjin Kim/dts-v1/; 7326e5751SDongjin Kim 8326e5751SDongjin Kim#include "meson-sm1.dtsi" 9326e5751SDongjin Kim#include <dt-bindings/gpio/meson-g12a-gpio.h> 10326e5751SDongjin Kim#include <dt-bindings/leds/common.h> 11326e5751SDongjin Kim 12326e5751SDongjin Kim/ { 13326e5751SDongjin Kim compatible = "hardkernel,odroid-c4", "amlogic,sm1"; 14326e5751SDongjin Kim model = "Hardkernel ODROID-C4"; 15326e5751SDongjin Kim 16326e5751SDongjin Kim aliases { 17326e5751SDongjin Kim serial0 = &uart_AO; 18326e5751SDongjin Kim ethernet0 = ðmac; 19326e5751SDongjin Kim }; 20326e5751SDongjin Kim 21326e5751SDongjin Kim chosen { 22326e5751SDongjin Kim stdout-path = "serial0:115200n8"; 23326e5751SDongjin Kim }; 24326e5751SDongjin Kim 25326e5751SDongjin Kim memory@0 { 26326e5751SDongjin Kim device_type = "memory"; 27326e5751SDongjin Kim reg = <0x0 0x0 0x0 0x40000000>; 28326e5751SDongjin Kim }; 29326e5751SDongjin Kim 30326e5751SDongjin Kim emmc_pwrseq: emmc-pwrseq { 31326e5751SDongjin Kim compatible = "mmc-pwrseq-emmc"; 32326e5751SDongjin Kim reset-gpios = <&gpio BOOT_12 GPIO_ACTIVE_LOW>; 33326e5751SDongjin Kim }; 34326e5751SDongjin Kim 35326e5751SDongjin Kim leds { 36326e5751SDongjin Kim compatible = "gpio-leds"; 37326e5751SDongjin Kim 38326e5751SDongjin Kim led-blue { 39326e5751SDongjin Kim color = <LED_COLOR_ID_BLUE>; 40326e5751SDongjin Kim function = LED_FUNCTION_STATUS; 41326e5751SDongjin Kim gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>; 42326e5751SDongjin Kim linux,default-trigger = "heartbeat"; 43326e5751SDongjin Kim panic-indicator; 44326e5751SDongjin Kim }; 45326e5751SDongjin Kim }; 46326e5751SDongjin Kim 47326e5751SDongjin Kim tflash_vdd: regulator-tflash_vdd { 48326e5751SDongjin Kim compatible = "regulator-fixed"; 49326e5751SDongjin Kim 50326e5751SDongjin Kim regulator-name = "TFLASH_VDD"; 51326e5751SDongjin Kim regulator-min-microvolt = <3300000>; 52326e5751SDongjin Kim regulator-max-microvolt = <3300000>; 53326e5751SDongjin Kim 54326e5751SDongjin Kim gpio = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>; 55326e5751SDongjin Kim enable-active-high; 56326e5751SDongjin Kim regulator-always-on; 57326e5751SDongjin Kim }; 58326e5751SDongjin Kim 59326e5751SDongjin Kim tf_io: gpio-regulator-tf_io { 60326e5751SDongjin Kim compatible = "regulator-gpio"; 61326e5751SDongjin Kim 62326e5751SDongjin Kim regulator-name = "TF_IO"; 63326e5751SDongjin Kim regulator-min-microvolt = <1800000>; 64326e5751SDongjin Kim regulator-max-microvolt = <3300000>; 65326e5751SDongjin Kim 66326e5751SDongjin Kim gpios = <&gpio_ao GPIOAO_6 GPIO_ACTIVE_HIGH>; 67326e5751SDongjin Kim gpios-states = <0>; 68326e5751SDongjin Kim 69326e5751SDongjin Kim states = <3300000 0>, 70326e5751SDongjin Kim <1800000 1>; 71326e5751SDongjin Kim }; 72326e5751SDongjin Kim 73326e5751SDongjin Kim flash_1v8: regulator-flash_1v8 { 74326e5751SDongjin Kim compatible = "regulator-fixed"; 75326e5751SDongjin Kim regulator-name = "FLASH_1V8"; 76326e5751SDongjin Kim regulator-min-microvolt = <1800000>; 77326e5751SDongjin Kim regulator-max-microvolt = <1800000>; 78326e5751SDongjin Kim vin-supply = <&vcc_3v3>; 79326e5751SDongjin Kim regulator-always-on; 80326e5751SDongjin Kim }; 81326e5751SDongjin Kim 82326e5751SDongjin Kim main_12v: regulator-main_12v { 83326e5751SDongjin Kim compatible = "regulator-fixed"; 84326e5751SDongjin Kim regulator-name = "12V"; 85326e5751SDongjin Kim regulator-min-microvolt = <12000000>; 86326e5751SDongjin Kim regulator-max-microvolt = <12000000>; 87326e5751SDongjin Kim regulator-always-on; 88326e5751SDongjin Kim }; 89326e5751SDongjin Kim 90326e5751SDongjin Kim vcc_5v: regulator-vcc_5v { 91326e5751SDongjin Kim compatible = "regulator-fixed"; 92326e5751SDongjin Kim regulator-name = "5V"; 93326e5751SDongjin Kim regulator-min-microvolt = <5000000>; 94326e5751SDongjin Kim regulator-max-microvolt = <5000000>; 95326e5751SDongjin Kim regulator-always-on; 96326e5751SDongjin Kim vin-supply = <&main_12v>; 97326e5751SDongjin Kim }; 98326e5751SDongjin Kim 99326e5751SDongjin Kim vcc_1v8: regulator-vcc_1v8 { 100326e5751SDongjin Kim compatible = "regulator-fixed"; 101326e5751SDongjin Kim regulator-name = "VCC_1V8"; 102326e5751SDongjin Kim regulator-min-microvolt = <1800000>; 103326e5751SDongjin Kim regulator-max-microvolt = <1800000>; 104326e5751SDongjin Kim vin-supply = <&vcc_3v3>; 105326e5751SDongjin Kim regulator-always-on; 106326e5751SDongjin Kim }; 107326e5751SDongjin Kim 108326e5751SDongjin Kim vcc_3v3: regulator-vcc_3v3 { 109326e5751SDongjin Kim compatible = "regulator-fixed"; 110326e5751SDongjin Kim regulator-name = "VCC_3V3"; 111326e5751SDongjin Kim regulator-min-microvolt = <3300000>; 112326e5751SDongjin Kim regulator-max-microvolt = <3300000>; 113326e5751SDongjin Kim vin-supply = <&vddao_3v3>; 114326e5751SDongjin Kim regulator-always-on; 115326e5751SDongjin Kim /* FIXME: actually controlled by VDDCPU_B_EN */ 116326e5751SDongjin Kim }; 117326e5751SDongjin Kim 118326e5751SDongjin Kim vddcpu: regulator-vddcpu { 119326e5751SDongjin Kim /* 120326e5751SDongjin Kim * MP8756GD Regulator. 121326e5751SDongjin Kim */ 122326e5751SDongjin Kim compatible = "pwm-regulator"; 123326e5751SDongjin Kim 124326e5751SDongjin Kim regulator-name = "VDDCPU"; 125326e5751SDongjin Kim regulator-min-microvolt = <721000>; 126326e5751SDongjin Kim regulator-max-microvolt = <1022000>; 127326e5751SDongjin Kim 128326e5751SDongjin Kim vin-supply = <&main_12v>; 129326e5751SDongjin Kim 130326e5751SDongjin Kim pwms = <&pwm_AO_cd 1 1250 0>; 131326e5751SDongjin Kim pwm-dutycycle-range = <100 0>; 132326e5751SDongjin Kim 133326e5751SDongjin Kim regulator-boot-on; 134326e5751SDongjin Kim regulator-always-on; 135326e5751SDongjin Kim }; 136326e5751SDongjin Kim 137326e5751SDongjin Kim hub_5v: regulator-hub_5v { 138326e5751SDongjin Kim compatible = "regulator-fixed"; 139326e5751SDongjin Kim regulator-name = "HUB_5V"; 140326e5751SDongjin Kim regulator-min-microvolt = <5000000>; 141326e5751SDongjin Kim regulator-max-microvolt = <5000000>; 142326e5751SDongjin Kim vin-supply = <&vcc_5v>; 143326e5751SDongjin Kim 144326e5751SDongjin Kim /* Connected to the Hub CHIPENABLE, LOW sets low power state */ 145326e5751SDongjin Kim gpio = <&gpio GPIOH_4 GPIO_ACTIVE_HIGH>; 146326e5751SDongjin Kim enable-active-high; 147326e5751SDongjin Kim }; 148326e5751SDongjin Kim 149326e5751SDongjin Kim usb_pwr_en: regulator-usb_pwr_en { 150326e5751SDongjin Kim compatible = "regulator-fixed"; 151326e5751SDongjin Kim regulator-name = "USB_PWR_EN"; 152326e5751SDongjin Kim regulator-min-microvolt = <5000000>; 153326e5751SDongjin Kim regulator-max-microvolt = <5000000>; 154326e5751SDongjin Kim vin-supply = <&vcc_5v>; 155326e5751SDongjin Kim 156326e5751SDongjin Kim /* Connected to the microUSB port power enable */ 157326e5751SDongjin Kim gpio = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_HIGH>; 158326e5751SDongjin Kim enable-active-high; 159326e5751SDongjin Kim }; 160326e5751SDongjin Kim 161326e5751SDongjin Kim vddao_1v8: regulator-vddao_1v8 { 162326e5751SDongjin Kim compatible = "regulator-fixed"; 163326e5751SDongjin Kim regulator-name = "VDDAO_1V8"; 164326e5751SDongjin Kim regulator-min-microvolt = <1800000>; 165326e5751SDongjin Kim regulator-max-microvolt = <1800000>; 166326e5751SDongjin Kim vin-supply = <&vddao_3v3>; 167326e5751SDongjin Kim regulator-always-on; 168326e5751SDongjin Kim }; 169326e5751SDongjin Kim 170326e5751SDongjin Kim vddao_3v3: regulator-vddao_3v3 { 171326e5751SDongjin Kim compatible = "regulator-fixed"; 172326e5751SDongjin Kim regulator-name = "VDDAO_3V3"; 173326e5751SDongjin Kim regulator-min-microvolt = <3300000>; 174326e5751SDongjin Kim regulator-max-microvolt = <3300000>; 175326e5751SDongjin Kim vin-supply = <&main_12v>; 176326e5751SDongjin Kim regulator-always-on; 177326e5751SDongjin Kim }; 178326e5751SDongjin Kim 179326e5751SDongjin Kim hdmi-connector { 180326e5751SDongjin Kim compatible = "hdmi-connector"; 181326e5751SDongjin Kim type = "a"; 182326e5751SDongjin Kim 183326e5751SDongjin Kim port { 184326e5751SDongjin Kim hdmi_connector_in: endpoint { 185326e5751SDongjin Kim remote-endpoint = <&hdmi_tx_tmds_out>; 186326e5751SDongjin Kim }; 187326e5751SDongjin Kim }; 188326e5751SDongjin Kim }; 189326e5751SDongjin Kim}; 190326e5751SDongjin Kim 191326e5751SDongjin Kim&cpu0 { 192326e5751SDongjin Kim cpu-supply = <&vddcpu>; 193326e5751SDongjin Kim operating-points-v2 = <&cpu_opp_table>; 194326e5751SDongjin Kim clocks = <&clkc CLKID_CPU_CLK>; 195326e5751SDongjin Kim clock-latency = <50000>; 196326e5751SDongjin Kim}; 197326e5751SDongjin Kim 198326e5751SDongjin Kim&cpu1 { 199326e5751SDongjin Kim cpu-supply = <&vddcpu>; 200326e5751SDongjin Kim operating-points-v2 = <&cpu_opp_table>; 201326e5751SDongjin Kim clocks = <&clkc CLKID_CPU1_CLK>; 202326e5751SDongjin Kim clock-latency = <50000>; 203326e5751SDongjin Kim}; 204326e5751SDongjin Kim 205326e5751SDongjin Kim&cpu2 { 206326e5751SDongjin Kim cpu-supply = <&vddcpu>; 207326e5751SDongjin Kim operating-points-v2 = <&cpu_opp_table>; 208326e5751SDongjin Kim clocks = <&clkc CLKID_CPU2_CLK>; 209326e5751SDongjin Kim clock-latency = <50000>; 210326e5751SDongjin Kim}; 211326e5751SDongjin Kim 212326e5751SDongjin Kim&cpu3 { 213326e5751SDongjin Kim cpu-supply = <&vddcpu>; 214326e5751SDongjin Kim operating-points-v2 = <&cpu_opp_table>; 215326e5751SDongjin Kim clocks = <&clkc CLKID_CPU3_CLK>; 216326e5751SDongjin Kim clock-latency = <50000>; 217326e5751SDongjin Kim}; 218326e5751SDongjin Kim 219326e5751SDongjin Kim&ext_mdio { 220326e5751SDongjin Kim external_phy: ethernet-phy@0 { 221326e5751SDongjin Kim /* Realtek RTL8211F (0x001cc916) */ 222326e5751SDongjin Kim reg = <0>; 223326e5751SDongjin Kim max-speed = <1000>; 224326e5751SDongjin Kim 225326e5751SDongjin Kim interrupt-parent = <&gpio_intc>; 226326e5751SDongjin Kim /* MAC_INTR on GPIOZ_14 */ 227326e5751SDongjin Kim interrupts = <26 IRQ_TYPE_LEVEL_LOW>; 228326e5751SDongjin Kim }; 229326e5751SDongjin Kim}; 230326e5751SDongjin Kim 231326e5751SDongjin Kimðmac { 232326e5751SDongjin Kim pinctrl-0 = <ð_pins>, <ð_rgmii_pins>; 233326e5751SDongjin Kim pinctrl-names = "default"; 234326e5751SDongjin Kim status = "okay"; 235326e5751SDongjin Kim phy-mode = "rgmii"; 236326e5751SDongjin Kim phy-handle = <&external_phy>; 237326e5751SDongjin Kim amlogic,tx-delay-ns = <2>; 238326e5751SDongjin Kim}; 239326e5751SDongjin Kim 240326e5751SDongjin Kim&gpio { 241326e5751SDongjin Kim gpio-line-names = 242326e5751SDongjin Kim /* GPIOZ */ 243326e5751SDongjin Kim "", "", "", "", "", "", "", "", 244326e5751SDongjin Kim "", "", "", "", "", "", "", "", 245326e5751SDongjin Kim /* GPIOH */ 246326e5751SDongjin Kim "", "", "", "", "", 247326e5751SDongjin Kim "PIN_36", /* GPIOH_5 */ 248326e5751SDongjin Kim "PIN_26", /* GPIOH_6 */ 249326e5751SDongjin Kim "PIN_32", /* GPIOH_7 */ 250326e5751SDongjin Kim "", 251326e5751SDongjin Kim /* BOOT */ 252326e5751SDongjin Kim "", "", "", "", "", "", "", "", 253326e5751SDongjin Kim "", "", "", "", "", "", "", "", 254326e5751SDongjin Kim /* GPIOC */ 255326e5751SDongjin Kim "", "", "", "", "", "", "", "", 256326e5751SDongjin Kim /* GPIOA */ 257326e5751SDongjin Kim "", "", "", "", "", "", "", "", 258326e5751SDongjin Kim "", "", "", "", "", "", 259326e5751SDongjin Kim "PIN_27", /* GPIOA_14 */ 260326e5751SDongjin Kim "PIN_28", /* GPIOA_15 */ 261326e5751SDongjin Kim /* GPIOX */ 262326e5751SDongjin Kim "PIN_16", /* GPIOX_0 */ 263326e5751SDongjin Kim "PIN_18", /* GPIOX_1 */ 264326e5751SDongjin Kim "PIN_22", /* GPIOX_2 */ 265326e5751SDongjin Kim "PIN_11", /* GPIOX_3 */ 266326e5751SDongjin Kim "PIN_13", /* GPIOX_4 */ 267326e5751SDongjin Kim "PIN_7", /* GPIOX_5 */ 268326e5751SDongjin Kim "PIN_33", /* GPIOX_6 */ 269326e5751SDongjin Kim "PIN_15", /* GPIOX_7 */ 270326e5751SDongjin Kim "PIN_19", /* GPIOX_8 */ 271326e5751SDongjin Kim "PIN_21", /* GPIOX_9 */ 272326e5751SDongjin Kim "PIN_24", /* GPIOX_10 */ 273326e5751SDongjin Kim "PIN_23", /* GPIOX_11 */ 274326e5751SDongjin Kim "PIN_8", /* GPIOX_12 */ 275326e5751SDongjin Kim "PIN_10", /* GPIOX_13 */ 276326e5751SDongjin Kim "PIN_29", /* GPIOX_14 */ 277326e5751SDongjin Kim "PIN_31", /* GPIOX_15 */ 278326e5751SDongjin Kim "PIN_12", /* GPIOX_16 */ 279326e5751SDongjin Kim "PIN_3", /* GPIOX_17 */ 280326e5751SDongjin Kim "PIN_5", /* GPIOX_18 */ 281326e5751SDongjin Kim "PIN_35"; /* GPIOX_19 */ 282326e5751SDongjin Kim 283326e5751SDongjin Kim /* 284326e5751SDongjin Kim * WARNING: The USB Hub on the Odroid-C4 needs a reset signal 285326e5751SDongjin Kim * to be turned high in order to be detected by the USB Controller 286326e5751SDongjin Kim * This signal should be handled by a USB specific power sequence 287326e5751SDongjin Kim * in order to reset the Hub when USB bus is powered down. 288326e5751SDongjin Kim */ 289326e5751SDongjin Kim usb-hub { 290326e5751SDongjin Kim gpio-hog; 291326e5751SDongjin Kim gpios = <GPIOH_4 GPIO_ACTIVE_HIGH>; 292326e5751SDongjin Kim output-high; 293326e5751SDongjin Kim line-name = "usb-hub-reset"; 294326e5751SDongjin Kim }; 295326e5751SDongjin Kim}; 296326e5751SDongjin Kim 297326e5751SDongjin Kim&gpio_ao { 298326e5751SDongjin Kim gpio-line-names = 299326e5751SDongjin Kim /* GPIOAO */ 300326e5751SDongjin Kim "", "", "", "", 301326e5751SDongjin Kim "PIN_47", /* GPIOAO_4 */ 302326e5751SDongjin Kim "", "", 303326e5751SDongjin Kim "PIN_45", /* GPIOAO_7 */ 304326e5751SDongjin Kim "PIN_46", /* GPIOAO_8 */ 305326e5751SDongjin Kim "PIN_44", /* GPIOAO_9 */ 306326e5751SDongjin Kim "PIN_42", /* GPIOAO_10 */ 307326e5751SDongjin Kim "", 308326e5751SDongjin Kim /* GPIOE */ 309326e5751SDongjin Kim "", "", ""; 310326e5751SDongjin Kim}; 311326e5751SDongjin Kim 312326e5751SDongjin Kim&hdmi_tx { 313326e5751SDongjin Kim status = "okay"; 314326e5751SDongjin Kim pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>; 315326e5751SDongjin Kim pinctrl-names = "default"; 316326e5751SDongjin Kim hdmi-supply = <&vcc_5v>; 317326e5751SDongjin Kim}; 318326e5751SDongjin Kim 319326e5751SDongjin Kim&hdmi_tx_tmds_port { 320326e5751SDongjin Kim hdmi_tx_tmds_out: endpoint { 321326e5751SDongjin Kim remote-endpoint = <&hdmi_connector_in>; 322326e5751SDongjin Kim }; 323326e5751SDongjin Kim}; 324326e5751SDongjin Kim 325326e5751SDongjin Kim&ir { 326326e5751SDongjin Kim status = "okay"; 327326e5751SDongjin Kim pinctrl-0 = <&remote_input_ao_pins>; 328326e5751SDongjin Kim pinctrl-names = "default"; 329326e5751SDongjin Kim linux,rc-map-name = "rc-odroid"; 330326e5751SDongjin Kim}; 331326e5751SDongjin Kim 332326e5751SDongjin Kim&pwm_AO_cd { 333326e5751SDongjin Kim pinctrl-0 = <&pwm_ao_d_e_pins>; 334326e5751SDongjin Kim pinctrl-names = "default"; 335326e5751SDongjin Kim clocks = <&xtal>; 336326e5751SDongjin Kim clock-names = "clkin1"; 337326e5751SDongjin Kim status = "okay"; 338326e5751SDongjin Kim}; 339326e5751SDongjin Kim 340326e5751SDongjin Kim&saradc { 341326e5751SDongjin Kim status = "okay"; 342326e5751SDongjin Kim}; 343326e5751SDongjin Kim 344326e5751SDongjin Kim/* SD card */ 345326e5751SDongjin Kim&sd_emmc_b { 346326e5751SDongjin Kim status = "okay"; 347326e5751SDongjin Kim pinctrl-0 = <&sdcard_c_pins>; 348326e5751SDongjin Kim pinctrl-1 = <&sdcard_clk_gate_c_pins>; 349326e5751SDongjin Kim pinctrl-names = "default", "clk-gate"; 350326e5751SDongjin Kim 351326e5751SDongjin Kim bus-width = <4>; 352326e5751SDongjin Kim cap-sd-highspeed; 353326e5751SDongjin Kim max-frequency = <200000000>; 354326e5751SDongjin Kim sd-uhs-sdr12; 355326e5751SDongjin Kim sd-uhs-sdr25; 356326e5751SDongjin Kim sd-uhs-sdr50; 357326e5751SDongjin Kim sd-uhs-sdr104; 358326e5751SDongjin Kim disable-wp; 359326e5751SDongjin Kim 360326e5751SDongjin Kim cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; 361326e5751SDongjin Kim vmmc-supply = <&tflash_vdd>; 362326e5751SDongjin Kim vqmmc-supply = <&tf_io>; 363326e5751SDongjin Kim}; 364326e5751SDongjin Kim 365326e5751SDongjin Kim/* eMMC */ 366326e5751SDongjin Kim&sd_emmc_c { 367326e5751SDongjin Kim status = "okay"; 368326e5751SDongjin Kim pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; 369326e5751SDongjin Kim pinctrl-1 = <&emmc_clk_gate_pins>; 370326e5751SDongjin Kim pinctrl-names = "default", "clk-gate"; 371326e5751SDongjin Kim 372326e5751SDongjin Kim bus-width = <8>; 373326e5751SDongjin Kim cap-mmc-highspeed; 374326e5751SDongjin Kim mmc-ddr-1_8v; 375326e5751SDongjin Kim mmc-hs200-1_8v; 376326e5751SDongjin Kim max-frequency = <200000000>; 377326e5751SDongjin Kim disable-wp; 378326e5751SDongjin Kim 379326e5751SDongjin Kim mmc-pwrseq = <&emmc_pwrseq>; 380326e5751SDongjin Kim vmmc-supply = <&vcc_3v3>; 381326e5751SDongjin Kim vqmmc-supply = <&flash_1v8>; 382326e5751SDongjin Kim}; 383326e5751SDongjin Kim 384326e5751SDongjin Kim&uart_AO { 385326e5751SDongjin Kim status = "okay"; 386326e5751SDongjin Kim pinctrl-0 = <&uart_ao_a_pins>; 387326e5751SDongjin Kim pinctrl-names = "default"; 388326e5751SDongjin Kim}; 389326e5751SDongjin Kim 390326e5751SDongjin Kim&usb { 391326e5751SDongjin Kim status = "okay"; 392326e5751SDongjin Kim vbus-supply = <&usb_pwr_en>; 393326e5751SDongjin Kim}; 394326e5751SDongjin Kim 395326e5751SDongjin Kim&usb2_phy0 { 396326e5751SDongjin Kim phy-supply = <&vcc_5v>; 397326e5751SDongjin Kim}; 398326e5751SDongjin Kim 399326e5751SDongjin Kim&usb2_phy1 { 400326e5751SDongjin Kim /* Enable the hub which is connected to this port */ 401326e5751SDongjin Kim phy-supply = <&hub_5v>; 402326e5751SDongjin Kim}; 403