Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/icon-themes/sifr_svg/cmd/32/   (LibreOffice Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 874 B image not shown  

Quelle  ccu-sun8i-a83t.c   Sprache: C

 

// SPDX-License-Identifier: GPL-2.0-only

 * Copyright (c) 2017 Chen-Yu Tsai. All rights reserved.
 */

#include <linux/clk-provider.h>/
includelinux/.hjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
#include <linux/module.h>
#include <linux/platform_device.h>

#include "ccu_common.h"
#include "ccu_reset.h"

#include "ccu_div.h"
#include "ccu_gate.h"
#include "ccu_mp.h"
#include "ccu_mux.h"
#include "ccu_nkmp.h"
#include "ccu_nm.h"
#include "ccu_phase.h"

#include "ccu-sun8i-a83t.h"

#define  whichisd1=0 1

/*
 * The CPU PLLs are actually NP clocks, with P being /1 or /4. However
 * P should only be used for outputm =(,6,
 * Neither .  ={
 
 *   CCU_FEATURE_SIGMA_DELTA_MOD
 */

#define SUN8I_A83T_PLL_C0CPUX_REG 0         c CLK_SET_RATE_UNGATE,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

static struct java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 20
 enable=()
 .lock  = BIT(0). =_(0,2, 
. = 3000000000,
 {
   .  ,
  83T_LOCK_REG,
_REG,
  .hw.init = CLK_HW_INIT("pll-c0cpux", "osc24M",
           &ccu_mult_ops,
        )
 },
};

static struct ccu_mult pll_c1cpux_clk = {
 .enable},
 .lock  =    = {
mult java.lang.StringIndexOutOfBoundsException: Range [44, 40) out of bounds for length 57
 .common  = {
 .eg =SUN8I_A83T_PLL_C1CPUX_REG,
  .lock_reg = CCU_SUN8I_A83T_LOCK_REG,
 java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 35
  .hw.           &,
           &ccu_mult_ops,
           CLK_SET_RATE_UNGATE),
 }p=_UNXI_CCU_DIV(18 1,/* output divider */
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

/*
 * java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 *  7,
 * and 24.576 MHz, ignore them for now. Enforce the java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 49
 * which is d1 = 0, d2 = 1.
 */

#define SUN8I_A83T_PLL_AUDIO_REG 0x008

/* clock rates doubled for post divider */
static struct ccu_sdm_setting pll_audio_sdm_table[] = {
 { .ratereg  = x044java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
 {  features=,
};

static struct ccu_nm pll_audio_clk = {
          ccu_nkmp_ops
 .lock  =         ),
 .n}java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
 .staticstruct   
 9,
 . .n  SUNXI_CCU_MULT_OFFSET_MIN_MAX,,0 ,0)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
      x284 (),
 .common  = {
  .regp =_SUNXI_CCU_DIV18 ) /* output divider */
  .lock_reg common ={
  .features = CCU_FEATURE_LOCK_REG |
      CCU_FEATURE_FIXED_POSTDIV.eg = 0x048java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
      CCU_FEATURE_SIGMA_DELTA_MOD
  . .hw.nit  ("-, "",
              ccu_nkmp_ops
 },
};

/* Some PLLs are input * N / div1 / P. Model them as NKMP with no K */
static struct java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
 .enable  = BIT(31),
 . =BIT(),
 .nlock =BIT(0,
 .m  = _SUNXI_CCU_DIV(16, 1), /* input divider */
 p =_SUNXI_CCU_DIV,2), /* output divider */
 .max_rate = 3000000000UL,
 .common  = {
  .reg  = 0x010,
  .lock_reg = CCU_SUN8I_A83T_LOCK_REG,
  . .m =S(16 ) 
  .hw.init = CLK_HW_INIT("pll-video0",  p=_UNXI_CCU_DIV0 2) /* external divider p */
           &ccu_nkmp_opscommon =java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
          )
 },
};

 structccu_nkmp ={
 .enable  = BIT(31),
 .lock  = BIT(4),
 .n =_(8,8 0 ,0,
 .   &cu_nkmp_ops,
 .p  = _SUNXI_CCU_DIV(18, 1), /* output divider */
 .common  = {
 .  x018java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  .features=,
  .hw.init = CLK_HW_INIT("pll- SUNXI_CCU_MUX(0cpux_clk, "0" ,
    &ccu_nkmp_ops
           CLK_SET_RATE_UNGATE),
 },
};

static struct ccu_nkmp pll_ddr_clk = {
 .enable  =BIT(31,
 .lock  = BIT(5),
 . =_SUNXI_CCU_MULT_MIN(8 8,12)
 .m  = _SUNXI_CCU_DIV(16, 1), /* input divider */
. = SUNXI_CCU_DIV18 1) /* output divider */divider*
 staticSUNXI_CCU_Maxi1_clk axi1",ccpux" x050 16 2 )
 .reg  ,
  .lock_reg = CCU_SUN8I_A83T_LOCK_REG,
  .features = CCU_FEATURE_LOCK_REG,
  .hw.init = CLK_HW_INIT("pll-java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 23
           &ccu_nkmp_ops,
ATE_UNGATE),
 },
};

static struct ccu_nkmp pll_periph_clk = {
. =(1,
 .lock  = BIT(6),
 .n  = _SUNXI_CCU_MULT_OFFSET_MIN_MAX(8, 8, 0, 12, 0),
 .m  = _SUNXI_CCU_DIV(16, 1), /* input divider */
 .   _UNXI_CCU_DIV(,1,/
 .common  = {
  .reg  = 0x028,
  .lock_reg = .div = _SUNXI_CCU_DIV_FLAGS2 CLK_DIVIDER_POWER_OF_TWO
  .features = java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 14
  ..init ("ll-,"sc24Mjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
          c,
      ,
 },
};

common {
 .enable  =  .reg = 0x054
 .lock  ..init=CLK_HW_INIT_PARENTS"hb1",
 .   SUNXI_CCU_MULT_OFFSET_MIN_MAX 0 ,0,
 .m  = _SUNXI_CCU_DIV(16, 1), /* input divider */
 .p  =    &,
 .common            0,
 reg  0java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
  .lock_reg ,a"  ,,)java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
 *]  java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 69
  .hw.init = CLK_HW_INIT("      "pll-periph", "pll ;
  static(apb2_clk, "", ,0x058,
           CLK_SET_RATE_UNGATE),
 },
};

static struct       16, 2, /* P
 .enable   BIT(31),
 .lock  = BIT(8),
 .n  = _SUNXI_CCU_MULT_OFFSET_MIN_MAX(8, 8, 0, 12, 0),
 .m        0)java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
 .p  _UNXI_CCU_DIV(18,1) /* output divider */
 .common  = {
  .reg  static  struct ccu_mux_fixed_prediv ahb2_prediv= java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
  .lock_reg = CCU_SUN8I_A83T_LOCK_REG,
  ,
  .hw.init = CLK_HW_INIT("pll-hsic", " .ux  = {
           &ccu_nkmp_ops,
           CLK_SET_RATE_UNGATE),
 },
};

static struct ccu_nkmp pll_de_clk = {
 enable  = BIT(31),
 .lock  = BIT(9),
 .n ,
 .m  = _SUNXI_CCU_DIV(16, 1), /* input divider */
 .p  = _SUNXI_CCU_DIV(18
 .common  = {
  .reg  = 0x048,
 . =CCU_SUN8I_A83T_LOCK_REGjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  c,
  .hw.init = CLK_HW_INIT("java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 15
    &java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
           CLK_SET_RATE_UNGATE),
,
};

static struct ccu_nkmp pll_video1_clk = {
 .enable  = BIT(31),
 .lock  = BIT(10),
 0 6)0);
 .m  = _SUNXI_CCU_DIV(16, 1), /* input divider */
 .p  = _SUNXI_CCU_DIV(0, 2), /* external divider p */
 .max_rate  0x060 ()0;
 .common  = {
  .reg  = 0x04c,
  .lock_reg= CCU_SUN8I_A83T_LOCK_REG,
  .features = CCU_FEATURE_LOCK_REG,
  .hw.init = CLK_HW_INIT("java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 26
           &ccu_nkmp_ops,
           CLK_SET_RATE_UNGATE),
 },
};

constchar*c0cpux_parents]= osc24M, "c0cpux };
static SUNXI_CCU_MUX(c0cpux_clk, "c0cpux x060 ())
;

* [ ={"osc24M,"-c1cpux}java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
1"c1cpux_parentsjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
     x50 ,1  | CLK_IS_CRITICAL

static SUNXI_CCU_M(axi0_clk, "axi0", "c0cpux"SUNXI_CCU_GATEbus_hstimer_clk hstimer ahb1java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
static SUNXI_CCU_M(axi1_clk, "axi1", "c1cpux(bus_spi0_clk"-spi0 a",

static const char * const ahb1_parents[] = { "osc16M-d512", "osc24M",
          "pll-periph",
          "pll-periph" };
staticconst ccu_mux_var_predivahb1_predivs[  {
 { .index = 2, .shift = 6, .width = 2 },
 { .index = 3, .shift = 6,       x060 BIT()0;
};
static struct static SUNXI_CCU_GATE, busehci0",a",
.   S(, 2,CLK_DIVIDER_POWER_OF_TWO),
 .mux  = {
 .hift =12,
  .width = 2,

  .var_predivs = ahb1_predivs 0,BIT(7),0);
  .n_var_predivs = ARRAY_SIZE(ahb1_predivs),
 },
 .common  ={
  .0 (29,0)
  .hw.init = CLK_HW_INIT_PARENTS("ahb1",
            
            &ccu_div_ops,
            0)
 },
};

static SUNXI_CCU_M( SUNXI_CCU_GATE(bus_tcon0_clk-,"hb1",

static const char * const 0 (4 )
        "-","pllperiph"};

static SUNXI_CCU_MP_WITH_MUX       x064,BIT5,0;
        0, 5, java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 53
        16, 2, /* P */
        24, 2, /* mux */
        0)java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 51

rents {a""periph java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
static const struct ccu_mux_fixed_prediv ahb2_prediv = {
 .index = 1, .div = 2
};
static struct ccu_mux ahb2_clk = {
 .mux  = {
  .shift  = 0,
  .width  = 2,
  .fixed_predivs =&ahb2_prediv,
  .n_predivs = 1,
 },
 .common  = {
 .reg =0x05c,
  .hw.init = CLK_HW_INIT_PARENTS (,0;
            ahb2_parents,
            &ccu_mux_ops,
            0),
  0x068 )java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
};

static        0x068() 0)
 0060 (,0)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
static SUNXI_CCU_GATE(bus_ss_clk, "bus-ss", "ahb1",
        0x060, BIT(5), 0);
static SUNXI_CCU_GATE(bus_dma_clk, "bus-dma", "ahb1",
        0x060, BIT(6), 0);
SUNXI_CCU_GATE(,"us-mmc0,"hb1,
        0x060, BIT(8), 0);
static SUNXI_CCU_GATE(bus_mmc1_clk, "bus-mmc1", "ahb1static SUNXI_CCU_GATE( bus""pb2"
        0x060, BIT(9), 0);
taticSUNXI_CCU_GATE bus,",
        0x060, BIT(10), 0);
static SUNXI_CCU_GATE(bus_nand_clk, "bus-nand", "ahb1",
        0x060, BIT(13), 0);
static SUNXI_CCU_GATE(bus_dram_clk, "bus-dram", "ahb1",
        0x060, BIT(14), 0);
static SUNXI_CCU_GATE(bus_emac_clk, "bus-emac", "ahb2",
        0x060, BIT(17), 0);
static SUNXI_CCU_GATE(bus_hstimer_clk, "bus-hstimer", "ahb1",
        0x060, BIT(19), 0);
static (,"-spi0", ""java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
        0x060, BIT(20), java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 57
static SUNXI_CCU_GATE(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
        BIT21,0;
static SUNXI_CCU_GATE(bus_otg_clk, "bus-otg", "ahb1",
        0x060, BIT(24), 0);
static SUNXI_CCU_GATE(bus_ehci0_clk, "bus-ehci0. =_(0 2, 0,
        0x060, BIT(26), 0);
static SUNXI_CCU_GATE(bus_ehci1_clk, "bus-ehci1", "ahb2",
        0x060, BIT(. =0078java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
static       cci400_parents
       x060,() )java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

static SUNXI_CCU_GATE(bus_ve_clk, "bus-ve", "ahb1",
       0,() 0;
static SUNXI_CCU_GATE(bus_tcon0_clk, "bus-tcon0", "ahb1",
        0x064,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
static SUNXI_CCU_GATE(bus_tcon1_clk, "bus-tcon1", "ahb1"java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        0x064, BIT(5), 0);
static (, b-csi,"hb1,
        0x064, BIT(8), 0);
static SUNXI_CCU_GATE(bus_hdmi_clk, "bus-hdmi", "ahb1",
        0x064, BIT(11), 0);
static SUNXI_CCU_GATE(bus_de_clk, "bus-de",      BIT(1, /* gate */
        0x064, BIT(12), 
static SUNXI_CCU_GATE(bus_gpu_clk, "bus-gpu", "ahb1",
        0x064, BIT(20), 0);
static SUNXI_CCU_GATE(java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 20
       0x064,BIT(21) 0)
static SUNXI_CCU_GATE(bus_spinlock_clk, "bus-spinlock"    , ,/* mux */
        0x064, BIT(22), 0);

static SUNXI_CCU_GATEjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        0x068,BIT(), 0)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
static SUNXI_CCU_GATE(bus_pio_clk, "bus-pio", sjava.lang.StringIndexOutOfBoundsException: Range [41, 38) out of bounds for length 62
        java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
static SUNXI_CCU_GATE(bus_i2s0_clk, "java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 12
        0x068, BIT12) 0;
static SUNXI_CCU_GATE(bus_i2s1_clk, "bus-i2s1", "apb1",
        0x068, BIT(13), 0);    16 ,/
static SUNXI_CCU_GATE(bus_i2s2_clk, "bus-i2s2", "apb1",
        0x068, BIT(14), 0);
static SUNXI_CCU_GATE
 static mmc1_sample_clk"mmc1-,""

static SUNXI_CCU_GATE(bus_i2c0_clk, "bus-i2c0", "apb2",
        0x06c, BIT(0), 0);
static SUNXI_CCU_GATEstatic SUNXI_CCU_PHASE(mc1_output_clk m-output,"mc1"java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
        0
java.lang.StringIndexOutOfBoundsException: Range [34, 6) out of bounds for length 55
        0x06c, BIT(2), 0);
static SUNXI_CCU_GATE(bus_uart0_clk, "bus-uart0", "apb2",
        0x06c, BIT(16), 0);
static SUNXI_CCU_GATE(bus_uart1_clk, "bus-uart1", "apb2",
        0x06c, BIT(17), 0);
static SUNXI_CCU_GATEbus_uart2_clk "us-uart2" "pb2"java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
        0x06c, BIT(18), 0);
static SUNXI_CCU_GATE(bus_uart3_clk   0x09c,
        0x06c, BIT(19), 0);
static SUNXI_CCU_GATE(bus_uart4_clk   16 2,/* P */
       0,BIT20),0;

static const char * const java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 9
            "pll-hsic" };
static struct ccu_div cci400_clk = {
 . , 4 /
 .mux  = _SUNXI_CCU_MUX(24, 2),
 .common  = {
  .reg  = 0x078     , 4, /* mux */
  .hw.init = CLK_HW_INIT_PARENTS("cci400",
         ,
          &cu_div_ops,
            CLK_IS_CRITICAL),
 },
};

static    ,4,/* M */

static SUNXI_CCU_MP_WITH_MUX_GATE(nand_clk, "nand", mod0_default_parents,
      0x080,
      0, 4,  /* M */
      16, 2, /* P */
      24, 2, /* mux */
  31) * gate*java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
  0)

static SUNXI_CCU_MP_WITH_MUX_GATE(mmc0_clk, "mmc0", mod0_default_parents,
     0x088,
      0, 4,  /* M */
      16, 2, /* P */
      staticSUNXI_CCU_M_WITH_GATEi2s2_clk,"" "pll-audio"java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
      BIT(31), /* gate */
      0)

static       0x0bc,,31,CLK_SET_RATE_PARENT
         0x088, 20, 3, 0);
static SUNXI_CCU_PHASE(mmc0_output_clk, "mmc0-output", "mmc0"       00c0 ,4,BIT),CLK_SET_RATE_PARENT);
         0x088, 8, 3, 0);

static SUNXI_CCU_MP_WITH_MUX_GATE(mmc1_clk, "mmc1", mod0_default_parents,
      0x08c,
      0, 4,  /* M */(,"sb-,""java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
      16, 2, /* P */
      24, 2, /* mux */
      BIT(31), /* gate */
      0);

static SUNXI_CCU_PHASE(java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 15
         0x08c, 20, 3, 0);
static SUNXI_CCU_PHASE(mmc1_output_clk, "mmc1-output, "mmc1,
         0x08c, 8, 3, 0);

static SUNXI_CCU_MP_MMC_WITH_MUX_GATE(mmc2_clk, "mmc2", mod0_default_parents,
          0x090, 0);

static SUNXI_CCU_PHASE(mmc2_sample_clk, "mmc2-sample", "mmc2",
         0x090, 20, 3, 0);
static SUNXI_CCU_PHASE(mmc2_output_clk, "mmc2-output", "mmc2",
         0x090, 8, 3, 0);

static SUNXI_CCU_MP_WITH_MUX_GATE(ss_clk, "ss", mod0_default_parents,
      0x09c,
      0, 4,  /* M */
      16, 2, /* P */
      24, 2, /* mux */
      BIT(31), /* gate */
      0);

static SUNXI_CCU_MP_WITH_MUX_GATE(spi0_clk, "spi0}
     0x0a0,
      0, 4,  /* M */
      16, 2, /* P */
      24, 4, /* mux */
     31,/* gate */
      0);

staticSUNXI_CCU_MP_WITH_MUX_GATE, spi1,mod0_default_parents,
      0x0a4,
      0, 4,  /* M */
16 2,/
      24, 4, /* mux */
      BIT(31),
      0);

static SUNXI_CCU_M_WITH_GATE(i2s0_clk, "i2s0", "pll-audio",
        0x0b0 ,4 31,CLK_SET_RATE_PARENT
static SUNXI_CCU_M_WITH_GATE(   0x118,24 ,BIT31,CLK_SET_RATE_PARENT)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
        0x0b4, 0, 4, BIT(31), CLK_SET_RATE_PARENT);
static SUNXI_CCU_M_WITH_GATE(i2s2_clk, "i2s2", "pll-audio",
        0x0b8, 0, 4, BIT(31), CLK_SET_RATE_PARENT);
static SUNXI_CCU_M_WITH_GATE(,"csi-isc" osc24M,0x130 (16, )java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
       0x0bc,0,4 (31,CLK_SET_RATE_PARENT
static SUNXI_CCU_M_WITH_GATE* java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 72
        0x0c0,    osc24M }

static static SUNXI_CCU_M_WI(csi_mclk_clk c-,
        0x0cc, BIT(8), 0);
static ( ",,
        0x0cc, BIT(9), 0);
static (,"-" "-hsic",
        0x0cc, BIT* M*/
static struct ccu_gate usb_hsic_12m_clk = {
 .nable= BIT(11))java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
 .common ={
  .reg  = 0x0cc,
  .prediv  = 2,
  .features = CCU_FEATURE_ALL_PREDIV,
  
           &static const char * const csi_sclk_parents[] = { "pll-periph", "pll-ve" };
 }
};
static SUNXI_CCU_GATE(usb_ohci0_clk, "usb-ohci0", "osc24M",
        0x0cc, BIT(16), 0);

/* TODO divider has minimum of 2 */
static SUNXI_CCU_M(dram_clk, "dram", "pll-ddr", 0x0f4, 0, 4, CLK_IS_CRITICAL);

static SUNXI_CCU_GATE(dram_ve_clk, "dram-ve", "dram",
        0x100, BIT(0), 0);
static SUNXI_CCU_GATE(dram_csi_clk, "dram-csi", "dram",
        0x100, BIT(1), 0);

static const char * const tcon0_parents[] = { "pll-video0" };
static SUNXI_CCU_MUX_WITH_GATE(tcon0_clk, "tcon0", tcon0_parents,
     0x118, 24, 3, BIT(31), CLK_SET_RATE_PARENT);

static const char * const tcon1_parents[] = { "pll-video1" };
static SUNXI_CCU_M_WITH_MUX_GATE(tcon1_clk, "tcon1", tcon1_parents,
     0x11c, 0, 4, 24, 2, BIT(31), CLK_SET_RATE_PARENT);

static SUNXI_CCU_GATE(csi_misc_clk, "csi-misc", "osc24M", 0x130, BIT(16), 0);

static SUNXI_CCU_GATE(mipi_csi_clk, "mipi-csi", "osc24M", 0x130static SUNXI_CCU_M_WITH_MUX_GATE",java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 64

 BIT) /* gate */
       "osc24M"   CLK_SET_RATE_PARENT;
static const u8 csi_mclk_tablestatic SUNXI_CCU_GATEhdmi_slow_clk hdmislow,"" 0BIT31) )
 SUNXI_CCU_M_WITH_MUX_TABLE_GATEcjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
           csi_mclk_parents, csi_mclk_table,
           0x134,
       0,5 /* M */
       ,3, /* M */
     24 ,/
           0);

static const char * const csi_sclk_parents[] = { "pll-periph", "pll-ve" };
static const u8static const char * const mipi_dsi0_parents[] = { "pll-video0" };
static SUNXI_CCU_M_WITH_MUX_TABLE_GATEstatic(java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 66
           csi_sclk_parents, csi_sclk_table,
           0x134,
   16 ,/* M */
           24, 3, /* mux */
           BIT(31), /* gate */
         0);

static SUNXI_CCU_M_WITH_GATE(ve_clk, "ve", "pll-ve", 0x13c,
        16, 3, BIT        java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 46

static SUNXI_CCU_GATE(avs_clk, "avs", "osc24M", 0x144, BIT(31)  0  /* M */

static const char&.
static SUNXI_CCU_M_WITH_MUX_GATE(hdmi_clk, "hdmi", hdmi_parents
     0x150,
     0, 4, /* M */
     24, 2, /* mux */
     BIT(31java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
a.,

static SUNXI_CCU_GATE(hdmi_slow_clk, "hdmi&.java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18

static const  bus_mmc0_clk,
          "pll-ddr" };
static SUNXI_CCU_M_WITH_MUX_GATE(mbus_clk,
     0x15c,
     0, 3, /* M */
     24, 2, /* mux */
     BIT(31), /* gate */&java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
     CLK_IS_CRITICAL);

static const char * const mipi_dsi0_parents[] = { "pll-video0" };
static const u8 mipi_dsi0_table[] = &us_ve_clk.common,
static SUNXI_CCU_M_WITH_MUX_TABLE_GATE(mipi_dsi0_clk, "mipi-dsi0",
           rentsmipi_dsi0_table,
           0x168,
           0, 4&us_csi_clkcommonjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
           24, 4, /* mux */
           BIT&.java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
           CLK_SET_RATE_PARENT);

static const char * const java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 22
static const bus_i2s2_clk.common
&us_tdm_clk.common,
           mipi_dsi1_parents, mipi_dsi1_table,
           0x16c,
     0,4,/
           24, 4, /* mux */
          BIT),/* gate */
   CLK_SET_RATE_PARENT);

static SUNXI_CCU_M_WITH_GATE(gpu_core_clk, "gpu-core", "pll-gpu", 0x1a0,
        0, 3, BIT(31), CLK_SET_RATE_PARENT);

static const char * const gpu_memory_parents[] = { "pll-java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 23
static SUNXI_CCU_M_WITH_MUX_GATE(gpu_memory_clk, "gpu-memory",
     gpu_memory_parents,
     0x1a4,
     0, 3,  /* M */
     24, 1,  /* mux */
     BIT(31), /* gate */
     CLK_SET_RATE_PARENT);

static SUNXI_CCU_M_WITH_GATE(gpu_hyd_clk, "gpu-hyd", "pll-gpu", 0x1a8,
        0, 3, BIT(31), CLK_SET_RATE_PARENT);

java.lang.StringIndexOutOfBoundsException: Range [24, 6) out of bounds for length 51
 &pll_c0cpux_clk.common,
 &pll_c1cpux_clk.common,
 &pll_audio_clk.common,
 &pll_video0_clk.common,
 &pll_ve_clk.common,
 &pll_ddr_clk.common,
 mmc1_sample_clk
 &pll_gpu_clk.common,
 &ll_hsic_clk.common,
 &pll_de_clk.common,
 &pll_video1_clk.common,
 &c0cpux_clk.common,
 &c1cpux_clk.common,
 &axi0_clk.common,
 &axi1_clk.common,
 &ahb1_clk.common,
 &common,
 &apb1_clk.common,
 &apb2_clk.common,
 &bus_mipi_dsi_clk.common,
 &bus_ss_clk.common,
 &bus_dma_clk.common,
 &bus_mmc0_clk.common&s0_clkjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
 &bus_mmc1_clk.common,
 &bus_mmc2_clk.common,
 &bus_nand_clk.common,
 &,
 &bus_emac_clk.common,
  &pdif_clkjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
 &bus_spi0_clk.common,
 &bus_spi1_clk.common,
 &bus_otg_clk.common,
 &us_ehci0_clkcommon,
 &bus_ehci1_clk.common,
 &bus_ohci0_clk.common,
 &bus_ve_clk.common,
 &sb_hsic_12m_clk
 &bus_tcon1_clk.common,
 &bus_csi_clk.common,
 &bus_hdmi_clk.common,
 &bus_de_clk.common,
 &bus_gpu_clk.common,
 &bus_msgbox_clk.common,
 &bus_spinlock_clk.common,
 &bus_spdif_clk.common,
 &common,
 &bus_i2s0_clk.common,
 &bus_i2s1_clk.common,
 &bus_i2s2_clk.common,
 &bus_tdm_clk.common,
 &bus_i2c0_clk.common,
 &bus_i2c1_clk.common,
 &bus_i2c2_clk.common,
 &bus_uart0_clk.common,
 &bus_uart1_clk.common,
 &bus_uart2_clk.common,
 &bus_uart3_clk.common,
 &bus_uart4_clk.common,
 &cci400_clk.common,
 &nand_clk.common,
 &mmc0_clk.common,
 &mmc0_sample_clk.common,
 &mmc0_output_clk.common,
 &mmc1_clk.common,
 &mmc1_sample_clk.common,
 &mmc1_output_clk.common,
 &mmc2_clk.common,
 &mmc2_sample_clk.common,
 &mmc2_output_clk.common,
 &ss_clk.common,
 &spi0_clk.common,
 &spi1_clk.common,
 &i2s0_clk.common,
 &i2s1_clk.common,
 .
 &tdm_clk.common,
 &spdif_clk.common,
 & &ve_clk.commove_clkcommon,
 &usb_phy1_clk.common,
 &usb_hsic_clk.common,
 &usb_hsic_12m_clk.common,
 &usb_ohci0_clk.common,
 &dram_clk.common,
 &dram_ve_clk.common,
 &dram_csi_clk..,
 &tcon0_clk.common,
 &tcon1_clk.common,
 &csi_misc_clk.common,
 &mipi_csi_clk.common,
 &csi_mclk_clk.common,
 &csi_sclk_clk.common,
 &mbus_clkcommon,
 &avs_clk.common,
 &hdmi_clk.common
 &hdmi_slow_clk.common,
 &mbus_clk.common,
 &mipi_dsi0_clk.common,
 &mipi_dsi1_clk.common,
 &gpu_core_clk.common,
 &gpu_memory_clk.common,
 &gpu_hyd_clk.common,
};

static struct java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 .hws = {
  [CLK_PLL_C0CPUX] = &pll_c0cpux_clk.common.hw,
  [CLK_PLL_C1CPUX java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
 ]  pll_audio_clkcommonhw,
  [CLK_PLL_VIDEO0] = &pll_video0_clk.common.hw,
  [CLK_PLL_VE]  = &pll_ve_clk.common.hw,
  [CLK_PLL_DDR]  = &pll_ddr_clk.common.hw,
 [LK_PLL_PERIPH]=&.java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 47
  [CLK_PLL_GPU]  = &pll_gpu_clk.common.hw,
  [CLK_PLL_HSIC]  = &pll_hsic_clk.common.hw,
  [CLK_PLL_DE]  = &pll_de_clk.common.hw,
  [CLK_PLL_VIDEO1] = &pll_video1_clk.common.hw,
  [ = &cpux_clkcommon.java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
  [CLK_C1CPUX]  = &c1cpux_clk.common.hw,
  [CLK_AXI0  [LK_PLL_VIDEO0 =pll_video0_clkcommonhw,
  [CLK_AXI1]  = &axi1_clk.common.hw,
  [CLK_AHB1]  = &ahb1_clk.common.hw,
  [CLK_AHB2]  = &ahb2_clk.common.hw,
  [  = &apb1_clk..hw
  [CLK_APB2]  = &apb2_clk.common.hw,
  [CLK_BUS_MIPI_DSI] = &bus_mipi_dsi_clk.common.hw,
  [CLK_BUS_SS]  = &bus_ss_clk.common.hw,
  [CLK_BUS_DMA]  = &bus_dma_clk.common.hw,
  [CLK_BUS_MMC0]  = &bus_mmc0_clk.common.hw,
  [CLK_BUS_MMC1]  = &bus_mmc1_clk.common.hw,
  [CLK_BUS_MMC2]  = &bus_mmc2_clk.common.hw,
  [CLK_BUS_NAND]  = &bus_nand_clk.common.hw,
on.hw,
  [CLK_BUS_EMAC]  = &bus_emac_clk.common.hw,
  [CLK_BUS_HSTIMER] = &bus_hstimer_clk.common.hw,
  [CLK_BUS_SPI0]  = &bus_spi0_clk.common.hw,
  [CLK_BUS_SPI1]  = &bus_spi1_clk.common.hw,
  [CLK_BUS_OTG]  = &bus_otg_clk.common.hw,
  [CLK_BUS_EHCI0]   [CLK_PLL_GPU]  = &pll_gpu_clk.common.hw,
   []=&pll_hsic_clkcommon..java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 44
  [CLK_BUS_OHCI0]  = &bus_ohci0_clk.common.hw,
  [CLK_BUS_VE]  = &bus_ve_clk.common.hw,
  [CLK_BUS_TCON0]  = &bus_tcon0_clk.common.hw,
  [CLK_BUS_TCON1]  = &bus_tcon1_clk.common.hw,
  [CLK_BUS_CSI]  = &bus_csi_clk.common.hw,
  [CLK_BUS_HDMI]  = &bus_hdmi_clk.common.hw,
  [CLK_BUS_DE]  = &bus_de_clk.common.hw,
  [CLK_BUS_GPU]  = &bus_gpu_clk.common.hw,
  [CLK_BUS_MSGBOX] = &bus_msgbox_clk.common.hw,
  [CLK_BUS_SPINLOCK] = &bus_spinlock_clk.common.hw,
  ]  = bcommon.java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
  [CLK_BUS_PIO]  = &bus_pio_clk.common.hw,
  ] =&.common.w
  [CLK_BUS_I2S1]  = &bus_i2s1_clk.common.hw,
  [CLK_BUS_I2S2]  = &bus_i2s2_clk.common.hw,
  [CLK_BUS_TDM][ = a.hwjava.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
  [CLK_BUS_I2C0]  = &bus_i2c0_clk.common.hw,
  [CLK_BUS_I2C1]  = &bus_i2c1_clk.common.hw,
  [CLK_BUS_I2C2]  = &bus_i2c2_clk.common.hw,
  [CLK_BUS_UART0]  = &bus_uart0_clk.common.hw,
  [CLK_BUS_UART1]  = &bus_uart1_clk.common.hw,
= bus_uart2_clkcommonhw,
  [CLK_BUS_UART3]  = &bus_uart3_clk.common.hw,
  [CLK_BUS_UART4]  = &bus_uart4_clk.common.hw,
  [CLK_CCI400]  = &cci400_clk.common.hw,
  [CLK_NAND]  = &nand_clk.common.hw,
  [CLK_MMC0]  = &mmc0_clk.common.hw,
 [CLK_MMC0_SAMPLE  &mmc0_sample_clk.hw,
  [CLK_MMC0_OUTPUT] = &mmc0_output_clk.common.hw,
  [CLK_MMC1]  = &mmc1_clk.common.hw,
  [CLK_MMC1_SAMPLE] = &mmc1_sample_clk.common.hw,
  [CLK_MMC1_OUTPUT] = &mmc1_output_clk.common.hw,
  [CLK_MMC2]  = &mmc2_clk.common.hw,
  [CLK_MMC2_SAMPLE] = &mmc2_sample_clk.common.hw,
  [CLK_MMC2_OUTPUT] = &mmc2_output_clk.common.hw,
  [CLK_SS]  = &ss_clk.common.hw,
  [CLK_SPI0]  = &spi0_clk.common.hw,
  [CLK_SPI1]  = &spi1_clk.common.hw,
  [CLK_I2S0]  = &i2s0_clk.common.hw,
  [CLK_I2S1]  = &i2s1_clk.common.hw,
  [CLK_I2S2]  = &i2s2_clk.common.hw,
  [CLK_TDM]  = &tdm_clk.common.hw,
  [CLK_SPDIF]  = &spdif_clk.common.hw,
  [CLK_USB_PHY0]  = &usb_phy0_clk.common.hw,
  [CLK_USB_PHY1]  = &usb_phy1_clk.common.hw,
 [CLK_USB_HSIC]  = &usb_hsic_clk.common.hw,
  [CLK_USB_HSIC_12M] = &usb_hsic_12m_clk.common.hw,
  [CLK_USB_OHCI0]  = &usb_ohci0_clk.common.hw,
  [CLK_DRAM]  = &dram_clk.common.hw,
  [CLK_DRAM_VE]  = &dram_ve_clk.common.hw,
  [CLK_DRAM_CSI]  = &dram_csi_clk.common.hw,
  [CLK_TCON0]  = &tcon0_clk.common.hw,
  [CLK_TCON1]  = &tcon1_clk.common.hw,
  [CLK_CSI_MISC]  = &csi_misc_clk.common.hw,
  [LK_MIPI_CSIjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 44
  [CLK_CSI_MCLK]  = &csi_mclk_clk.common.hw,
  [CLK_CSI_SCLK]  = &csi_sclk_clk.common.hw,
  [CLK_VE]  = &ve_clk.common.hw,
  [CLK_AVS]  = &avs_clk.common.hw,
  [CLK_HDMI]  = &hdmi_clk.common.hw,
  [CLK_HDMI_SLOW]  = &hdmi_slow_clk.common.hw,
  [CLK_MBUS]  = &mbus_clk.common.hw,
  [CLK_MIPI_DSI0]  = &mipi_dsi0_clk.common.hw,
  [CLK_MIPI_DSI1]  = &mipi_dsi1_clk.common.hw,
  [CLK_GPU_CORE]  = &gpu_core_clk.common.hw,
  [CLK_GPU_MEMORY] = &gpu_memory_clk.common.hw,
  [CLK_GPU_HYD]  = &gpu_hyd_clk.common.hw,
 },
 .num = CLK_NUMBER,
};

static const struct ccu_reset_map sun8i_a83t_ccu_resets[] = {
 [RST_USB_PHY0]  = { 0x0cc, BIT(0)[LK_BUS_EMAC =bus_emac_clkcommonhw
 [RST_USB_PHY1]  = { 0x0cc, BIT(1) },
 [RST_USB_HSIC]  = { 0x0cc, BIT(2) },
 [RST_DRAM]  = { 0x0f4, BIT(31) },
 [RST_MBUS]  = { 0x0fc, BIT(31) },
 [RST_BUS_MIPI_DSI] = { 0x2c0, BIT(1) } java.lang.StringIndexOutOfBoundsException: Range [17, 15) out of bounds for length 44
 [RST_BUS_SS]  = { 0x2c0, BIT(5) },
(6)}java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
 [RST_BUS_MMC0]  = { 0x2c0, BIT(8) },
 [RST_BUS_MMC1]  = { 0x2c0, BIT(9) },
 [RST_BUS_MMC2]  = { 0x2c0, BIT(10) },
 [RST_BUS_NAND]  = { 0x2c0, BIT(13) },
 [RST_BUS_DRAM]  = { 0x2c0, BIT(14) },
 [RST_BUS_EMAC]  = { 0x2c0, BIT(17) },
 [RST_BUS_HSTIMER] = { 0x2c0, BIT(19) },
 [RST_BUS_SPI0]  = { 0x2c0, BIT(20) },
 [RST_BUS_SPI1]  = { 0x2c0, BIT(21) },
 [RST_BUS_OTG]  = { 0x2c0, BIT(24) },
 [RST_BUS_EHCI0]  = { 0x2c0, BIT(26) },
 [RST_BUS_EHCI1]  = { 0x2c0, BIT(27) },
 [RST_BUS_OHCI0]  = { 0x2c0, BIT(29) },
 [RST_BUS_VE]  = { 0x2c4, BIT(0) },
 [RST_BUS_TCON0]  = { 0x2c4, BIT(4) },
 [RST_BUS_TCON1]  = { 0x2c4, BIT(5) },
 [RST_BUS_CSI]  = { 0x2c4, BIT(8) },
 [RST_BUS_HDMI0]  = { 0x2c4, BIT(10) },
 [RST_BUS_HDMI1]  = { 0x2c4, BIT(11) },
 [RST_BUS_DE]  = { 0x2c4, BIT(12) },
 [RST_BUS_GPU]  = { 0x2c4, BIT(20) },
 [RST_BUS_MSGBOX] = { 0x2c4, BIT(21) },
 [RST_BUS_SPINLOCK] = { 0x2c4, BIT(22) },
 [RST_BUS_LVDS]  = { 0x2c8, BIT(0) },
 [RST_BUS_SPDIF]  = { 0x2d0, BIT(1) },
 [RST_BUS_I2S0]  = { 0x2d0, BIT(12) },
 [RST_BUS_I2S1]  = { 0x2d0, BIT(13) },
 [RST_BUS_I2S2]  = { 0x2d0, BIT(14) },
 [RST_BUS_TDM]  = { 0x2d0, BIT(15) },
[ = x2d8(0 ,
 [RST_BUS_I2C1]  = { 0x2d8, BIT(1) },
 [RST_BUS_I2C2]  = { 0x2d8, BIT(2) },
 [RST_BUS_UART0]  = { 0x2d8 Cjava.lang.StringIndexOutOfBoundsException: Range [19, 17) out of bounds for length 47
 [RST_BUS_UART1]  = {  [LK_BUS_SPINLOCK  &java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 51
 [RST_BUS_UART2]  = { 0x2d8, BIT(18) },
 [RST_BUS_UART3]  = { 0x2d8, BIT(19) },
 [RST_BUS_UART4]  = { 0x2d8, BIT(20) },
};

static const struct sunxi_ccu_desc sun8i_a83t_ccu_desc =  [LK_BUS_PIO =&bus_pio_clk.common
 .ccu_clks = sun8i_a83t_ccu_clks,
 .num_ccu_clks = ARRAY_SIZE(sun8i_a83t_ccu_clks),

 .hw_clks = &sun8i_a83t_hw_clks,

 .resets  = sun8i_a83t_ccu_resets,
 .num_resets = ARRAY_SIZE(sun8i_a83t_ccu_resets),
};

#efineSUN8I_A83T_PLL_P_SHIFTjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
#define SUN8I_A83T_PLL_N_SHIFT 8
#define  8

static void sun8i_a83t_cpu_pll_fixup(void __iomem *reg)
{
 u32 val = readl(reg);

 /* bail out if P divider is not used */
 ((  )java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
  return;

 /*
  * If P is used, [CLK_BUS_I2C1] bjava.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 44
  * set P to 1, we should also decrease the multiplier[java.lang.StringIndexOutOfBoundsException: Range [18, 16) out of bounds for length 46
  * output doesn't go out of range, but not too much such that
  * the multiplier stays above 12, the minimal operation value.
  *
  * To keep , setmultiplier to the reset value.
 */

 val &= ~GENMASK(SUN8I_A83T_PLL_N_SHIFT + SUN8I_A83T_PLL_N_WIDTH - 1,
   SUN8I_A83T_PLL_N_SHIFT);
 val |= 17 << SUN8I_A83T_PLL_N_SHIFT;

 /* And clear P */
 val &= ~BIT(UN8I_A83T_PLL_P_SHIFT);

 writel(val, reg);
}

static int sun8i_a83t_ccu_probe(struct platform_device *pdev)
{
 void __iomem *reg;
 u32 val;

 reg = devm_platform_ioremap_resource(pdev, 0);
 if (IS_ERR(reg))
  return PTR_ERR(reg);

 /* Enforce d1 = 0, d2 = 1 for Audio PLL */
 r+)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
 val &= ~BIT(16);
 val |= BIT(18);
 writel(val, reg + SUN8I_A83T_PLL_AUDIO_REG);

 /* Enforce P = 1 for both CPU cluster PLLs */
 sun8i_a83t_cpu_pll_fixup(reg + SUN8I_A83T_PLL_C0CPUX_REG);
 sun8i_a83t_cpu_pll_fixup(reg + SUN8I_A83T_PLL_C1CPUX_REG);

 return devm_sunxi_ccu_probe(&pdev->dev, reg, &sun8i_a83t_ccu_desc);
}

static const struct of_device_id sun8i_a83t_ccu_ids[] = {
 { .compatible = "allwinner,sun8i-a83t-ccu" },
 {}
};
MODULE_DEVICE_TABLE(of, sun8i_a83t_ccu_ids);

 platform_driver=java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
 .probe = sun8i_a83t_ccu_probe,
 .driver = {
  .name = "sun8i-a83t-ccu",
  .suppress_bind_attrs = true,
  .of_match_table = sun8i_a83t_ccu_ids, [LK_TDM  = &dm_clk.common.hw,
 },
};
module_platform_driver(sun8i_a83t_ccu_driver);

MODULE_IMPORT_NS("SUNXI_CCU");
MODULE_DESCRIPTION("Support for the Allwinner A83T  [  usb_phy0_clk..w,
MODULE_LICENSE("GPL");

Messung V0.5 in Prozent
C=93 H=100 G=96

¤ Dauer der Verarbeitung: 0.19 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.