1*d04f7299Sandvar /* $NetBSD: ite8181reg.h,v 1.6 2024/07/05 19:33:39 andvar Exp $ */ 2938b01e6Ssato 3938b01e6Ssato /*- 4938b01e6Ssato * Copyright (c) 2000 SATO Kazumi 5938b01e6Ssato * All rights reserved. 6938b01e6Ssato * 7938b01e6Ssato * Redistribution and use in source and binary forms, with or without 8938b01e6Ssato * modification, are permitted provided that the following conditions 9938b01e6Ssato * are met: 10938b01e6Ssato * 1. Redistributions of source code must retain the above copyright 11938b01e6Ssato * notice, this list of conditions and the following disclaimer. 12938b01e6Ssato * 2. Redistributions in binary form must reproduce the above copyright 13938b01e6Ssato * notice, this list of conditions and the following disclaimer in the 14938b01e6Ssato * documentation and/or other materials provided with the distribution. 15938b01e6Ssato * 16938b01e6Ssato * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17938b01e6Ssato * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18938b01e6Ssato * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19938b01e6Ssato * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20938b01e6Ssato * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21938b01e6Ssato * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22938b01e6Ssato * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23938b01e6Ssato * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24938b01e6Ssato * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25938b01e6Ssato * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26938b01e6Ssato * SUCH DAMAGE. 27938b01e6Ssato * 28938b01e6Ssato */ 29938b01e6Ssato 30938b01e6Ssato /* ITE8181 configuration registers */ 31938b01e6Ssato #define ITE8181_CONF_OFFSET ((8192 -1) * 1024) /* offset of config reg */ 32*d04f7299Sandvar #define ITE8181_ID 0x00 /* Device ID, Vendor ID */ 33938b01e6Ssato #define ITE8181_DATA_ID 0x81811283 34938b01e6Ssato #define ITE8181_PRODUCT_ID 0x8181 35938b01e6Ssato #define ITE8181_VENDER_ID 0x1283 36938b01e6Ssato #define ITE8181_SCMD 0x04 /* Status, Command Reg. */ 37938b01e6Ssato #define ITE8181_CLASS 0x08 /* Class, Sub-class, PRG, revision */ 38938b01e6Ssato #define ITE8181_DATA_CLASS 0x03800000 39938b01e6Ssato #define ITE8181_CLASS_MASK 0xffff0000 40938b01e6Ssato #define ITE8181_REV_MASK 0x000000ff 4114217cbfSandvar #define ITE8181_MBA 0x10 /* Memory Base Address(4MB boundary) */ 42ee1b4065Swiz #define ITE8181_GBA 0x14 /* GUI Base Address(32KB boundary) */ 43938b01e6Ssato #define ITE8181_SBA 0x18 /* Graphic Base Address (64KB boundary) */ 44938b01e6Ssato #define ITE8181_TEST 0x40 /* Test Reg. */ 45938b01e6Ssato #define ITE8181_STANDBY 0x44 /* Standby Reg. */ 46938b01e6Ssato #define ITE8181_DATA_PLL2_TEST 0xc0000 /* PLL2 is test mode */ 47938b01e6Ssato #define ITE8181_DATA_PLL1_TEST 0x30000 /* PLL1 is test mode */ 48938b01e6Ssato #define ITE8181_DATA_PLL2_RESET 0x8000 /* PLL2 reset */ 49938b01e6Ssato #define ITE8181_DATA_PLL1_RESET 0x4000 /* PLL1 reset */ 50938b01e6Ssato #define ITE8181_DATA_PLL2_PWDOWN 0x2000 /* PLL2 powerdown */ 51938b01e6Ssato #define ITE8181_DATA_PLL1_PWDOWN 0x1000 /* PLL1 powerdown */ 5214217cbfSandvar #define ITE8181_DATA_PALETTESTBY 0x0200 /* Palette RAM standby */ 53938b01e6Ssato #define ITE8181_DATA_CURSORSTBY 0x0100 /* Cursor standby */ 54938b01e6Ssato #define ITE8181_DATA_BITBLTSTBY 0x0080 /* BitBlt engine standby */ 55938b01e6Ssato #define ITE8181_DATA_LINESTBY 0x0040 /* Line Draw standby */ 56938b01e6Ssato #define ITE8181_DATA_DACCLKSTOP 0x0020 /* DAC Clock stop */ 57938b01e6Ssato #define ITE8181_DATA_DACPOWERON 0x0010 /* DAC Power ON */ 58938b01e6Ssato #define ITE8181_DATA_GATEPLL2IN 0x0008 /* Gate PLL2 input clock */ 59938b01e6Ssato #define ITE8181_DATA_GATEPLL1IN 0x0004 /* Gate PLL1 input clock */ 60938b01e6Ssato #define ITE8181_DATA_CLOCKSTOP 0x0001 /* 14.318MHZ CLock Stop */ 61938b01e6Ssato #define ITE8181_PLL1 0x48 /* PLL1 Reg. */ 62938b01e6Ssato #define ITE8181_PLL2 0x4c /* PLL2 Reg. */ 63938b01e6Ssato 64938b01e6Ssato /* ITE8181 GUI 32bit registers */ 65938b01e6Ssato #define ITE8181_GUI_BSLE 0x00 /* BitBlt src/Line Draw End */ 66938b01e6Ssato #define ITE8181_GUI_BDLS 0x04 /* BitBlt dst/Line Draw Start */ 67938b01e6Ssato #define ITE8181_GUI_BPOA 0x08 /* BitBlt Pattern Offset Address */ 68*d04f7299Sandvar #define ITE8181_GUI_BWH 0x0c /* BitBlt Width, Height */ 69938b01e6Ssato #define ITE8181_GUI_BSO 0x10 /* BitBlt Screen Offset */ 70*d04f7299Sandvar #define ITE8181_GUI_FCR 0x14 /* Foreground Color Reg. */ 71*d04f7299Sandvar #define ITE8181_GUI_BCR 0x18 /* Background Color Reg. */ 72938b01e6Ssato #define ITE8181_GUI_BC 0x1c /* BitBlt Control */ 73938b01e6Ssato #define ITE8181_GUI_BS 0x20 /* BitBlt Status */ 74938b01e6Ssato #define ITE8181_GUI_ASDS 0x24 /* Line Draw Axial Step, Diagonal Step */ 75938b01e6Ssato #define ITE8181_GUI_LET 0x28 /* Line Draw Error Term/ Pixel Count */ 76938b01e6Ssato #define ITE8181_GUI_LST 0x2c /* Scissor Top */ 77938b01e6Ssato #define ITE8181_GUI_LSB 0x30 /* Scissor Bottom */ 78938b01e6Ssato #define ITE8181_GUI_LSR 0x34 /* Line Style Register */ 79938b01e6Ssato #define ITE8181_GUI_SSVS 0x38 /* Short Stroke Vector Spec */ 80938b01e6Ssato #define ITE8181_GUI_MR 0x4c /* Misc Reg. */ 81938b01e6Ssato #define ITE8181_GUI_PIO 0x40000 /* Pixel I/port for System Data */ 82938b01e6Ssato 83938b01e6Ssato /* ITE8181 GUI 8bit registers */ 84938b01e6Ssato #define ITE8181_GUI_C1C 0x100 /* Cursor1 Control Reg. */ 85938b01e6Ssato #define ITE8181_GUI_C1O 0x101 /* Cursor1 Offset Reg. */ 86938b01e6Ssato #define ITE8181_GUI_C1F 0x102 /* Cursor1 Feature Reg. */ 87938b01e6Ssato #define ITE8181_GUI_C1SAH 0x103 /* Icon Map Address MSB */ 88938b01e6Ssato #define ITE8181_GUI_C1SAL 0x108 /* Icon Map Address LSB */ 89938b01e6Ssato #define ITE8181_GUI_C1LPX 0x109 /* Cursor Clipping X Coord Reg. */ 90938b01e6Ssato #define ITE8181_GUI_C1LPY 0x10a /* Cursor Clipping Y Coord Reg. */ 91938b01e6Ssato #define ITE8181_GUI_CC0R0 0x110 /* Cursor Color 0 Reg. */ 92938b01e6Ssato #define ITE8181_GUI_CC0R1 0x111 93938b01e6Ssato #define ITE8181_GUI_CC0R2 0x112 94938b01e6Ssato #define ITE8181_GUI_CC0R3 0x113 95938b01e6Ssato #define ITE8181_GUI_CC1R0 0x114 /* Cursor Color 1 Reg. */ 96938b01e6Ssato #define ITE8181_GUI_CC1R1 0x115 97938b01e6Ssato #define ITE8181_GUI_CC1R2 0x116 98938b01e6Ssato #define ITE8181_GUI_CC1R3 0x117 99938b01e6Ssato #define ITE8181_GUI_CC2R0 0x118 /* Cursor Color 2 Reg. */ 100938b01e6Ssato #define ITE8181_GUI_CC2R1 0x119 101938b01e6Ssato #define ITE8181_GUI_CC2R2 0x11a 102938b01e6Ssato #define ITE8181_GUI_CC2R3 0x11b 103938b01e6Ssato #define ITE8181_GUI_C1XC0 0x120 /* cursor 1 X coord bits[7:0] */ 104938b01e6Ssato #define ITE8181_GUI_C1XC1 0x121 /* cursor 1 X coord bits[11:8] */ 105938b01e6Ssato #define ITE8181_GUI_C1YC0 0x122 /* cursor 1 Y coord bits[7:0] */ 106938b01e6Ssato #define ITE8181_GUI_C1YC1 0x123 /* cursor 1 Y coord bits[11:8] */ 107938b01e6Ssato 108938b01e6Ssato /* Extension Mode A registers */ 109938b01e6Ssato #define ITE8181_EMA_EXAX 0x03d6 /* Extension Controller Index Reg. */ 110938b01e6Ssato #define ITE8181_EMA_EXADATA 0x03d7 /* Extension Controller Data. */ 111938b01e6Ssato 112938b01e6Ssato #define ITE8181_EMA_ENABLEEMA 0x0b /* Extension Index Enable Reg. */ 113938b01e6Ssato #define ITE8181_EMA_ENABLEPASS 0xec /* EMA enable passwd(w) */ 114938b01e6Ssato #define ITE8181_EMA_DISABLEPASS 0xce /* EMA disable passwd(w) */ 115938b01e6Ssato #define ITE8181_EMA_ENABLED 0x01 /* EMA enabled (r) */ 116938b01e6Ssato 117*d04f7299Sandvar /* ITE8181 LCD Controller Timing Reg. */ 118a5bf3b3cSwiz #define ITE8181_EMA_HSIZE 0x80 /* LCD Controller H size Reg. */ 119938b01e6Ssato #define ITE8181_EMA_HALIGN 0x81 /* LCD H Align Adjust Reg. */ 120938b01e6Ssato #define ITE8181_EMA_HRETRACE 0x82 /* LCD H Retrace Adjust Reg. */ 121938b01e6Ssato #define ITE8181_EMA_HADJUST 0x83 /* LCD H Adjust Reg. */ 122938b01e6Ssato #define ITE8181_EMA_HSYNCDELAY 0x84 /* LCD HSYNC Delay Reg. */ 123938b01e6Ssato #define ITE8181_EMA_VSIZE 0x85 /* LCD V size Reg. */ 124938b01e6Ssato #define ITE8181_EMA_VSYNC_DELAY 0x86 /* LCD VSYNC Delay Reg. */ 125938b01e6Ssato #define ITE8181_EMA_OVERFLOW 0x87 /* LCD Overflow Reg. */ 126938b01e6Ssato #define ITE8181_EMA_MODULATION 0x88 /* LCD Modulation Reg. */ 127938b01e6Ssato #define ITE8181_EMA_EXTMODE 0x89 /* LCD Ext Mode Tuning Reg. */ 128938b01e6Ssato #define ITE8181_EMA_VALIGNA 0x8a /* LCD V Align Adjust Reg A(350) */ 129938b01e6Ssato #define ITE8181_EMA_VALIGNB 0x8b /* LCD V Align Adjust Reg B(400) */ 130938b01e6Ssato #define ITE8181_EMA_VALIGNC 0x8c /* LCD V Align Adjust Reg C(>=480) */ 131*d04f7299Sandvar #define ITE8181_EMA_VRETRACE 0x8d /* LCD V Retrace Adjust Reg. */ 132938b01e6Ssato #define ITE8181_EMA_VOVERFLOW 0x8e /* LCD V Adjust Overflow Reg. */ 133938b01e6Ssato 134938b01e6Ssato /* ITE8181 LCD Controller Reg. */ 135938b01e6Ssato #define ITE8181_EMA_TYPE 0x90 /* LCD Type Select Reg. */ 136938b01e6Ssato #define ITE8181_EMA_CONTROL 0x91 /* LCD Controller Reg. */ 137938b01e6Ssato #define ITE8181_EMA_PINSEL 0x92 /* LCD Controller Pin Select Reg. */ 138938b01e6Ssato #define ITE8181_EMA_MISCCTL 0x93 /* LCD Misc Control Reg. */ 139938b01e6Ssato 140938b01e6Ssato /* ITE8181 LCD Controller Power Management Register */ 141938b01e6Ssato #define ITE8181_EMA_LCDPOWER 0x98 142938b01e6Ssato #define ITE8181_LCDSTANDBY 0x20 /* LCD S/W Standby */ 143938b01e6Ssato #define ITE8181_EMA_LCDPOWERSEQ 0x9a 144938b01e6Ssato #define ITE8181_PUP2 0x80 /* Panel Power UP phase 2 */ 145938b01e6Ssato #define ITE8181_PUP1 0x40 /* Panel Power UP phase 1 */ 146938b01e6Ssato #define ITE8181_PUP0 0x20 /* Panel Power UP phase 0 */ 147938b01e6Ssato #define ITE8181_PDP2 0x10 /* Panel Power DOWN phase 2 */ 148938b01e6Ssato #define ITE8181_PDP1 0x08 /* Panel Power DOWN phase 1 */ 149938b01e6Ssato #define ITE8181_PDP0 0x04 /* Panel Power DOWN phase 0 */ 150938b01e6Ssato #define ITE8181_EMA_LCDPOWERSTAT 0x9b /* data sheet seem to be not correct */ 151938b01e6Ssato #define ITE8181_PPTOBEMASK 0x01 /* Panel Power to be...*/ 152938b01e6Ssato #define ITE8181_PPTOBEON 0x01 /* Panel Power to be ON */ 153938b01e6Ssato #define ITE8181_PPTOBEOFF 0x00 /* Panel Power to be OFF */ 154938b01e6Ssato #define ITE8181_LCDPON 0x08 /* LCD ON? (XX no info) */ 155938b01e6Ssato #define ITE8181_LCDPSTANDBY 0x20 /* LCD STANDBY? (XX no info) */ 156938b01e6Ssato #define ITE8181_LCDPDOWN 0x40 /* LCD POWER DOWN PROGRESS(XX) */ 157938b01e6Ssato #define ITE8181_LCDPUP 0x80 /* LCD POWER UP PROGRESS (XX) */ 158938b01e6Ssato 159938b01e6Ssato /* ITE8181 LCD Controller Data Manipulation Registers */ 160938b01e6Ssato #define ITE8181_EMA_DITHERCTRL1 0xa0 /* dither control 1 */ 161938b01e6Ssato #define ITE8181_DITHER_CMASK 0xa0 /* dither enable mask */ 162938b01e6Ssato #define ITE8181_DITHER_DISABLE 0x00 /* disable */ 163938b01e6Ssato #define ITE8181_DITHER_SOMEMODE 0x40 /* dither 256/32k/64k/16M color mode */ 164938b01e6Ssato #define ITE8181_DITHER_ENABLE 0x80 /* dither in all mode */ 165938b01e6Ssato 166938b01e6Ssato #define ITE8181_DITHER_BCMASK 0x38 /* Base Color select */ 167938b01e6Ssato #define ITE8181_DITHER_BC1BIT 0x00 168938b01e6Ssato #define ITE8181_DITHER_BC2BIT 0x08 169938b01e6Ssato #define ITE8181_DITHER_BC3BIT 0x10 170938b01e6Ssato #define ITE8181_DITHER_BC4BIT 0x18 171938b01e6Ssato #define ITE8181_DITHER_BC5BIT 0x20 172938b01e6Ssato #define ITE8181_DITHER_BC6BIT 0x28 173938b01e6Ssato #define ITE8181_DITHER_BC7BIT 0x30 174938b01e6Ssato #define ITE8181_DITHER_BC8BIT 0x38 175938b01e6Ssato 176938b01e6Ssato #define ITE8181_DITHER_BSMASK 0x03 /* dither bit select */ 177938b01e6Ssato #define ITE8181_DITHER_BS6BIT 0x00 178938b01e6Ssato #define ITE8181_DITHER_BS5BIT 0x01 179938b01e6Ssato #define ITE8181_DITHER_BS4BIT 0x02 180938b01e6Ssato #define ITE8181_DITHER_BS3BIT 0x03 181938b01e6Ssato #define ITE8181_DITHER_BS2BIT 0x04 182938b01e6Ssato #define ITE8181_DITHER_BS1BIT 0x05 183938b01e6Ssato #define ITE8181_DITHER_BS0BIT 0x06 184938b01e6Ssato 185938b01e6Ssato #define ITE8181_EMA_DITHERCTRL2 0xa1 /* dither control 2 */ 186938b01e6Ssato #define ITE8181_FMS_MASK 0x40 /* frame rate modulation select */ 187938b01e6Ssato #define ITE8181_FMS_2 0x00 188938b01e6Ssato #define ITE8181_FMS_1 0x40 189938b01e6Ssato 190938b01e6Ssato #define ITE8181_GRC_MASK 0x20 /* graphics reverse control */ 191938b01e6Ssato #define ITE8181_GRC_NOGREVERSE 0x00 192938b01e6Ssato #define ITE8181_GRC_GREVERSE 0x20 193938b01e6Ssato 194938b01e6Ssato #define ITE8181_TRC_MASK 0x10 /* text reverse control */ 195938b01e6Ssato #define ITE8181_TRC_NOTREVERSE 0x00 196938b01e6Ssato #define ITE8181_TRC_TREVERSE 0x10 197938b01e6Ssato 198938b01e6Ssato #define ITE8181_CM_MASK 0x01 /* color to mono map */ 199938b01e6Ssato #define ITE8181_CM_NTSC 0x00 /* NTSC weighting */ 200938b01e6Ssato #define ITE8181_CM_GREEN 0x01 /* green only */ 201938b01e6Ssato 202938b01e6Ssato #define ITE8181_EMA_FRCCOL 0xa2 /* FRC Color */ 203938b01e6Ssato #define ITE8181_FRCCOL_MASK 0x80 /* FRC color option */ 204938b01e6Ssato #define ITE8181_FRCCOL_8 0x80 /* option1, 8 color */ 205938b01e6Ssato #define ITE8181_FRCCOL_16 0x00 /* option2, 16 color */ 206938b01e6Ssato 20714217cbfSandvar #define ITE8181_EMA_FRCPAT 0xa3 /* select frame rate pattern */ 208938b01e6Ssato #define ITE8181_FRCPAT_PROGRAM 0x80 209938b01e6Ssato #define ITE8181_FRCPAT_CONSTANT 0x00 210938b01e6Ssato 211938b01e6Ssato #define ITE8181_EMA_FBADDR1 0xa8 /* FB addr1 [21:14] */ 212938b01e6Ssato #define ITE8181_EMA_FBADDR2 0xa9 /* FB addr2 [21:14] */ 213938b01e6Ssato #define ITE8181_EMA_FBADDR3 0xaa /* FB addr3 [21:14] */ 214938b01e6Ssato 215938b01e6Ssato #define ITE8181_EMA_REDBCOLOR 0xaa /* Red Border color */ 216938b01e6Ssato #define ITE8181_EMA_GREENBCOLOR 0xab /* Green Border color */ 217938b01e6Ssato #define ITE8181_EMA_BLUEBCOLOR 0xac /* Blue Border color */ 218938b01e6Ssato 219938b01e6Ssato #define ITE8181_EMA_DISPERSION1 0xb0 /* Dispersion-1 B0-B7 */ 220938b01e6Ssato #define ITE8181_EMA_DISPERSION2 0xb8 /* Dispersion-2 B8-BF */ 221938b01e6Ssato 222938b01e6Ssato #define ITE8181_EMA_FRCPAT0 0xc0 /* Frame Rate Pattern0 C0(lsb)-C1(msb) */ 223938b01e6Ssato #define ITE8181_EMA_FRCPAT1 0xc2 /* Frame Rate Pattern1 C2(lsb)-C3(msb) */ 224938b01e6Ssato #define ITE8181_EMA_FRCPAT2 0xc4 /* Frame Rate Pattern2 C4(lsb)-C5(msb) */ 225938b01e6Ssato #define ITE8181_EMA_FRCPAT3 0xc6 /* Frame Rate Pattern3 C6(lsb)-C7(msb) */ 226938b01e6Ssato #define ITE8181_EMA_FRCPAT4 0xc8 /* Frame Rate Pattern4 C8(lsb)-C9(msb) */ 227938b01e6Ssato #define ITE8181_EMA_FRCPAT5 0xca /* Frame Rate Pattern5 CA(lsb)-CB(msb) */ 228938b01e6Ssato #define ITE8181_EMA_FRCPAT6 0xcc /* Frame Rate Pattern6 CC(lsb)-CD(msb) */ 229938b01e6Ssato #define ITE8181_EMA_FRCPAT7 0xce /* Frame Rate Pattern7 CE(lsb)-CF(msb) */ 230938b01e6Ssato #define ITE8181_EMA_FRCPAT8 0xd0 /* Frame Rate Pattern8 D0(lsb)-D1(msb) */ 231938b01e6Ssato #define ITE8181_EMA_FRCPAT9 0xd2 /* Frame Rate Pattern9 D2(lsb)-D3(msb) */ 232938b01e6Ssato #define ITE8181_EMA_FRCPAT10 0xd4 /* Frame Rate Pattern10 D4(lsb)-D5(msb) */ 233938b01e6Ssato #define ITE8181_EMA_FRCPAT11 0xd6 /* Frame Rate Pattern11 D6(lsb)-D7(msb) */ 234938b01e6Ssato #define ITE8181_EMA_FRCPAT12 0xd8 /* Frame Rate Pattern12 D8(lsb)-D9(msb) */ 235938b01e6Ssato #define ITE8181_EMA_FRCPAT13 0xda /* Frame Rate Pattern13 DA(lsb)-DB(msb) */ 236938b01e6Ssato #define ITE8181_EMA_FRCPAT14 0xdc /* Frame Rate Pattern14 DC(lsb)-DD(msb) */ 237938b01e6Ssato #define ITE8181_EMA_FRCPAT15 0xde /* Frame Rate Pattern15 DE(lsb)-DF(msb) */ 238938b01e6Ssato 239938b01e6Ssato 240938b01e6Ssato /* Extension Mode B registers */ 241938b01e6Ssato #define ITE8181_EMB_EXBX 0x03ce /* Extension Controller Index Reg. */ 242938b01e6Ssato #define ITE8181_EMB_EXBDATA 0x03cf /* Extension Controller Data. */ 243938b01e6Ssato 244938b01e6Ssato #define ITE8181_EMA_ENABLEEMA 0x0b /* Extension Index Enable Reg. */ 245938b01e6Ssato #define ITE8181_EMB_ENABLEPASS 0xca /* EMB enable passwd(w) */ 246938b01e6Ssato #define ITE8181_EMB_DISABLEPASS 0x35 /* EMB disable passwd(w) */ 247938b01e6Ssato #define ITE8181_EMB_ENABLED 0x01 /* EMB enabled (read) */ 248938b01e6Ssato 249938b01e6Ssato /* XXX - not yet all - */ 250938b01e6Ssato 251938b01e6Ssato /* end */ 252