diff options
author | Marcin Bukat <marcin.bukat@gmail.com> | 2014-11-28 00:18:02 +0100 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2014-11-28 19:39:15 +0100 |
commit | 5e1381be8719d0eeace0e1d2b0fdd6c61d60cd63 (patch) | |
tree | 32e264922c4de6e093e1bec49adfa0e57d453b14 /utils/regtools | |
parent | e99c036ed1b96abf0c4b196e5f58ef93b7effdfe (diff) |
qeditor: add clock analyser for ATJ213x
Change-Id: I5f5a3537d1ddf6b02684dd4c1dd13be862d3a918
Reviewed-on: http://gerrit.rockbox.org/1054
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Diffstat (limited to 'utils/regtools')
-rw-r--r-- | utils/regtools/desc/regs-atj213x.xml | 163 | ||||
-rw-r--r-- | utils/regtools/qeditor/std_analysers.cpp | 229 | ||||
-rw-r--r-- | utils/regtools/qeditor/std_analysers.h | 1 |
3 files changed, 377 insertions, 16 deletions
diff --git a/utils/regtools/desc/regs-atj213x.xml b/utils/regtools/desc/regs-atj213x.xml index f43c6287bd..27b348f80d 100644 --- a/utils/regtools/desc/regs-atj213x.xml +++ b/utils/regtools/desc/regs-atj213x.xml @@ -70,41 +70,96 @@ <addr name="CMU" addr="0xb0010000"/> <reg name="COREPLL" desc=""> <addr name="COREPLL" addr="0x0"/> + <field name="RESERVED31_11" desc="" bitrange="31:11"/> + <field name="CPBY" desc="Core PLL Bypass " bitrange="10:10"/> + <field name="CPBI" desc="Core PLL Bias " bitrange="9:8"/> + <field name="CPEN" desc="Core PLL Enable " bitrange="7:7"/> + <field name="HOEN" desc="High Oscillator Enable" bitrange="6:6"/> + <field name="CPCK" desc="COREPLLout = CPCK * 6 (MHz) (in range 12 - 378MHz)" bitrange="5:0"/> </reg> <reg name="DSPPLL" desc=""> <addr name="DSPPLL" addr="0x4"/> + <field name="RESERVED31_9" desc="" bitrange="31:9"/> + <field name="DPBI" desc="DSP PLL Bias" bitrange="8:7"/> + <field name="DPEN" desc="DSP PLL Enable" bitrange="6:6"/> + <field name="DPCK" desc="DSPPLLout = DPCK * 6 (MHz) (in range 12-378MHz)" bitrange="5:0"/> </reg> <reg name="AUDIOPLL" desc=""> <addr name="AUDIOPLL" addr="0x8"/> + <field name="RESERVED31_12" desc="" bitrange="31:12"/> + <field name="ADCPLL" desc="Audio PLL CLk Control" bitrange="11:11"/> + <field name="ADCCLK" desc="ADC Clock Divisor, output is FS*256" bitrange="10:8"/> + <field name="RESERVED7" desc="" bitrange="7:7"/> + <field name="APBI" desc="Audio PLL Bias" bitrange="6:5"/> + <field name="APEN" desc="Audio PLL Enable" bitrange="4:4"/> + <field name="DACPLL" desc="DAC PLL CLk Control" bitrange="3:3"/> + <field name="DACCLK" desc="DAC Clock Divisor, output is FS*256" bitrange="2:0"/> </reg> - <reg name="BUSCLK" desc=""> + <reg name="BUSCLK" desc="Bus CLK Control Register"> <addr name="BUSCLK" addr="0xc"/> - </reg> - <reg name="SDRCLK" desc=""> + <field name="KEYE" desc="Key Wakeup Enable" bitrange="31:31"/> + <field name="ALME" desc="Alarm Wakeup Enable" bitrange="30:30"/> + <field name="SIRE" desc="SIRQ Wakeup Enable" bitrange="29:29"/> + <field name="RESERVED28" desc="" bitrange="28:28"/> + <field name="USBE" desc="Usb Wakeup Enable" bitrange="27:27"/> + <field name="RESERVED26:12" desc="" bitrange="26:12"/> + <field name="PCLKDIV" desc="Peripheral CLK Divisor" bitrange="11:8"/> + <field name="CORECLKS" desc="CPU Clock Selection" bitrange="7:6"/> + <field name="SCLKDIV" desc="System Clock Divisor" bitrange="5:4"/> + <field name="CCLKDIV" desc="CPU Clock Divisor" bitrange="3:2"/> + <field name="DCEN" desc="Core CLK DC Enable" bitrange="1:1"/> + </reg> + <reg name="SDRCLK" desc="SDRAM Interface CLK Control Register"> <addr name="SDRCLK" addr="0x10"/> + <field name="RESERVED31_2" desc="" bitrange="31:2"/> + <field name="SDRDIV" desc="" bitrange="1:0"/> </reg> - <reg name="NANDCLK" desc=""> + <reg name="NANDCLK" desc="NAND Interface CLK Control Register"> <addr name="NANDCLK" addr="0x18"/> + <field name="RESERVED31_4" desc="" bitrange="31:4"/> + <field name="NANDDIV" desc="" bitrange="3:0"/> </reg> - <reg name="SDCLK" desc=""> + <reg name="SDCLK" desc="SD Interface CLK Control Register "> <addr name="SDCLK" addr="0x1c"/> + <field name="RESERVED31_6" desc="" bitrange="31:6"/> + <field name="CKEN" desc="SD Interface Clock Enable" bitrange="5:5"/> + <field name="D128" desc="Enable Divide 128 circuit" bitrange="4:4"/> + <field name="SDDIV" desc="" bitrange="3:0"/> </reg> - <reg name="MHACLK" desc=""> + <reg name="MHACLK" desc="MHA CLK Control Register"> <addr name="MHACLK" addr="0x20"/> + <field name="RESERVED31_4" desc="" bitrange="31:4"/> + <field name="MHADIV" desc="" bitrange="3:0"/> </reg> - <reg name="UART2CLK" desc=""> + <reg name="UART2CLK" desc="Uart2 CLK Control Register"> <addr name="UART2CLK" addr="0x2c"/> + <field name="RESERVED31_17" desc="" bitrange="31:17"/> + <field name="U2EN" desc="Uart2 Clock Enable " bitrange="16:16"/> + <field name="UART2DIV" desc="" bitrange="15:0"/> </reg> - <reg name="DMACLK" desc=""> + <reg name="DMACLK" desc="DMA CLK Control Register"> <addr name="DMACLK" addr="0x30"/> + <field name="RESERVED31_4" desc="" bitrange="31:4"/> + <field name="D7EN" desc="DMA 7 (Special Channel) Clock Enable" bitrange="3:3"/> + <field name="D6EN" desc="DMA 6 (Special Channel) Clock Enable" bitrange="2:2"/> + <field name="D5EN" desc="DMA 5 (Special Channel) Clock Enable" bitrange="1:1"/> + <field name="D4EN" desc="DMA 4 (Special Channel) Clock Enable" bitrange="0:0"/> </reg> - <reg name="FMCLK" desc=""> + <reg name="FMCLK" desc="FM CLK Control Register"> <addr name="FMCLK" addr="0x34"/> - </reg> - <reg name="MCACLK" desc=""> + <field name="RESERVED31_6" desc="" bitrange="31:6"/> + <field name="BCKE" desc="PWM Back Light clock Enable" bitrange="5:5"/> + <field name="BCKS" desc="Back Light CLK source select" bitrange="4:4"/> + <field name="BCKCON" desc="Divided PWM Back Light Special Clock Control" bitrange="3:2"/> + <field name="CLKS" desc="FM Clock Output Selection" bitrange="1:1"/> + <field name="OUTE" desc="FM Clock Output Enable (From Test Pin)" bitrange="0:0"/> + </reg> + <reg name="MCACLK" desc="MCA CLK Control Register"> <addr name="MCACLK" addr="0x38"/> + <field name="RESERVED31_4" desc="" bitrange="31:4"/> + <field name="MCADIV" desc="" bitrange="3:0"/> </reg> - <reg name="DEVCLKEN" desc=""> + <reg name="DEVCLKEN" desc="Device CLK Control Register"> <addr name="DEVCLKEN" addr="0x80"/> <field name="RESERVED31_27" desc="" bitrange="31:27"/> <field name="GPIO" desc="" bitrange="26:26"/> @@ -133,8 +188,36 @@ <field name="YUV" desc="" bitrange="1:1"/> <field name="RESERVED0" desc="" bitrange="0:0"/> </reg> - <reg name="DEVRST" desc=""> + <reg name="DEVRST" desc="Device Reset Control Register"> <addr name="DEVRST" addr="0x84"/> + <field name="RESERVED31" desc="" bitrange="31:31"/> + <field name="GPIO" desc="" bitrange="30:30"/> + <field name="KEY" desc="" bitrange="29:29"/> + <field name="RESERVED28" desc="" bitrange="28:28"/> + <field name="I2C" desc="" bitrange="27:27"/> + <field name="UART" desc="" bitrange="26:26"/> + <field name="RESERVED25_23" desc="" bitrange="25:23"/> + <field name="ADC" desc="" bitrange="22:22"/> + <field name="DAC" desc="" bitrange="21:21"/> + <field name="DSPC" desc="DSP control block reset" bitrange="20:20"/> + <field name="INTC" desc="" bitrange="19:19"/> + <field name="RTC" desc="" bitrange="18:18"/> + <field name="PMU" desc="" bitrange="17:17"/> + <field name="RESERVED16_14" desc="" bitrange="16:14"/> + <field name="DSPM" desc="SRAM DSP MEM reset" bitrange="13:13"/> + <field name="TVENC" desc="" bitrange="12:12"/> + <field name="YUV" desc="" bitrange="11:11"/> + <field name="MCA" desc="" bitrange="10:10"/> + <field name="USB" desc="" bitrange="9:9"/> + <field name="RESERVED8" desc="" bitrange="8:8"/> + <field name="MHA" desc="" bitrange="7:7"/> + <field name="SD" desc="" bitrange="6:6"/> + <field name="NAND" desc="" bitrange="5:5"/> + <field name="RESERVED4" desc="" bitrange="4:4"/> + <field name="DMAC" desc="" bitrange="3:3"/> + <field name="PCNT" desc="" bitrange="2:2"/> + <field name="RESERVED1" desc="" bitrange="1:1"/> + <field name="SDR" desc="SDRAM Control register and SDRAM block Reset" bitrange="0:0"/> </reg> </dev> <dev name="DAC" long_name="Digital Analog Converter" desc="" version="1.0"> @@ -369,8 +452,56 @@ </reg> </dev> <dev name="I2C" long_name="" desc="" version="1.0"> - <addr name="I2C0" addr="0xb0180000"/> - <addr name="I2C1" addr="0xb0180020"/> + <addr name="I2C1" addr="0xb0180000"/> + <addr name="I2C2" addr="0xb0180020"/> + <reg name="CTL" desc=""> + <addr name="CTL" addr="0x0"/> + <field name="RESERVED31_9" desc="" bitrange="31:9"/> + <field name="PUEN" desc="nternal Pull-up Resistor (4.7k) Enable" bitrange="8:8"/> + <field name="EN" desc="Block enable" bitrange="7:7"/> + <field name="SIE" desc="START Condition Generates IRQ Enable (only for slave mode)" bitrange="6:6"/> + <field name="IRQE" desc="IRQ Enable" bitrange="5:5"/> + <field name="MS" desc="Mode select" bitrange="4:4"> + <value name="MASTER" value="0x0" desc=""/> + <value name="SLAVE" value="0x0" desc=""/> + </field> + <field name="GBCC" desc="Generating Bus Control Condition (only for master mode)" bitrange="3:2"> + <value name="NOP" value="0x0" desc=""/> + <value name="START" value="0x1" desc=""/> + <value name="STOP" value="0x2" desc=""/> + <value name="REPEATED_START" value="0x3" desc=""/> + </field> + <field name="RB" desc="Release Bus. Writing 1 to this bit will release the clock and data line to idle. MCU should write 1 to this bit after transmitting or receiving the last bit of the whole transfer. " bitrange="1:1"/> + <field name="GRAS" desc="Generating/Receiving Acknowledge Signal" bitrange="0:0"/> + </reg> + <reg name="CLKDIV" desc=""> + <addr name="CLKDIV" addr="0x4"/> + <field name="RESERVED31_8" desc="" bitrange="31:8"/> + <field name="CLKDIV" desc="Clock Divider Factor (only for master mode). I2Cx clock (SCL) can select standard (100kbps) mode and fast (400kbps) mode. Calculating SCL is as follows: SCL=PCLK/(CLKDIV*16) " bitrange="7:0"/> + </reg> + <reg name="STAT" desc=""> + <addr name="STAT" addr="0x8"/> + <field name="RESERVED31_8" desc="" bitrange="31:8"/> + <field name="TRC" desc="Transmit/Receive Complete Bit" bitrange="7:7"/> + <field name="STPD" desc="STOP Detect Bit " bitrange="6:6"/> + <field name="STAD" desc="START Detect Bit" bitrange="5:5"/> + <field name="RWST" desc="Read/Write Status Bit (only for Slave mode)" bitrange="4:4"/> + <field name="LBST" desc="Last Byte Status Bit" bitrange="3:3"/> + <field name="IRQP" desc="IRQ Pending Bit" bitrange="2:2"/> + <field name="OVST" desc="Overflow Status Bit" bitrange="1:1"/> + <field name="WCO" desc="Writing Collision Bit" bitrange="0:0"/> + </reg> + <reg name="ADDR" desc=""> + <addr name="ADDR" addr="0xc"/> + <field name="RESERVED31_8" desc="" bitrange="31:8"/> + <field name="SDAD" desc="Slave Device Address" bitrange="7:1"/> + <field name="RWCM" desc="Read/Write Control or Match" bitrange="0:0"/> + </reg> + <reg name="DAT" desc=""> + <addr name="DAT" addr="0x10"/> + <field name="RESERVED31_8" desc="" bitrange="31:8"/> + <field name="TXRXDAT" desc="Transmit/Receive Data" bitrange="7:0"/> + </reg> </dev> <dev name="INTC" long_name="Interrupt Controller" desc="" version="1.0"> <addr name="INTC" addr="0xb0020000"/> @@ -688,6 +819,8 @@ </reg> <reg name="EN" desc=""> <addr name="EN" addr="0x8"/> + <field name="RESERVED31_1" desc="" bitrange="31:1"/> + <field name="EN" desc="" bitrange="0:0"/> </reg> <reg name="CMD" desc=""> <addr name="CMD" addr="0xc"/> diff --git a/utils/regtools/qeditor/std_analysers.cpp b/utils/regtools/qeditor/std_analysers.cpp index 8aae007093..6dcefb344f 100644 --- a/utils/regtools/qeditor/std_analysers.cpp +++ b/utils/regtools/qeditor/std_analysers.cpp @@ -33,7 +33,7 @@ QWidget *ClockAnalyser::GetWidget() bool ClockAnalyser::SupportSoc(const QString& soc_name) { - return soc_name == "imx233" || soc_name == "rk27xx"; + return (soc_name == "imx233" || soc_name == "rk27xx" || soc_name == "atj213x"); } QString ClockAnalyser::GetFreq(unsigned freq) @@ -84,10 +84,237 @@ void ClockAnalyser::FillTree() m_tree_widget->clear(); if(m_soc.GetSoc().name == "imx233") FillTreeIMX233(); else if(m_soc.GetSoc().name == "rk27xx") FillTreeRK27XX(); + else if(m_soc.GetSoc().name == "atj213x") FillTreeATJ213X(); m_tree_widget->expandAll(); m_tree_widget->resizeColumnToContents(0); } +void ClockAnalyser::FillTreeATJ213X() +{ + soc_word_t pllbypass, pllclk, en, coreclks, tmp0, tmp1, tmp2, tmp3; + + BackendHelper helper(m_io_backend, m_soc); + + // system oscillators 32.768k and 24M + QTreeWidgetItem *losc_clk = AddClock(0, "losc clk", 32768); + QTreeWidgetItem *hosc_clk = AddClock(0, "hosc clk", 24000000); + + // core pll + QTreeWidgetItem *corepll = 0; + if (helper.ReadRegisterField("CMU", "COREPLL", "CPEN", en) && + helper.ReadRegisterField("CMU", "COREPLL", "CPBY", pllbypass) && + helper.ReadRegisterField("CMU", "COREPLL", "CPCK", pllclk)) + { + corepll = AddClock(hosc_clk, "core pll", en ? FROM_PARENT : DISABLED, + pllbypass ? 1 : pllclk, pllbypass ? 1 : 4); + } + else + { + corepll = AddClock(hosc_clk, "core pll", INVALID); + } + + // dsp pll + QTreeWidgetItem *dsppll = 0; + if (helper.ReadRegisterField("CMU", "DSPPLL", "DPEN", en) && + helper.ReadRegisterField("CMU", "DSPPLL", "DPCK", pllclk)) + { + dsppll = AddClock(hosc_clk, "dsp pll", en ? FROM_PARENT : DISABLED, + pllbypass ? 1 : pllclk, pllbypass ? 1 : 4); + } + else + { + dsppll = AddClock(hosc_clk, "dsp pll", INVALID); + } + + // audio pll + QTreeWidgetItem *adcpll = 0; + QTreeWidgetItem *dacpll = 0; + if (helper.ReadRegisterField("CMU", "AUDIOPLL", "APEN", en) && + helper.ReadRegisterField("CMU", "AUDIOPLL", "ADCCLK", tmp0) && + helper.ReadRegisterField("CMU", "AUDIOPLL", "DACCLK", tmp1)) + { + if (en) + { + adcpll = AddClock(hosc_clk, "audio adc pll", tmp0 ? 22579200 : 24576000); + dacpll = AddClock(hosc_clk, "audio dac pll", tmp1 ? 22579200 : 24576000); + } + else + { + adcpll = AddClock(hosc_clk, "audio adc pll", DISABLED); + dacpll = AddClock(hosc_clk, "audio dac pll", DISABLED); + } + } + else + { + adcpll = AddClock(hosc_clk, "audio adc pll", INVALID); + dacpll = AddClock(hosc_clk, "audio dac pll", INVALID); + } + + // audio clocks + QTreeWidgetItem *adcclk = 0; + QTreeWidgetItem *dacclk = 0; + if (helper.ReadRegisterField("CMU", "AUDIOPLL", "ADCCLK", tmp0) && + helper.ReadRegisterField("CMU", "AUDIOPLL", "DACCLK", tmp1)) + { + adcclk = AddClock(adcpll, "audio adc clk", FROM_PARENT, 1, tmp0+1); + dacclk = AddClock(dacpll, "audio dac clk", FROM_PARENT, 1, tmp1+1); + } + else + { + adcclk = AddClock(adcpll, "audio adc clk", INVALID); + dacclk = AddClock(adcpll, "audio dac clk", INVALID); + } + + // cpu clock + QTreeWidgetItem *cpuclk = 0; + if (helper.ReadRegisterField("CMU", "BUSCLK", "CORECLKS", coreclks) && + helper.ReadRegisterField("CMU", "BUSCLK", "CCLKDIV", tmp0)) + { + if (coreclks == 0) + cpuclk = AddClock(losc_clk, "cpu clk", FROM_PARENT, 1, tmp0+1); + else if (coreclks == 1) + cpuclk = AddClock(hosc_clk, "cpu clk", FROM_PARENT, 1, tmp0+1); + else if (coreclks == 2) + cpuclk = AddClock(corepll, "cpu clk", FROM_PARENT, 1, tmp0+1); + else + cpuclk = AddClock(corepll, "cpu clk", INVALID); + } + else + { + cpuclk = AddClock(corepll, "cpu clk", INVALID); + } + + // system clock + QTreeWidgetItem *sysclk = 0; + if (helper.ReadRegisterField("CMU", "BUSCLK", "SCLKDIV", tmp0)) + sysclk = AddClock(cpuclk, "system clk", FROM_PARENT, 1, tmp0+1); + else + sysclk = AddClock(cpuclk, "system clk", INVALID); + + // peripherial clk + QTreeWidgetItem *pclk = 0; + if (helper.ReadRegisterField("CMU", "BUSCLK", "PCLKDIV", tmp0)) + pclk = AddClock(sysclk, "peripherial clk", FROM_PARENT, 1, tmp0 ? tmp0+1 : 2); + else + pclk = AddClock(sysclk, "peripherial clk", INVALID); + + // sdram clk + QTreeWidgetItem *sdrclk = 0; + if (helper.ReadRegisterField("CMU", "DEVCLKEN", "SDRC", en) && + helper.ReadRegisterField("CMU", "DEVCLKEN", "SDRM", tmp0) && + helper.ReadRegisterField("SDR", "EN", "EN", tmp1) && + helper.ReadRegisterField("CMU", "SDRCLK", "SDRDIV", tmp2)) + { + en &= tmp0 & tmp1; + sdrclk = AddClock(sysclk, "sdram clk", en ? FROM_PARENT: DISABLED, 1, tmp2+1); + } + else + sdrclk = AddClock(sysclk, "sdram clk", INVALID); + + // nand clk + QTreeWidgetItem *nandclk = 0; + if (helper.ReadRegisterField("CMU", "DEVCLKEN", "NAND", en) && + helper.ReadRegisterField("CMU", "NANDCLK", "NANDDIV", tmp0)) + nandclk = AddClock(corepll, "nand clk", en ? FROM_PARENT : DISABLED, 1, tmp0+1); + else + nandclk = AddClock(corepll, "nand clk", INVALID); + + // sd clk + QTreeWidgetItem *sdclk = 0; + if (helper.ReadRegisterField("CMU", "DEVCLKEN", "SD", tmp0) && + helper.ReadRegisterField("CMU", "SDCLK", "CKEN" , tmp1) && + helper.ReadRegisterField("CMU", "SDCLK", "D128" , tmp2) && + helper.ReadRegisterField("CMU", "SDCLK", "SDDIV" , tmp3)) + { + en = tmp0 & tmp1; + sdclk = AddClock(corepll, "sd clk", en ? FROM_PARENT : DISABLED, + 1, tmp2 ? 128*(tmp3+1) : (tmp3)); + } + else + sdclk = AddClock(corepll, "sd clk", INVALID); + + // mha clk + QTreeWidgetItem *mhaclk = 0; + if (helper.ReadRegisterField("CMU", "DEVCLKEN", "MHA", en) && + helper.ReadRegisterField("CMU", "MHACLK", "MHADIV", tmp1)) + mhaclk = AddClock(corepll, "mha clk", en ? FROM_PARENT : DISABLED, + 1, tmp1+1); + else + mhaclk = AddClock(corepll, "mha clk", INVALID); + + // mca clk + QTreeWidgetItem *mcaclk = 0; + if (helper.ReadRegisterField("CMU", "DEVCLKEN", "MCA", en) && + helper.ReadRegisterField("CMU", "MCACLK", "MCADIV", tmp1)) + mcaclk = AddClock(corepll, "mca clk", en ? FROM_PARENT : DISABLED, + 1, tmp1+1); + else + mcaclk = AddClock(corepll, "mca clk", INVALID); + + // backlight pwm + QTreeWidgetItem *pwmclk = 0; + if (helper.ReadRegisterField("CMU", "FMCLK", "BCKE", en) && + helper.ReadRegisterField("CMU", "FMCLK", "BCKS", tmp1) && + helper.ReadRegisterField("CMU", "FMCLK", "BCKCON", tmp2)) + { + if (tmp1) + { + // HOSC/8 input clk + pwmclk = AddClock(hosc_clk, "pwm clk", en ? FROM_PARENT : DISABLED, + 1, 3*(tmp2+1)); + } + else + { + // LOSC input clk + pwmclk = AddClock(losc_clk, "pwm clk", en ? FROM_PARENT : DISABLED, + 1, tmp2+1); + } + } + else + pwmclk = AddClock(losc_clk, "pwm clk", INVALID); + + // i2c clk + QTreeWidgetItem *i2c1clk = 0; + QTreeWidgetItem *i2c2clk = 0; + if (helper.ReadRegisterField("CMU", "DEVCLKEN", "I2C", en) && + helper.ReadRegisterField("I2C1", "CTL", "EN", tmp0) && + helper.ReadRegisterField("I2C1", "CLKDIV", "CLKDIV", tmp1)) + { + en &= tmp0; + i2c1clk = AddClock(pclk, "i2c1 clk", en ? FROM_PARENT : DISABLED, + 1, 16*(tmp1+1)); + } + else + { + i2c1clk = AddClock(pclk, "i2c1 clk", INVALID); + } + + if (helper.ReadRegisterField("CMU", "DEVCLKEN", "I2C", en) && + helper.ReadRegisterField("I2C2", "CTL", "EN", tmp0) && + helper.ReadRegisterField("I2C2", "CLKDIV", "CLKDIV", tmp1)) + { + en &= tmp0; + i2c2clk = AddClock(pclk, "i2c2 clk", en ? FROM_PARENT : DISABLED, + 1, 16*(tmp1+1)); + } + else + { + i2c2clk = AddClock(pclk, "i2c2 clk", INVALID); + } + + Q_UNUSED(dsppll); + Q_UNUSED(adcclk); + Q_UNUSED(dacclk); + Q_UNUSED(sdrclk); + Q_UNUSED(nandclk); + Q_UNUSED(sdclk); + Q_UNUSED(mhaclk); + Q_UNUSED(mcaclk); + Q_UNUSED(pwmclk); + Q_UNUSED(i2c1clk); + Q_UNUSED(i2c2clk); +} + void ClockAnalyser::FillTreeRK27XX() { soc_word_t value, value2, value3, value4; diff --git a/utils/regtools/qeditor/std_analysers.h b/utils/regtools/qeditor/std_analysers.h index a9b3022b41..ee95c88f3c 100644 --- a/utils/regtools/qeditor/std_analysers.h +++ b/utils/regtools/qeditor/std_analysers.h @@ -42,6 +42,7 @@ private: void FillTree(); void FillTreeIMX233(); void FillTreeRK27XX(); + void FillTreeATJ213X(); private: QGroupBox *m_group; |