Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  ste-ux500-samsung-kyle.dts   Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Devicetree for the Samsung Galaxy Amp SGH-I407 also known as Kyle.
 *
 * The code also refers to "Kyle AT&T" reflecting that this mobile phone
 * was customized for the AT&T subsidiary Aio Wireless (All In One) and
 * offered by the company in 2013.
 */

/dts-v1/;
#include "ste-db8500.dtsi"
#include "ste-ab8505.dtsi"
#include "ste-dbx5x0-pinctrl.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
 model = "Samsung Galaxy Amp (SGH-I407)";
 compatible = "samsung,kyle", "st-ericsson,u8500";

 chosen {
  stdout-path = &serial2;
 };

 battery: battery {
  compatible = "samsung,eb425161la";
 };

 thermal-zones {
  battery-thermal {
   /* This zone will be polled by the battery temperature code */
   polling-delay = <0>;
   polling-delay-passive = <0>;
   thermal-sensors = <&bat_therm>;

   trips {
    battery-crit-hi {
     temperature = <70000>;
     hysteresis = <2000>;
     type = "critical";
    };
   };
  };
 };

 bat_therm: thermistor {
  compatible = "samsung,1404-001221";
  io-channels = <&gpadc 0x02>; /* BatTemp */
  pullup-uv = <1800000>;
  pullup-ohm = <230000>;
  pulldown-ohm = <0>;
  #thermal-sensor-cells = <0>;
 };

 /* TI TXS0206 level translator for 2.9 V */
 sd_level_translator: regulator-gpio {
  compatible = "regulator-fixed";

  /* GPIO87 EN */
  gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>;
  enable-active-high;

  regulator-name = "sd-level-translator";
  regulator-min-microvolt = <2900000>;
  regulator-max-microvolt = <2900000>;
  regulator-type = "voltage";

  startup-delay-us = <200>;

  pinctrl-names = "default";
  pinctrl-0 = <&sd_level_translator_default>;
 };

 /* External LDO MIC5366-3.3YMT for eMMC */
 ldo_3v3_reg: regulator-gpio-ldo-3v3 {
  compatible = "regulator-fixed";
  regulator-name = "en-3v3-fixed-supply";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  gpio = <&gpio6 31 GPIO_ACTIVE_HIGH>;
  startup-delay-us = <5000>;
  enable-active-high;
  pinctrl-names = "default";
  pinctrl-0 = <&emmc_ldo_en_default_mode>;
 };

 /*
  * External Ricoh RP152L010B-TR LCD LDO regulator for the display.
  * LCD_PWR_EN controls both a 3.0V and 1.8V output.
  */
 lcd_3v0_reg: regulator-gpio-lcd-3v0 {
  compatible = "regulator-fixed";
  /* Supplied in turn by VBAT */
  regulator-name = "VREG_LCD_3V0";
  regulator-min-microvolt = <3000000>;
  regulator-max-microvolt = <3000000>;
  /* GPIO219 controls this regulator */
  gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
  enable-active-high;
  pinctrl-names = "default";
  pinctrl-0 = <&lcd_pwr_en_default_mode>;
 };
 lcd_1v8_reg: regulator-gpio-lcd-1v8 {
  compatible = "regulator-fixed";
  /* Supplied in turn by VBAT */
  regulator-name = "VREG_LCD_1V8";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  /* GPIO219 controls this regulator too */
  gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
  enable-active-high;
  pinctrl-names = "default";
  pinctrl-0 = <&lcd_pwr_en_default_mode>;
 };

 wlan_en: regulator-gpio-wlan-en {
  compatible = "regulator-fixed";
  regulator-name = "wl-reg-on";
  regulator-min-microvolt = <3000000>;
  regulator-max-microvolt = <3000000>;
  startup-delay-us = <200000>;
  /* GPIO215 WLAN_EN */
  gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
  enable-active-high;
  pinctrl-names = "default";
  pinctrl-0 = <&wlan_en_default_mode>;
 };

 vibrator {
  compatible = "gpio-vibrator";
  enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;
  pinctrl-names = "default";
  pinctrl-0 = <&vibrator_default>;
 };

 gpio-keys {
  compatible = "gpio-keys";
  pinctrl-names = "default";
  pinctrl-0 = <&gpio_keys_default_mode>;

  button-home {
   linux,code = <KEY_HOME>;
   label = "HOME";
   /* GPIO91 */
   gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
  };
  button-volup {
   linux,code = <KEY_VOLUMEUP>;
   label = "VOL+";
   /* GPIO67 */
   gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
  };
  button-voldown {
   linux,code = <KEY_VOLUMEDOWN>;
   label = "VOL-";
   /* GPIO92 */
   gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
  };
 };

 ktd253: backlight {
  compatible = "kinetic,ktd253";
  /* GPIO 69 */
  enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
  /* Default to 13/32 brightness */
  default-brightness = <13>;
  pinctrl-names = "default";
  pinctrl-0 = <&gpio_backlight_default_mode>;
 };

 /* Richtek RT8515GQW Flash LED Driver IC */
 flash {
  compatible = "richtek,rt8515";
  /* GPIO 140 */
  enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
  /* GPIO 141 */
  ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
  /*
   * RFS is 16 kOhm and RTS is 100 kOhm giving
   * the flash max current 343mA and torch max
   * current 55 mA.
   */
  richtek,rfs-ohms = <16000>;
  richtek,rts-ohms = <100000>;
  pinctrl-names = "default";
  pinctrl-0 = <&gpio_flash_default_mode>;

  led {
   function = LED_FUNCTION_FLASH;
   color = <LED_COLOR_ID_WHITE>;
   flash-max-timeout-us = <250000>;
   flash-max-microamp = <343750>;
   led-max-microamp = <55000>;
  };
 };

 i2c-gpio-0 {
  compatible = "i2c-gpio";
  sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  pinctrl-names = "default";
  pinctrl-0 = <&i2c_gpio_0_default>;
  #address-cells = <1>;
  #size-cells = <0>;
  /* TODO: this should be used by the NCP6914 Camera power management unit */
 };

 i2c-gpio-1 {
  compatible = "i2c-gpio";
  sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
  pinctrl-names = "default";
  pinctrl-0 = <&i2c_gpio_1_default>;
  #address-cells = <1>;
  #size-cells = <0>;
  magnetometer@c {
   compatible = "alps,hscdtd008a";
   reg = <0x0c>;
   avdd-supply = <&ab8500_ldo_aux1_reg>;
   dvdd-supply = <&ab8500_ldo_aux6_reg>;
  };
 };

 soc {
  // External Micro SD slot
  mmc@80126000 {
   arm,primecell-periphid = <0x10480180>;
   max-frequency = <100000000>;
   bus-width = <4>;
   cap-sd-highspeed;
   cap-mmc-highspeed;
   st,sig-pin-fbclk;
   full-pwr-cycle;
   vmmc-supply = <&ab8500_ldo_aux3_reg>;
   vqmmc-supply = <&sd_level_translator>;
   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&mc0_a_1_default>;
   pinctrl-1 = <&mc0_a_1_sleep>;
   cd-gpios = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
   status = "okay";
  };

  // WLAN SDIO channel
  mmc@80118000 {
   arm,primecell-periphid = <0x10480180>;
   max-frequency = <50000000>;
   bus-width = <4>;
   non-removable;
   cap-sd-highspeed;
   vmmc-supply = <&wlan_en>;
   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&mc1_a_2_default>;
   pinctrl-1 = <&mc1_a_2_sleep>;
   status = "okay";
   #address-cells = <1>;
   #size-cells = <0>;

   wifi@1 {
    compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
    reg = <1>;
    /* GPIO216 WL_HOST_WAKE */
    interrupt-parent = <&gpio6>;
    interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
    interrupt-names = "host-wake";
    pinctrl-names = "default";
    pinctrl-0 = <&wlan_default_mode>;
   };
  };

  /*
   * eMMC seems to be mostly Samsung KLM4G1YE4C "4YMD1R"
   */
  mmc@80005000 {
   arm,primecell-periphid = <0x10480180>;
          max-frequency = <100000000>;
   bus-width = <8>;
   non-removable;
   cap-mmc-highspeed;
   mmc-ddr-1_8v;
   no-sdio;
   no-sd;
   /* From datasheet page 26 figure 9: 300 ms set-up time for 4GB */
   post-power-on-delay-ms = <300>;
   vmmc-supply = <&ldo_3v3_reg>;
   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&mc2_a_1_default>;
   pinctrl-1 = <&mc2_a_1_sleep>;

   status = "okay";
  };

  /* GBF (Bluetooth) UART */
  serial@80120000 {
   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&u0_a_1_default>;
   pinctrl-1 = <&u0_a_1_sleep>;
   status = "okay";

   bluetooth {
    /* BCM4334B0 actually */
    compatible = "brcm,bcm4330-bt";
    shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
    device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
    host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
    pinctrl-names = "default";
    pinctrl-0 = <&bluetooth_default_mode>;
   };
  };

  /* GPF UART */
  serial@80121000 {
   status = "okay";
   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&u1rxtx_a_1_default &u1ctsrts_a_1_default>;
   pinctrl-1 = <&u1rxtx_a_1_sleep &u1ctsrts_a_1_sleep>;

   gnss {
    /* The CSRG05TA03-ICJE-R is a SirfStarV 5t chip */
    compatible = "csr,csrg05ta03-icje-r";
    /* GPS_RSTN on GPIO21 */
    reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
    /* GPS_ON_OFF on GPIO86 */
    sirf,onoff-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
    /* GPS_1V8 (VSMPS2) */
    vcc-supply = <&db8500_vsmps2_reg>;
    pinctrl-names = "default";
    pinctrl-0 = <&g05ta03_kyle_default>;
    /* According to /etc/sirfgps.conf */
    current-speed = <460800>;
   };
  };

  /* Debugging console UART connected to AB8505 USB */
  serial@80007000 {
   status = "okay";
   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&u2rxtx_c_1_default>;
   pinctrl-1 = <&u2rxtx_c_1_sleep>;
  };

  prcmu@80157000 {
   ab8505 {
    phy {
     pinctrl-names = "default", "sleep";
     pinctrl-0 = <&usb_a_1_default>;
     pinctrl-1 = <&usb_a_1_sleep>;
    };

    ab8500_fg {
     line-impedance-micro-ohms = <36000>;
    };

    regulator {
     ab8500_ldo_aux1 {
      /* Used for VDD for sensors */
      regulator-name = "AUX1";
      regulator-min-microvolt = <3000000>;
      regulator-max-microvolt = <3300000>;
     };

     ab8500_ldo_aux2 {
      /* Supplies the MMS touchscreen only with 3.3V */
      regulator-name = "AUX2";
      regulator-min-microvolt = <3300000>;
      regulator-max-microvolt = <3300000>;
     };

     ab8500_ldo_aux3 {
      /* Used for voltage for external MMC/SD card */
      regulator-name = "AUX3";
      regulator-min-microvolt = <1100000>;
      regulator-max-microvolt = <3300000>;
     };

     ab8500_ldo_aux4 {
      regulator-name = "AUX4";
      /* Hammer to 3.3V for the touchscreen */
      regulator-min-microvolt = <3300000>;
      regulator-max-microvolt = <3300000>;
     };

     ab8500_ldo_aux5 {
      regulator-name = "AUX5";
      /* 1.8V for the touchscreen */
      regulator-min-microvolt = <1800000>;
      regulator-max-microvolt = <1800000>;
     };

     ab8500_ldo_aux6 {
      regulator-name = "AUX6";
      /* Used by sensors for 1.8 V in R0.1+ */
      regulator-min-microvolt = <1800000>;
      regulator-max-microvolt = <1800000>;
     };

     ab8500_ldo_aux8 {
      /* Unused */
      regulator-name = "AUX8";
     };
    };
   };
  };

  /* I2C0 */
  i2c@80004000 {
   status = "okay";

   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&i2c0_a_1_default>;
   pinctrl-1 = <&i2c0_a_1_sleep>;

   proximity@44 {
    compatible = "sharp,gp2ap002s00f";
    clock-frequency = <400000>;
    reg = <0x44>;

    interrupt-parent = <&gpio4>;
    interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
    vdd-supply = <&ab8500_ldo_aux1_reg>;
    vio-supply = <&ab8500_ldo_aux6_reg>;
    pinctrl-names = "default";
    pinctrl-0 = <&gp2ap002_kyle_default>;
    sharp,proximity-far-hysteresis = /bits/ 8 <0x2f>;
    sharp,proximity-close-hysteresis = /bits/ 8 <0x0f>;
   };
  };

  /* I2C2 */
  i2c@80128000 {
   status = "okay";

   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&i2c2_b_2_default>;
   pinctrl-1 = <&i2c2_b_2_sleep>;

   accel@18 {
    compatible = "bosch,bma254";
    clock-frequency = <400000>;
    reg = <0x18>;

    mount-matrix = "-1", "0", "0",
            "0", "-1", "0",
            "0", "0", "-1";
    vdd-supply = <&ab8500_ldo_aux1_reg>;
    vddio-supply = <&ab8500_ldo_aux6_reg>;
   };
  };

  /* I2C3 */
  i2c@80110000 {
   status = "okay";

   pinctrl-names = "default", "sleep";
   pinctrl-0 = <&i2c3_c_2_default>;
   pinctrl-1 = <&i2c3_c_2_sleep>;

   /* Melfas MMS134S touchscreen */
   touchscreen@48 {
    compatible = "melfas,mms134s";
    reg = <0x48>;
    /* GPIO218 for IRQ */
    interrupt-parent = <&gpio6>;
    interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
    /* AVDD is "analog supply", 2.57-3.47 V */
    avdd-supply = <&ab8500_ldo_aux2_reg>;
    /* VDD is "digital supply" 1.71-3.47V */
    vdd-supply = <&ab8500_ldo_aux5_reg>;

    touchscreen-size-x = <480>;
    touchscreen-size-y = <800>;

    pinctrl-names = "default";
    pinctrl-0 = <&mms134s_kyle_default>;
   };
  };

  mcde@a0350000 {
   status = "okay";
   pinctrl-names = "default";
   pinctrl-0 = <&dsi_default_mode>;

   dsi@a0351000 {
    panel {
     /*
      * NT35510-based Hydis HVA40WV1
      * Apparently some Kyle models can have a NT35512 fitted
      * here instead. In that case the boot loader needs to
      * modify this compatible.
      */
     compatible = "hydis,hva40wv1", "novatek,nt35510";
     reg = <0>;
     /* v_lcd_3v0 2.3-4.8V */
     vdd-supply = <&lcd_3v0_reg>;
     /* v_lcd_1v8 1.65-3.3V */
     vddi-supply = <&lcd_1v8_reg>;
     /* GPIO 139 */
     reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
     pinctrl-names = "default";
     pinctrl-0 = <&display_default_mode>;
     backlight = <&ktd253>;
    };
   };
  };
 };
};

&pinctrl {
 /*
  * This extends the MC0_A_1 default config to include
  * the card detect GPIO217 line.
  */
 sdi0 {
  mc0_a_1_default {
   default_cfg1 {
    /* GPIO18, 19 & 20 unused so pull down */
    ste,config = <&gpio_in_pd>;
   };
   default_cfg4 {
    pins = "GPIO217_AH12"; /* card detect */
    ste,config = <&gpio_in_pd>;
   };
  };
 };

 mcde {
  dsi_default_mode: dsi_default {
   default_mux1 {
    /* Mux in VSI0 used for DSI TE */
    function = "lcd";
    groups = "lcdvsi0_a_1"; /* VSI0 for LCD */
   };
   default_cfg1 {
    pins = "GPIO68_E1"; /* VSI0 */
    ste,config = <&in_nopull>;
   };
  };
 };

 /* Two GPIO lines used by the display */
 display {
  display_default_mode: display_default {
   kyle_cfg1 {
    /*
     * OLED DETECT or check_pba, this appears to be high
     * on "PBA" which I guess is "prototype board A".
     */
    pins = "GPIO93_B7";
    ste,config = <&gpio_in_nopull>;
   };
   kyle_cfg2 {
    pins = "GPIO139_C9";
    /*
     * MIPI_DSI0_RESET_N resets the display, leave high
     * (de-asserted) so we only assert reset explicitly
     * from the display driver.
     */
    ste,config = <&gpio_out_hi>;
   };
  };
 };

 /* GPIO that enables the LDO regulator for the LCD display */
 lcd-ldo {
  lcd_pwr_en_default_mode: lcd_pwr_en_default {
   /* LCD_PWR_EN on GPIO219 */
   kyle_cfg1 {
    pins = "GPIO219_AG10";
    ste,config = <&gpio_out_hi>;
   };
  };
 };

 backlight {
  gpio_backlight_default_mode: backlight_default {
   kyle_cfg1 {
    pins = "GPIO69_E2"; /* LCD_BL_CTRL */
    ste,config = <&gpio_out_lo>;
   };
  };
 };
 flash {
  gpio_flash_default_mode: flash_default {
   kyle_cfg1 {
    pins = "GPIO140_B11", "GPIO141_C12";
    ste,config = <&gpio_out_lo>;
   };
  };
 };
 /* GPIO that enables the 2.9V SD card level translator */
 sd-level-translator {
  sd_level_translator_default: sd_level_translator_default {
   /* level shifter on GPIO87 */
   kyle_cfg1 {
    pins = "GPIO87_B3";
    ste,config = <&gpio_out_hi>;
   };
  };
 };
 /* GPIO that enables the LDO regulator for the eMMC */
 emmc-ldo {
  emmc_ldo_en_default_mode: emmc_ldo_default {
   /* LDO enable on GPIO223 */
   kyle_cfg1 {
    pins = "GPIO223_AH9";
    ste,config = <&gpio_out_hi>;
   };
  };
 };
 /* GPIO keys */
 gpio-keys {
  gpio_keys_default_mode: gpio_keys_default {
   kyle_cfg1 {
    pins = "GPIO67_G2", /* VOL UP */
           "GPIO91_B6", /* HOME */
           "GPIO92_D6"; /* VOL DOWN */
     ste,config = <&gpio_in_pu>;
   };
  };
 };
 /* Interrupt line for light/proximity sensor GP2AP002 */
 gp2ap002 {
  gp2ap002_kyle_default: gp2ap002_kyle {
   kyle_cfg1 {
    pins = "GPIO146_D13";
    ste,config = <&gpio_in_nopull>;
   };
  };
 };
 /* GPIO-based I2C bus for NCP6914 */
 i2c-gpio-0 {
  i2c_gpio_0_default: i2c_gpio_0 {
   kyle_cfg1 {
    pins = "GPIO143_D12", "GPIO144_B13";
    ste,config = <&gpio_in_nopull>;
   };
  };
 };
 /* GPIO-based I2C bus for ALPS HSCD compass */
 i2c-gpio-1 {
  i2c_gpio_1_default: i2c_gpio_1 {
   kyle_cfg1 {
    pins = "GPIO151_B17", "GPIO152_D16";
    ste,config = <&gpio_in_nopull>;
   };
  };
 };
 wlan {
  wlan_default_mode: wlan_default {
   kyle_cfg1 {
    pins = "GPIO216_AG12";
    ste,config = <&gpio_in_pd>;
   };
  };
  wlan_en_default_mode: wlan_en_default {
   kyle_cfg2 {
    pins = "GPIO215_AH13";
    ste,config = <&gpio_out_lo>;
   };
  };
 };
 bluetooth {
  bluetooth_default_mode: bluetooth_default {
   kyle_cfg1 {
    pins = "GPIO199_AH23", "GPIO222_AJ9";
    ste,config = <&gpio_out_lo>;
   };
   kyle_cfg2 {
    pins = "GPIO97_D9";
    ste,config = <&gpio_in_nopull>;
   };
  };
 };
 vibrator {
  vibrator_default: vibrator_default {
   kyle_cfg1 {
    pins = "GPIO195_AG28"; /* MOT_EN */
    ste,config = <&gpio_out_lo>;
   };
  };
 };
 /* Interrupt line for the Melfas MMS134S touchscreen */
 touchscreen {
  mms134s_kyle_default: mms134s_kyle {
   kyle_cfg1 {
    pins = "GPIO218_AH11";
    ste,config = <&gpio_in_nopull>;
   };
  };
 };
 g05ta03 {
  g05ta03_kyle_default: g05ta03 {
   /* Reset line, start out de-asserted */
   kyle_cfg1 {
    pins = "GPIO21_AB3";
    ste,config = <&gpio_out_hi>;
   };
   /* GPS_ON_OFF, start out deasserted (off) */
   kyle_cfg2 {
    pins = "GPIO86_C6";
    ste,config = <&gpio_out_lo>;
   };
  };
 };
};

&ab8505_gpio {
 /* Hog a few default settings */
 pinctrl-names = "default";
 pinctrl-0 = <&gpio_default>;

 gpio {
  gpio_default: gpio_default {
   kyle_mux {
    /* Change unused pins to GPIO mode */
    function = "gpio";
    groups = "gpio3_a_1", /* default: SysClkReq4 */
      "gpio14_a_1"; /* default: PWMOut1 */
   };
   kyle_cfg1 {
    pins = "GPIO11_B17", "GPIO13_D17", "GPIO50_L4";
    bias-disable;
   };
  };
 };
};

[ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge