Changeset dd0c8a0 in mainline for kernel/arch/arm32/src/mach


Ignore:
Timestamp:
2013-09-29T06:56:33Z (12 years ago)
Author:
Beniamino Galvani <b.galvani@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a9bd960d
Parents:
3deb0155 (diff), 13be2583 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes.

Location:
kernel/arch/arm32/src/mach
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/arm32/src/mach/beagleboardxm/beagleboardxm.c

    r3deb0155 rdd0c8a0  
    6060
    6161static struct beagleboard {
    62         amdm37x_irc_regs_t *irc_addr;
    63         amdm37x_uart_t uart;
     62        omap_irc_regs_t *irc_addr;
     63        omap_uart_t uart;
    6464        amdm37x_gpt_t timer;
    6565} beagleboard;
     
    8585static void bb_timer_irq_handler(irq_t *irq)
    8686{
     87        amdm37x_gpt_irq_ack(&beagleboard.timer);
     88
    8789        /*
    8890         * We are holding a lock which prevents preemption.
    8991         * Release the lock, call clock() and reacquire the lock again.
    9092         */
    91         amdm37x_gpt_irq_ack(&beagleboard.timer);
    9293        spinlock_unlock(&irq->lock);
    9394        clock();
     
    102103            PAGE_NOT_CACHEABLE);
    103104        ASSERT(beagleboard.irc_addr);
    104         amdm37x_irc_init(beagleboard.irc_addr);
     105        omap_irc_init(beagleboard.irc_addr);
    105106
    106107        /* Initialize timer. Use timer1, because it is in WKUP power domain
     
    122123
    123124        /* Enable timer interrupt */
    124         amdm37x_irc_enable(beagleboard.irc_addr, AMDM37x_GPT1_IRQ);
     125        omap_irc_enable(beagleboard.irc_addr, AMDM37x_GPT1_IRQ);
    125126
    126127        /* Start timer here */
     
    146147static void bbxm_irq_exception(unsigned int exc_no, istate_t *istate)
    147148{
    148         const unsigned inum = amdm37x_irc_inum_get(beagleboard.irc_addr);
    149         amdm37x_irc_irq_ack(beagleboard.irc_addr);
     149        const unsigned inum = omap_irc_inum_get(beagleboard.irc_addr);
    150150
    151151        irq_t *irq = irq_dispatch_and_lock(inum);
     
    159159                    CPU->id, inum);
    160160        }
     161        /** amdm37x manual ch. 12.5.2 (p. 2428) places irc ack at the end
     162         * of ISR. DO this to avoid strange behavior. */
     163        omap_irc_irq_ack(beagleboard.irc_addr);
    161164}
    162165
     
    167170static void bbxm_output_init(void)
    168171{
     172#ifdef CONFIG_OMAP_UART
    169173        /* UART3 is wired to external RS232 connector */
    170         const bool ok = amdm37x_uart_init(&beagleboard.uart,
     174        const bool ok = omap_uart_init(&beagleboard.uart,
    171175            AMDM37x_UART3_IRQ, AMDM37x_UART3_BASE_ADDRESS, AMDM37x_UART3_SIZE);
    172176        if (ok) {
    173177                stdout_wire(&beagleboard.uart.outdev);
    174178        }
     179#endif
    175180}
    176181
    177182static void bbxm_input_init(void)
    178183{
     184#ifdef CONFIG_OMAP_UART
    179185        srln_instance_t *srln_instance = srln_init();
    180186        if (srln_instance) {
    181187                indev_t *sink = stdin_wire();
    182188                indev_t *srln = srln_wire(srln_instance, sink);
    183                 amdm37x_uart_input_wire(&beagleboard.uart, srln);
    184                 amdm37x_irc_enable(beagleboard.irc_addr, AMDM37x_UART3_IRQ);
     189                omap_uart_input_wire(&beagleboard.uart, srln);
     190                omap_irc_enable(beagleboard.irc_addr, AMDM37x_UART3_IRQ);
    185191        }
     192#endif
    186193}
    187194
  • kernel/arch/arm32/src/mach/beaglebone/beaglebone.c

    r3deb0155 rdd0c8a0  
    6363
    6464static struct beaglebone {
    65         am335x_irc_regs_t *irc_addr;
     65        omap_irc_regs_t *irc_addr;
    6666        am335x_cm_per_regs_t *cm_per_addr;
    6767        am335x_cm_dpll_regs_t *cm_dpll_addr;
    6868        am335x_ctrl_module_t  *ctrl_module;
    6969        am335x_timer_t timer;
    70         am335x_uart_t uart;
     70        omap_uart_t uart;
    7171} bbone;
    7272
     
    104104
    105105        /* Initialize the interrupt controller */
    106         am335x_irc_init(bbone.irc_addr);
     106        omap_irc_init(bbone.irc_addr);
    107107}
    108108
     
    153153        }
    154154        /* Enable the interrupt */
    155         am335x_irc_enable(bbone.irc_addr, AM335x_DMTIMER2_IRQ);
     155        omap_irc_enable(bbone.irc_addr, AM335x_DMTIMER2_IRQ);
    156156        /* Start the timer */
    157157        am335x_timer_start(&bbone.timer);
     
    176176static void bbone_irq_exception(unsigned int exc_no, istate_t *istate)
    177177{
    178         const unsigned inum = am335x_irc_inum_get(bbone.irc_addr);
    179         am335x_irc_irq_ack(bbone.irc_addr);
     178        const unsigned inum = omap_irc_inum_get(bbone.irc_addr);
    180179
    181180        irq_t *irq = irq_dispatch_and_lock(inum);
     
    187186                printf("Spurious interrupt\n");
    188187        }
     188
     189        omap_irc_irq_ack(bbone.irc_addr);
    189190}
    190191
     
    195196static void bbone_output_init(void)
    196197{
    197         const bool ok = am335x_uart_init(&bbone.uart,
     198#ifdef CONFIG_OMAP_UART
     199        const bool ok = omap_uart_init(&bbone.uart,
    198200            AM335x_UART0_IRQ, AM335x_UART0_BASE_ADDRESS,
    199201            AM335x_UART0_SIZE);
     
    201203        if (ok)
    202204                stdout_wire(&bbone.uart.outdev);
     205#endif
    203206}
    204207
    205208static void bbone_input_init(void)
    206209{
     210#ifdef CONFIG_OMAP_UART
    207211        srln_instance_t *srln_instance = srln_init();
    208212        if (srln_instance) {
    209213                indev_t *sink = stdin_wire();
    210214                indev_t *srln = srln_wire(srln_instance, sink);
    211                 am335x_uart_input_wire(&bbone.uart, srln);
    212                 am335x_irc_enable(bbone.irc_addr, AM335x_UART0_IRQ);
     215                omap_uart_input_wire(&bbone.uart, srln);
     216                omap_irc_enable(bbone.irc_addr, AM335x_UART0_IRQ);
    213217        }
     218#endif
    214219}
    215220
Note: See TracChangeset for help on using the changeset viewer.