# 
# 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-notpyro-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: "4210"
        touchscreen:
          touch-type: *elan_touchscreen
          pid: "0a97"
          version: "1012"
    - name: caroline
      # default: *pyro
      wallpaper: "not-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"
