From: Bart Veer <bartv@ecoscentric.com>
To: ecos-patches@sourceware.org
Subject: update I2C subsystem to use the right init priority
Date: Mon, 09 Feb 2009 22:22:00 -0000 [thread overview]
Message-ID: <pnljsfdzdi.fsf@delenn.bartv.net> (raw)
All I2C buses now initialize at CYG_INIT_BUS_I2C. This also fixes a
bug in the bitbanging documentation.
Bart
2009-02-09 Bart Veer <bartv@ecoscentric.com>
* cdl/i2c.cdl, src/i2c.cxx, doc/i2c.sgml: I2C buses now initialize
at a fixed priority CYG_INIT_BUS_I2C, instead of a configurable
priority with default CYG_INIT_DRIVERS.
doc/i2c.sgml: remove a spurious & in the bitbang description.
Index: cdl/i2c.cdl
===================================================================
RCS file: /cvs/ecos/ecos/packages/io/i2c/current/cdl/i2c.cdl,v
retrieving revision 1.3
diff -u -p -r1.3 i2c.cdl
--- cdl/i2c.cdl 29 Jan 2009 17:49:47 -0000 1.3
+++ cdl/i2c.cdl 9 Feb 2009 22:19:49 -0000
@@ -59,19 +59,6 @@ cdl_package CYGPKG_IO_I2C {
be written and how I2C devices should be defined. There is also
support for bit-banged I2C buses."
- cdl_option CYGNUM_I2C_INIT_PRIORITY {
- display "I2C initialization priority"
- flavor data
- default_value { "CYG_INIT_DRIVERS" }
-
- description "
- The generic I2C package will initialize each I2C bus during
- system startup, using a prioritized static constructor. This
- option controls the priority that is used. The default value,
- CYG_INIT_DRIVERS, means that I2C buses get initialized early
- on."
- }
-
cdl_component CYGPKG_IO_I2C_OPTIONS {
display "I2C build options"
flavor none
Index: src/i2c.cxx
===================================================================
RCS file: /cvs/ecos/ecos/packages/io/i2c/current/src/i2c.cxx,v
retrieving revision 1.4
diff -u -p -r1.4 i2c.cxx
--- src/i2c.cxx 29 Jan 2009 17:49:47 -0000 1.4
+++ src/i2c.cxx 9 Feb 2009 22:21:19 -0000
@@ -71,10 +71,6 @@
// then all required code and data should get included, otherwise it
// will all be elided.
//
-// The init priority is configurable, defaulting to CYG_INIT_DRIVERS.
-// Arguably it should happen a bit earlier to allow other drivers to
-// perform I2C operations, but there is no CYG_INIT_BUS.
-//
// All I2C buses are kept in a table, so that the init code can
// iterate through each one.
@@ -87,7 +83,7 @@ class cyg_i2c_init {
cyg_i2c_init();
};
-static cyg_i2c_init cyg_i2c_init_object CYGBLD_ATTRIB_INIT_PRI(CYGNUM_I2C_INIT_PRIORITY);
+static cyg_i2c_init cyg_i2c_init_object CYGBLD_ATTRIB_INIT_PRI(CYG_INIT_BUS_I2C);
cyg_i2c_init::cyg_i2c_init()
{
Index: doc/i2c.sgml
===================================================================
RCS file: /cvs/ecos/ecos/packages/io/i2c/current/doc/i2c.sgml,v
retrieving revision 1.4
diff -u -p -r1.4 i2c.sgml
--- doc/i2c.sgml 29 Jan 2009 17:49:47 -0000 1.4
+++ doc/i2c.sgml 9 Feb 2009 22:21:58 -0000
@@ -546,12 +546,11 @@ before the transaction is ended.
<para>
The generic package <varname>CYGPKG_IO_I2C</varname> arranges for all
I2C bus devices to be initialized via a single prioritized C++ static
-constructor. Usually this constructor will run early on during system
-startup, before any application code. The default priority is
-<literal>CYG_INIT_DRIVERS</literal>, but this can be changed via the
-configuration option <varname>CYGNUM_I2C_INIT_PRIORITY</varname>.
-Other code should not try to access any of the I2C devices until after
-the buses have been initialized.
+constructor. This constructor will run early on during system startup,
+before any application code, with priority
+<literal>CYG_INIT_BUS_I2C</literal>. Other code should not try to
+access any of the I2C devices until after the buses have been
+initialized.
</para>
</refsect1>
@@ -730,7 +729,7 @@ hal_alaia_i2c_bitbang(cyg_i2c_bus* bus,
return result;
}
-CYG_I2C_BITBANG_BUS(&hal_alaia_i2c_bus, &hal_alaia_i2c_bitbang);
+CYG_I2C_BITBANG_BUS(hal_alaia_i2c_bus, &hal_alaia_i2c_bitbang);
</programlisting>
<para>
This gives a structure <varname>hal_alaia_i2c_bus</varname> which can
@@ -768,9 +767,8 @@ The bitbang function should support the
<term><literal>CYG_I2C_BITBANG_INIT</literal></term>
<listitem><para>
This will be called during system initialization, as a side effect of
-a prioritized C++ static constructor. By default this constructor will
-run at <literal>CYG_INIT_DRIVERS</literal> priority. The bitbang
-function should ensure that both SCL and SDA are driven high.
+a prioritized C++ static constructor. The bitbang function should
+ensure that both SCL and SDA are driven high.
</para></listitem>
</varlistentry>
<varlistentry>
reply other threads:[~2009-02-09 22:22 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pnljsfdzdi.fsf@delenn.bartv.net \
--to=bartv@ecoscentric.com \
--cc=ecos-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).