# 
# Copyright 2018 The Chromium OS Authors. All rights reserved.
#  
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# 


chromeos:
  family:
    audio:
      audio-type: &audio_type
        card: "bxtda7219max"
        volume: "cras-config/{cras-config-dir}/{card}"
        dsp-ini: "cras-config/{cras-config-dir}/dsp.ini"
        hifi-conf: "ucm-config/{card}.{ucm-suffix}/HiFi.conf"
        alsa-conf: "ucm-config/{card}.{ucm-suffix}/{card}.{ucm-suffix}.conf"
        topology-bin: "topology/5a98-reef-{topology-name}-8-tplg.bin"
      audio-type-1mic: &audio_type_1mic
        card: "bxtda7219max"
        volume: "cras-config/{cras-config-dir}/{card}"
        dsp-ini: "cras-config/{cras-config-dir}/dsp.ini"
        hifi-conf: "ucm-config/1mic/HiFi.conf"
        alsa-conf: "ucm-config/1mic/{card}.conf"
        topology-bin: "topology/5a98-reef-{topology-name}-8-tplg.bin"

      audio-type-2mic: &audio_type_2mic
        card: "bxtda7219max"
        cras-config-dir: "2mic"
        ucm-suffix: "2mic"
        topology-name: "2mic"
        volume: "cras-config/{cras-config-dir}/{card}"
        dsp-ini: "cras-config/{cras-config-dir}/dsp.ini"
        hifi-conf: "ucm-config/2mic/Wibble"
        alsa-conf: "ucm-config/2mic/{card}.conf"
    bcs:
      touch-bcs: &touch_bcs
        overlay: "overlay-reef-private"
        package: "chromeos-touch-firmware-reef"
        tarball: "chromeos-base/{package}/{package}-{ebuild-version}.tbz2"
        ebuild-version: "1.0-r9"
    power:
      power-type-clamshell: &power_type_clamshell
        charging-ports: "CROS_USB_PD_CHARGER0 LEFT\nCROS_USB_PD_CHARGER1 RIGHT"
        power-supply-full-factor: "0.12"
        suspend-to-idle: "1"
      power-type-convertible: &power_type_convertible
        charging-ports: "CROS_USB_PD_CHARGER0 LEFT"
        power-supply-full-factor: "0.12"
    firmware:
      script: "updater4.sh"
      caroline: &shared
        bcs-overlay: "overlay-reef-private"
        ec-image: "bcs://Caroline_EC.2017.21.1.tbz2"
        pd-image: "bcs://Caroline_PD.2017.21.1.tbz2"
        main-image: "bcs://Caroline.2017.21.1.tbz2"
        main-rw-image: "bcs://Caroline.2017.41.0.tbz2"
        build-targets:
          coreboot: "caroline"
          ec: "caroline"
          depthcharge: "caroline"
          libpayload: "caroline"
    mapping:
      sku-map@0:
        platform-name: "Reef"
        smbios-name-match: "Reef"
        #
        # This is an example! It does not match any real
        # family.
        #
        # Some yaml problem: found undefined alias 'reef_touch'
        #simple-sku-map: [ 4, *reef_touch, 5, *reef_notouch, 8, *whitetip, 9, *whitetip1, 10, *blacktip, 11, *blacktip_touch, 12, *blacktip_notouch, 20, *caroline, 21, *broken ]
      sku-map@1:
        platform-name: "Pyro"
        smbios-name-match: "Pyro"
        # Some yaml problem: found undefined alias 'pyro'
        #single-sku: *pyro
    touch:
      # Example of how to put firmware in BCS
      elan-touchscreen: &elan_touchscreen
        bcs-type: *touch_bcs
        vendor: "elan"
        firmware-bin: "{vendor}/{pid}_{version}.bin"
        firmware-symlink: "{vendor}ts_i2c_{pid}.bin"
      elan-touchpad: &elan_touchpad
        bcs-type: *touch_bcs
        vendor: "elan"
        firmware-bin: "{vendor}/{pid}_{version}.bin"
        firmware-symlink: "{vendor}_i2c_{pid}.bin"
      wacom-stylus: &wacom_stylus
        vendor: "wacom"
        firmware-bin: "wacom/{version}.hex"
        firmware-symlink: "wacom_firmware_{MODEL}.bin"

  models:
    - name: pyro
      wallpaper: "default"
      # string-list: [ "default", "more" ]
      # bool-prop: true
      audio:
        main:
          audio-type: *audio_type
          cras-config-dir: "pyro"
          ucm-suffix: "pyro"
          topology-name: "pyro"
      power:
        power-type: *power_type_clamshell
        power-supply-full-factor: "0.20"
      firmware:
        bcs-overlay: "overlay-pyro-private"
        ec-image: "bcs://Pyro_EC.9042.87.1.tbz2"
        pd-image: "bcs://Pyro_PD.9042.87.1.tbz2"
        main-image: "bcs://Pyro.9042.87.1.tbz2"
        main-rw-image: "bcs://Pyro.9042.110.0.tbz2"
        build-targets:
          coreboot: "pyro"
          ec: "pyro"
          depthcharge: "pyro"
          libpayload: "pyro"
      thermal:
        dptf-dv: "pyro/dptf.dv"
      touch:
        present: "probe"
        probe-regex: "[Tt]ouchscreen|WCOMNTN2"
        stylus:
          touch-type: *wacom_stylus
          version: "4209"
        touchscreen:
          touch-type: *elan_touchscreen
          pid: "0a97"
          version: "1012"
    - name: caroline
      # default: *pyro
      wallpaper: "caroline"
      #audio:
        #main:
          #cras-config-dir: "caroline"
      firmware:
        shares: *shared
    - name: reef
      wallpaper: "epic"
      arc:
        hw-features: "reef/arc++/hardware_features"
      power:
        power-type: *power_type_clamshell
        set-wifi-transmit-power-for-tablet-mode: 1
      firmware:
        bcs-overlay: "overlay-reef-private"
        ec-image: "bcs://Reef_EC.9042.87.1.tbz2"
        main-image: "bcs://Reef.9042.87.1.tbz2"
        main-rw-image: "bcs://Reef.9042.110.0.tbz2"
        build-targets:
          coreboot: "pyro"
          ec: "pyro"
          depthcharge: "pyro"
          libpayload: "pyro"
      submodels:
        touch: &reef_touch
          touch:
            present: "yes"
          audio:
            main:
              audio-type: *audio_type_1mic
              cras-config-dir: "1mic"
              ucm-suffix: "1mic"
              topology-name: "1mic"
          thermal:
            dptf-dv: "reef_touch/dptf.dv"
        notouch: &reef_notouch
          touch:
            present: "no"
          audio:
            main:
              audio-type: *audio_type_2mic
          thermal:
            dptf-dv: "reef_notouch/dptf.dv"
      touch:
        stylus:
          touch-type: *wacom_stylus
          version: "4209"
        touchpad:
          touch-type: *elan_touchpad
          pid: "97.0"
          version: "6.0"
        touchscreen@0:
          touch-type: *elan_touchscreen
          pid: "3062"
          version: "5602"
        touchscreen@1:
          touch-type: *elan_touchscreen
          pid: "306e"
          version: "5611"
    - name: 'broken'
      # default: *caroline
      firmware:
        bcs-overlay: "overlay-reef-private"
        main-image: "bcs://Reef.9042.87.1.tbz2"
        no-firmware: true

    # Whitelabel model
    - name: 'whitetip'
      powerd-prefs: "whitetip"
      firmware:
        sig-id-in-customization-id: true
        shares: *shared
      audio:
        main:
          audio-type: *audio_type
          cras-config-dir: "reefcras"
          ucm-suffix: "reefucm"
          topology-name: "reeftop"
      touch:
        present: "yes"
        stylus:
          touch-type: *wacom_stylus
          version: "4209"

    - name: 'whitetip1'
      # whitelabel: *whitetip
      wallpaper: "shark"
      brand-code: "SHAR"
      firmware:
        key-id: "WHITETIP1"
        no-firmware: true

    - name: 'whitetip2'
      # whitelabel: *whitetip
      wallpaper: "more_shark"
      brand-code: "SHAQ"
      firmware:
        key-id: "WHITETIP2"

    # Whitelabel model
    - name: 'blacktip'
      firmware:
        shares: *shared
      submodels:
        touch: &blacktip_touch
          touch:
            present: "yes"
        notouch: &blacktip_notouch
          touch:
            present: "no"
      whitelabels:
        blacktip1:
          wallpaper: "dark"
          brand-code: "HBBN"
          key-id: "BLACKTIP1"
        blacktip2:
          wallpaper: "darker"
          brand-code: "HBBO"
          key-id: "BLACKTIP2"

#include "target_dirs.yamli"
