All of lore.kernel.org
 help / color / mirror / Atom feed
From: tandrews@grok.co.za (Thomas Andrews)
To: lm-sensors@vger.kernel.org
Subject: [lm-sensors] making a geode i2c slave driver
Date: Tue, 02 May 2006 10:10:48 +0000	[thread overview]
Message-ID: <20060502101048.GD22545@grok.co.za> (raw)
In-Reply-To: <20060427092159.GA27959@grok.co.za>

Hi Jordan,

I'm having some difficulty getting the geode to generate an interrupt
for ACB events. I'm hoping that you can either spot some obvious mistake
that I'm making, or perhaps refer me to someone at AMD who can.

As you recall I'm using the SC1100 on a WRAP card. I'm using a version
of scx200_acb.c, modified as follows:

(a) I set ACB1/2 index 0x70 (Interrupt Number) to 5 (for IRQ 5):

        irq = 5;
        sio = 0x2e;
        val = 0x2f;

        // Set the IRQ on ACB0  (LDN 5)
        outb(0x07,sio); // LDN select register
        outb(0x05,val); // Choose LDN 5 ie ACCESS.bus 1
        outb(0x70,sio); // Select IRQ register
        outb(irq,val);  // Set IRQ

        // Set the IRQ on ACB1 (LDN 6)
        outb(0x07,sio); // LDN select register
        outb(0x06,val); // Choose LDN 6 ie ACCESS.bus 2
        outb(0x70,sio); // Select IRQ register
        outb(irq,val);  // Set IRQ

(b) I enable the device's slave address on each ACB:

        outb(0x80 | 1, ACBADDR);
 
(c) I enable interrupts on each ACB:

        outb(inb(ACBCTL1) | ACBCTL1_INTEN | ACBCTL1_NMINTE, ACBCTL1);

(d) I have an irq handler installed for IRQ 5, but that is not really
    important, because it isn't needed yet.

The problem is that I *never* see any interrupts generated by the ACB.
Here is what I see reported by the kernel:

8<----------------8<----------------8<----------------8<----------------
root at sprinkle:~/i2c# cat /proc/stat && cat /proc/interrupts 
cpu  3097 0 4466 16293239
cpu0 3097 0 4466 16293239
page 6618 18472
swap 0 0
intr 16372006 16300802 0 0 0 116 0 0 0 0 0 20905 0 0 0 50183 0
disk_io: (3,0):(5245,921,13236,4324,36944) 
ctxt 168525
btime 1146401337
processes 679
           CPU0       
  0:   16300803          XT-PIC  timer
  2:          0          XT-PIC  cascade
  4:        116          XT-PIC  serial
  5:          0          XT-PIC  scx200_acb
 10:      20907          XT-PIC  eth0
 14:      50183          XT-PIC  ide0
NMI:          0 
ERR:          0
8<----------------8<----------------8<----------------8<----------------

What am I missing here ?

I can get my Atmel chip to generate a packet as a master, and the geode
actually does ACK the address, so the geode is definitely behaving
correctly as a slave. Somehow the interrupt just never happens though.

Many thanks,
Thomas



  parent reply	other threads:[~2006-05-02 10:10 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-04-27  9:21 [lm-sensors] making a geode i2c slave driver Thomas Andrews
2006-04-27 10:34 ` Thomas Andrews
2006-04-27 13:31 ` Mark M. Hoffman
2006-04-27 14:30 ` Jordan Crouse
2006-04-27 14:43 ` Jordan Crouse
2006-04-28  7:50 ` Thomas Andrews
2006-04-28 11:03 ` Jean Delvare
2006-04-28 12:24 ` Thomas Andrews
2006-05-02 10:10 ` Thomas Andrews [this message]
2006-05-02 15:37 ` Jordan Crouse
2006-05-02 23:46 ` Mark M. Hoffman

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=20060502101048.GD22545@grok.co.za \
    --to=tandrews@grok.co.za \
    --cc=lm-sensors@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.