1// Copyright 2017 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#pragma once
6
7#include "zircon_device.h"
8
9namespace audio {
10namespace intel_hda {
11
12class IntelHDADevice : public ZirconDevice {
13public:
14    zx_status_t Probe();
15
16    uint16_t vid()       const { return vid_; }
17    uint16_t did()       const { return did_; }
18    uint8_t  ihda_vmaj() const { return ihda_vmaj_; }
19    uint8_t  ihda_vmin() const { return ihda_vmin_; }
20    uint8_t  rev_id()    const { return rev_id_; }
21    uint8_t  step_id()   const { return step_id_; }
22
23protected:
24    explicit IntelHDADevice(const char* const dev_name) : ZirconDevice(dev_name) { }
25
26    uint16_t vid_       = 0u;
27    uint16_t did_       = 0u;
28    uint8_t  ihda_vmaj_ = 0u;
29    uint8_t  ihda_vmin_ = 0u;
30    uint8_t  rev_id_    = 0u;
31    uint8_t  step_id_   = 0u;
32};
33
34}  // namespace audio
35}  // namespace intel_hda
36