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 
9 namespace audio {
10 namespace intel_hda {
11 
12 class IntelHDADevice : public ZirconDevice {
13 public:
14     zx_status_t Probe();
15 
vid()16     uint16_t vid()       const { return vid_; }
did()17     uint16_t did()       const { return did_; }
ihda_vmaj()18     uint8_t  ihda_vmaj() const { return ihda_vmaj_; }
ihda_vmin()19     uint8_t  ihda_vmin() const { return ihda_vmin_; }
rev_id()20     uint8_t  rev_id()    const { return rev_id_; }
step_id()21     uint8_t  step_id()   const { return step_id_; }
22 
23 protected:
IntelHDADevice(const char * const dev_name)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