summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVijay Kumar Banerjee <vijaykumar9597@gmail.com>2019-08-04 01:49:41 +0530
committerChristian Mauderer <oss@c-mauderer.de>2019-08-11 15:57:54 +0200
commit2cf7b6b3e4f3f93c50632781b3898efd6b38cd03 (patch)
tree48655a93b588ac8ee9e9882b7ca04e5f1178f749
parentb7458b0915f9b0141defbb231250f069b85e796a (diff)
downloadrtems-libbsd-2cf7b6b3e4f3f93c50632781b3898efd6b38cd03.tar.bz2
TDA19988: Port to RTEMS
-rw-r--r--Makefile.todo26
-rw-r--r--buildset/default.ini1
-rw-r--r--libbsd.py41
-rw-r--r--rtemsbsd/include/bsp/nexus-devices.h1
-rw-r--r--rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h65
-rw-r--r--rtemsbsd/include/rtems/bsd/local/clknode_if.h92
-rw-r--r--rtemsbsd/include/rtems/bsd/local/hdmi_if.h71
-rw-r--r--rtemsbsd/include/rtems/bsd/local/opt_videomode.h0
-rw-r--r--rtemsbsd/local/clknode_if.c40
-rw-r--r--rtemsbsd/local/hdmi_if.c35
10 files changed, 372 insertions, 0 deletions
diff --git a/Makefile.todo b/Makefile.todo
index de3d0c5b..cad9b2a0 100644
--- a/Makefile.todo
+++ b/Makefile.todo
@@ -49,6 +49,10 @@ GENERATED += $(LOCAL_INC)/iicbus_if.h
GENERATED += $(LOCAL_SRC)/iicbus_if.c
GENERATED += $(LOCAL_INC)/fdt_pinctrl_if.h
GENERATED += $(LOCAL_SRC)/fdt_pinctrl_if.c
+GENERATED += $(LOCAL_INC)/clknode_if.h
+GENERATED += $(LOCAL_SRC)/clknode_if.c
+GENERATED += $(LOCAL_INC)/hdmi_if.h
+GENERATED += $(LOCAL_SRC)/hdmi_if.c
GENERATED += rtemsbsd/include/machine/rtems-bsd-regdomain.h
GENERATED += rtemsbsd/rtems/rtems-bsd-regdomain.c
@@ -252,6 +256,28 @@ $(LOCAL_SRC)/fdt_pinctrl_if.c: $(FREEBSD_SRC)/sys/dev/fdt/fdt_pinctrl_if.m
-e 's|#include "fdt_pinctrl_if.h"|#include <rtems/bsd/local/fdt_pinctrl_if.h>|'
mv fdt_pinctrl_if.c $@
+$(LOCAL_INC)/clknode_if.h: $(FREEBSD_SRC)/sys/dev/extres/clk/clknode_if.m
+ awk -f $(TOOLS)/makeobjops.awk $< -h
+ mv clknode_if.h $@
+
+$(LOCAL_SRC)/clknode_if.c: $(FREEBSD_SRC)/sys/dev/extres/clk/clknode_if.m
+ awk -f $(TOOLS)/makeobjops.awk $< -c
+ sed -i clknode_if.c \
+ -e '1 i\#include <machine/rtems-bsd-kernel-space.h>\n' \
+ -e 's|#include "clknode_if.h"|#include <rtems/bsd/local/clknode_if.h>|'
+ mv clknode_if.c $@
+
+$(LOCAL_INC)/hdmi_if.h: $(FREEBSD_SRC)/sys/dev/hdmi/hdmi_if.m
+ awk -f $(TOOLS)/makeobjops.awk $< -h
+ mv hdmi_if.h $@
+
+$(LOCAL_SRC)/hdmi_if.c: $(FREEBSD_SRC)/sys/dev/hdmi/hdmi_if.m
+ awk -f $(TOOLS)/makeobjops.awk $< -c
+ sed -i hdmi_if.c \
+ -e '1 i\#include <machine/rtems-bsd-kernel-space.h>\n' \
+ -e 's|#include "hdmi_if.h"|#include <rtems/bsd/local/hdmi_if.h>|'
+ mv hdmi_if.c $@
+
$(LOCAL_SRC)/gpio_if.c: $(FREEBSD_SRC)/sys/dev/gpio/gpio_if.m
awk -f $(TOOLS)/makeobjops.awk $< -c
mv gpio_if.c $@
diff --git a/buildset/default.ini b/buildset/default.ini
index eabaec5f..4834e6d1 100644
--- a/buildset/default.ini
+++ b/buildset/default.ini
@@ -38,6 +38,7 @@ dev_usb_wlan = off
dev_wlan_rtwn = off
iic = on
pinmux = on
+display = on
dhcpcd = on
dpaa = on
evdev = on
diff --git a/libbsd.py b/libbsd.py
index 7c3d84ca..bdc91776 100644
--- a/libbsd.py
+++ b/libbsd.py
@@ -777,6 +777,46 @@ class iic(builder.Module):
mm.generator['source']()
)
+
+#
+# DISPLAY
+#
+class display(builder.Module):
+
+ def __init__(self, manager):
+ super(display, self).__init__(manager, type(self).__name__)
+
+ def generate(self):
+ mm = self.manager
+ self.addKernelSpaceHeaderFiles(
+ [
+ 'sys/dev/extres/clk/clk.h',
+ 'sys/dev/videomode/videomode.h',
+ 'sys/dev/videomode/edidvar.h',
+ 'sys/dev/videomode/edidreg.h',
+ 'sys/dev/videomode/ediddevs.h',
+ 'sys/dev/videomode/ediddevs_data.h',
+ 'sys/dev/videomode/vesagtf.h',
+ ]
+ )
+ self.addKernelSpaceSourceFiles(
+ [
+ 'sys/arm/ti/am335x/tda19988.c',
+ 'sys/dev/videomode/pickmode.c',
+ 'sys/dev/videomode/edid.c',
+ 'sys/dev/videomode/vesagtf.c',
+ 'sys/dev/videomode/videomode.c',
+ ],
+ mm.generator['source']()
+ )
+ self.addRTEMSSourceFiles(
+ [
+ 'local/clknode_if.c',
+ 'local/hdmi_if.c',
+ ],
+ mm.generator['source']()
+ )
+
#
# PINMUX
#
@@ -5167,6 +5207,7 @@ def load(mm):
mm.addModule(evdev(mm))
mm.addModule(iic(mm))
mm.addModule(pinmux(mm))
+ mm.addModule(display(mm))
mm.addModule(dev_usb(mm))
mm.addModule(dev_usb_controller(mm))
diff --git a/rtemsbsd/include/bsp/nexus-devices.h b/rtemsbsd/include/bsp/nexus-devices.h
index 7c6ff380..e330679d 100644
--- a/rtemsbsd/include/bsp/nexus-devices.h
+++ b/rtemsbsd/include/bsp/nexus-devices.h
@@ -65,6 +65,7 @@ SYSINIT_DRIVER_REFERENCE(ukphy, miibus);
SYSINIT_DRIVER_REFERENCE(rtems_i2c, simplebus);
SYSINIT_DRIVER_REFERENCE(ofw_iicbus, rtems_i2c);
SYSINIT_DRIVER_REFERENCE(iic, iicbus);
+SYSINIT_DRIVER_REFERENCE(tda, iicbus);
SYSINIT_DRIVER_REFERENCE(iicbus, rtems_i2c);
#ifdef RTEMS_BSD_MODULE_NET80211
SYSINIT_DRIVER_REFERENCE(rtwn_usb, uhub);
diff --git a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h
index e7bc6d6e..1606543c 100644
--- a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h
+++ b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h
@@ -563,7 +563,53 @@
#define clean_unrhdrl _bsd_clean_unrhdrl
#define ClearCheckNewLink _bsd_ClearCheckNewLink
#define clear_unrhdr _bsd_clear_unrhdr
+#define clk_disable _bsd_clk_disable
+#define clkdom_create _bsd_clkdom_create
+#define clkdom_dump _bsd_clkdom_dump
+#define clkdom_finit _bsd_clkdom_finit
+#define clkdom_get_by_dev _bsd_clkdom_get_by_dev
+#define clkdom_set_ofw_mapper _bsd_clkdom_set_ofw_mapper
+#define clkdom_unlock _bsd_clkdom_unlock
+#define clkdom_xlock _bsd_clkdom_xlock
+#define clk_enable _bsd_clk_enable
+#define clk_get_by_id _bsd_clk_get_by_id
+#define clk_get_by_name _bsd_clk_get_by_name
+#define clk_get_by_ofw_index _bsd_clk_get_by_ofw_index
+#define clk_get_by_ofw_index_prop _bsd_clk_get_by_ofw_index_prop
+#define clk_get_by_ofw_name _bsd_clk_get_by_ofw_name
+#define clk_get_freq _bsd_clk_get_freq
+#define clk_get_name _bsd_clk_get_name
+#define clk_get_parent _bsd_clk_get_parent
#define clk_intr_event _bsd_clk_intr_event
+#define clknode_class _bsd_clknode_class
+#define clknode_create _bsd_clknode_create
+#define clknode_disable _bsd_clknode_disable
+#define clknode_enable _bsd_clknode_enable
+#define clknode_find_by_id _bsd_clknode_find_by_id
+#define clknode_find_by_name _bsd_clknode_find_by_name
+#define clknode_get_device _bsd_clknode_get_device
+#define clknode_get_flags _bsd_clknode_get_flags
+#define clknode_get_freq _bsd_clknode_get_freq
+#define clknode_get_name _bsd_clknode_get_name
+#define clknode_get_parent _bsd_clknode_get_parent
+#define clknode_get_parent_idx _bsd_clknode_get_parent_idx
+#define clknode_get_parent_names _bsd_clknode_get_parent_names
+#define clknode_get_parents_num _bsd_clknode_get_parents_num
+#define clknode_get_softc _bsd_clknode_get_softc
+#define clknode_init_parent_idx _bsd_clknode_init_parent_idx
+#define clknode_register _bsd_clknode_register
+#define clknode_set_freq _bsd_clknode_set_freq
+#define clknode_set_parent_by_idx _bsd_clknode_set_parent_by_idx
+#define clknode_set_parent_by_name _bsd_clknode_set_parent_by_name
+#define clknode_stop _bsd_clknode_stop
+#define clk_parse_ofw_clk_name _bsd_clk_parse_ofw_clk_name
+#define clk_parse_ofw_out_names _bsd_clk_parse_ofw_out_names
+#define clk_release _bsd_clk_release
+#define clk_set_assigned _bsd_clk_set_assigned
+#define clk_set_freq _bsd_clk_set_freq
+#define clk_set_parent_by_clk _bsd_clk_set_parent_by_clk
+#define clk_stop _bsd_clk_stop
+#define clk_test_freq _bsd_clk_test_freq
#define comp_algo_deflate _bsd_comp_algo_deflate
#define comp_algorithm_lookup _bsd_comp_algorithm_lookup
#define config_intrhook_disestablish _bsd_config_intrhook_disestablish
@@ -775,6 +821,9 @@
#define drbr_needs_enqueue_drv _bsd_drbr_needs_enqueue_drv
#define driver_module_handler _bsd_driver_module_handler
#define dwc_driver _bsd_dwc_driver
+#define dwc_hdmi_get_edid _bsd_dwc_hdmi_get_edid
+#define dwc_hdmi_init _bsd_dwc_hdmi_init
+#define dwc_hdmi_set_videomode _bsd_dwc_hdmi_set_videomode
#define dwc_otg_attach _bsd_dwc_otg_attach
#define dwc_otg_detach _bsd_dwc_otg_detach
#define dwc_otg_driver _bsd_dwc_otg_driver
@@ -1087,6 +1136,13 @@
#define e1000_write_vfta_generic _bsd_e1000_write_vfta_generic
#define e1000_write_vfta_i350 _bsd_e1000_write_vfta_i350
#define e1000_write_xmdio_reg _bsd_e1000_write_xmdio_reg
+#define edid_is_valid _bsd_edid_is_valid
+#define edid_nproducts _bsd_edid_nproducts
+#define edid_nvendors _bsd_edid_nvendors
+#define edid_parse _bsd_edid_parse
+#define edid_print _bsd_edid_print
+#define edid_products _bsd_edid_products
+#define edid_vendors _bsd_edid_vendors
#define ehci_detach _bsd_ehci_detach
#define ehci_get_port_speed_hostc _bsd_ehci_get_port_speed_hostc
#define ehci_get_port_speed_portsc _bsd_ehci_get_port_speed_portsc
@@ -2736,6 +2792,7 @@
#define m_checkalignment _bsd_m_checkalignment
#define m_clget _bsd_m_clget
#define m_cljget _bsd_m_cljget
+#define M_CLOCK _bsd_M_CLOCK
#define m_collapse _bsd_m_collapse
#define m_copyback _bsd_m_copyback
#define m_copydata _bsd_m_copydata
@@ -3446,6 +3503,8 @@
#define pgsigio _bsd_pgsigio
#define phashinit _bsd_phashinit
#define phashinit_flags _bsd_phashinit_flags
+#define pick_mode_by_dotclock _bsd_pick_mode_by_dotclock
+#define pick_mode_by_ref _bsd_pick_mode_by_ref
#define pipe_dtor _bsd_pipe_dtor
#define pipe_named_ctor _bsd_pipe_named_ctor
#define pipeselwakeup _bsd_pipeselwakeup
@@ -4618,6 +4677,7 @@
#define soreceive_generic _bsd_soreceive_generic
#define soreserve _bsd_soreserve
#define sorflush _bsd_sorflush
+#define sort_modes _bsd_sort_modes
#define sosend _bsd_sosend
#define sosend_dgram _bsd_sosend_dgram
#define sosend_generic _bsd_sosend_generic
@@ -4726,6 +4786,7 @@
#define sysctl_handle_uma_zone_max _bsd_sysctl_handle_uma_zone_max
#define sysctl___hw _bsd_sysctl___hw
#define sysctl___hw_bus _bsd_sysctl___hw_bus
+#define sysctl___hw_clock _bsd_sysctl___hw_clock
#define sysctl___hw_fdt _bsd_sysctl___hw_fdt
#define sysctl___hw_pci _bsd_sysctl___hw_pci
#define sysctl___hw_sdhci _bsd_sysctl___hw_sdhci
@@ -5459,6 +5520,10 @@
#define uuid_ether_add _bsd_uuid_ether_add
#define uuid_ether_del _bsd_uuid_ether_del
#define vht80_chan_ranges _bsd_vht80_chan_ranges
+#define vesagtf_mode _bsd_vesagtf_mode
+#define vesagtf_mode_params _bsd_vesagtf_mode_params
+#define videomode_count _bsd_videomode_count
+#define videomode_list _bsd_videomode_list
#define vlan_cookie_p _bsd_vlan_cookie_p
#define vlan_devat_p _bsd_vlan_devat_p
#define vlan_input_p _bsd_vlan_input_p
diff --git a/rtemsbsd/include/rtems/bsd/local/clknode_if.h b/rtemsbsd/include/rtems/bsd/local/clknode_if.h
new file mode 100644
index 00000000..97f4c956
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/clknode_if.h
@@ -0,0 +1,92 @@
+/*
+ * This file is @generated automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * freebsd-org/sys/dev/extres/clk/clknode_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+
+#ifndef _clknode_if_h_
+#define _clknode_if_h_
+
+
+struct clknode;
+
+/** @brief Unique descriptor for the CLKNODE_INIT() method */
+extern struct kobjop_desc clknode_init_desc;
+/** @brief A function implementing the CLKNODE_INIT() method */
+typedef int clknode_init_t(struct clknode *clk, device_t dev);
+
+static __inline int CLKNODE_INIT(struct clknode *clk, device_t dev)
+{
+ kobjop_t _m;
+ int rc;
+ KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_init);
+ rc = ((clknode_init_t *) _m)(clk, dev);
+ return (rc);
+}
+
+/** @brief Unique descriptor for the CLKNODE_RECALC_FREQ() method */
+extern struct kobjop_desc clknode_recalc_freq_desc;
+/** @brief A function implementing the CLKNODE_RECALC_FREQ() method */
+typedef int clknode_recalc_freq_t(struct clknode *clk, uint64_t *freq);
+
+static __inline int CLKNODE_RECALC_FREQ(struct clknode *clk, uint64_t *freq)
+{
+ kobjop_t _m;
+ int rc;
+ KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_recalc_freq);
+ rc = ((clknode_recalc_freq_t *) _m)(clk, freq);
+ return (rc);
+}
+
+/** @brief Unique descriptor for the CLKNODE_SET_FREQ() method */
+extern struct kobjop_desc clknode_set_freq_desc;
+/** @brief A function implementing the CLKNODE_SET_FREQ() method */
+typedef int clknode_set_freq_t(struct clknode *clk, uint64_t fin,
+ uint64_t *fout, int flags, int *done);
+
+static __inline int CLKNODE_SET_FREQ(struct clknode *clk, uint64_t fin,
+ uint64_t *fout, int flags, int *done)
+{
+ kobjop_t _m;
+ int rc;
+ KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_set_freq);
+ rc = ((clknode_set_freq_t *) _m)(clk, fin, fout, flags, done);
+ return (rc);
+}
+
+/** @brief Unique descriptor for the CLKNODE_SET_GATE() method */
+extern struct kobjop_desc clknode_set_gate_desc;
+/** @brief A function implementing the CLKNODE_SET_GATE() method */
+typedef int clknode_set_gate_t(struct clknode *clk, bool enable);
+
+static __inline int CLKNODE_SET_GATE(struct clknode *clk, bool enable)
+{
+ kobjop_t _m;
+ int rc;
+ KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_set_gate);
+ rc = ((clknode_set_gate_t *) _m)(clk, enable);
+ return (rc);
+}
+
+/** @brief Unique descriptor for the CLKNODE_SET_MUX() method */
+extern struct kobjop_desc clknode_set_mux_desc;
+/** @brief A function implementing the CLKNODE_SET_MUX() method */
+typedef int clknode_set_mux_t(struct clknode *clk, int idx);
+
+static __inline int CLKNODE_SET_MUX(struct clknode *clk, int idx)
+{
+ kobjop_t _m;
+ int rc;
+ KOBJOPLOOKUP(((kobj_t)clk)->ops,clknode_set_mux);
+ rc = ((clknode_set_mux_t *) _m)(clk, idx);
+ return (rc);
+}
+
+#endif /* _clknode_if_h_ */
diff --git a/rtemsbsd/include/rtems/bsd/local/hdmi_if.h b/rtemsbsd/include/rtems/bsd/local/hdmi_if.h
new file mode 100644
index 00000000..fc23c801
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/hdmi_if.h
@@ -0,0 +1,71 @@
+/*
+ * This file is @generated automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * freebsd-org/sys/dev/hdmi/hdmi_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+
+#ifndef _hdmi_if_h_
+#define _hdmi_if_h_
+
+
+#include <sys/eventhandler.h>
+
+typedef void (*hdmi_event_hook)(void *, device_t, int);
+EVENTHANDLER_DECLARE(hdmi_event, hdmi_event_hook);
+
+#define HDMI_EVENT_CONNECTED 0
+
+/** @brief Unique descriptor for the HDMI_GET_EDID() method */
+extern struct kobjop_desc hdmi_get_edid_desc;
+/** @brief A function implementing the HDMI_GET_EDID() method */
+typedef int hdmi_get_edid_t(device_t dev, uint8_t **edid,
+ uint32_t *edid_length);
+
+static __inline int HDMI_GET_EDID(device_t dev, uint8_t **edid,
+ uint32_t *edid_length)
+{
+ kobjop_t _m;
+ int rc;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,hdmi_get_edid);
+ rc = ((hdmi_get_edid_t *) _m)(dev, edid, edid_length);
+ return (rc);
+}
+
+/** @brief Unique descriptor for the HDMI_SET_VIDEOMODE() method */
+extern struct kobjop_desc hdmi_set_videomode_desc;
+/** @brief A function implementing the HDMI_SET_VIDEOMODE() method */
+typedef int hdmi_set_videomode_t(device_t dev,
+ const struct videomode *videomode);
+
+static __inline int HDMI_SET_VIDEOMODE(device_t dev,
+ const struct videomode *videomode)
+{
+ kobjop_t _m;
+ int rc;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,hdmi_set_videomode);
+ rc = ((hdmi_set_videomode_t *) _m)(dev, videomode);
+ return (rc);
+}
+
+/** @brief Unique descriptor for the HDMI_ENABLE() method */
+extern struct kobjop_desc hdmi_enable_desc;
+/** @brief A function implementing the HDMI_ENABLE() method */
+typedef int hdmi_enable_t(device_t dev, int onoff);
+
+static __inline int HDMI_ENABLE(device_t dev, int onoff)
+{
+ kobjop_t _m;
+ int rc;
+ KOBJOPLOOKUP(((kobj_t)dev)->ops,hdmi_enable);
+ rc = ((hdmi_enable_t *) _m)(dev, onoff);
+ return (rc);
+}
+
+#endif /* _hdmi_if_h_ */
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_videomode.h b/rtemsbsd/include/rtems/bsd/local/opt_videomode.h
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_videomode.h
diff --git a/rtemsbsd/local/clknode_if.c b/rtemsbsd/local/clknode_if.c
new file mode 100644
index 00000000..6f1c0ba3
--- /dev/null
+++ b/rtemsbsd/local/clknode_if.c
@@ -0,0 +1,40 @@
+#include <machine/rtems-bsd-kernel-space.h>
+
+/*
+ * This file is @generated automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * freebsd-org/sys/dev/extres/clk/clknode_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+#include <sys/param.h>
+#include <sys/queue.h>
+#include <sys/kernel.h>
+#include <sys/kobj.h>
+#include <rtems/bsd/local/clknode_if.h>
+
+struct kobjop_desc clknode_init_desc = {
+ 0, { &clknode_init_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc clknode_recalc_freq_desc = {
+ 0, { &clknode_recalc_freq_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc clknode_set_freq_desc = {
+ 0, { &clknode_set_freq_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc clknode_set_gate_desc = {
+ 0, { &clknode_set_gate_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc clknode_set_mux_desc = {
+ 0, { &clknode_set_mux_desc, (kobjop_t)kobj_error_method }
+};
+
diff --git a/rtemsbsd/local/hdmi_if.c b/rtemsbsd/local/hdmi_if.c
new file mode 100644
index 00000000..847f7d4d
--- /dev/null
+++ b/rtemsbsd/local/hdmi_if.c
@@ -0,0 +1,35 @@
+#include <machine/rtems-bsd-kernel-space.h>
+
+/*
+ * This file is @generated automatically.
+ * Do not modify anything in here by hand.
+ *
+ * Created from source file
+ * freebsd-org/sys/dev/hdmi/hdmi_if.m
+ * with
+ * makeobjops.awk
+ *
+ * See the source file for legal information
+ */
+
+#include <sys/param.h>
+#include <sys/queue.h>
+#include <sys/kernel.h>
+#include <sys/kobj.h>
+#include <sys/bus.h>
+#include <dev/videomode/videomode.h>
+#include <dev/videomode/edidvar.h>
+#include <rtems/bsd/local/hdmi_if.h>
+
+struct kobjop_desc hdmi_get_edid_desc = {
+ 0, { &hdmi_get_edid_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc hdmi_set_videomode_desc = {
+ 0, { &hdmi_set_videomode_desc, (kobjop_t)kobj_error_method }
+};
+
+struct kobjop_desc hdmi_enable_desc = {
+ 0, { &hdmi_enable_desc, (kobjop_t)kobj_error_method }
+};
+