From 1a73aaa668754f0c18e5b730fd39d29b52532c99 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 6 Jan 2012 01:58:03 +0000 Subject: [PATCH] Add hooks for SD media change callbacks git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4267 42af7a65-404d-4744-a932-0658087f49c3 --- arch/arm/src/lpc17xx/lpc17_internal.h | 2 ++ arch/arm/src/lpc17xx/lpc17_spi.c | 9 ++++++++- arch/arm/src/lpc17xx/lpc17_ssp.c | 12 +++++++----- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/arch/arm/src/lpc17xx/lpc17_internal.h b/arch/arm/src/lpc17xx/lpc17_internal.h index fdb14b4d71..fc635eb7d9 100755 --- a/arch/arm/src/lpc17xx/lpc17_internal.h +++ b/arch/arm/src/lpc17xx/lpc17_internal.h @@ -655,6 +655,7 @@ EXTERN void ssp_flush(FAR struct spi_dev_s *dev); * ****************************************************************************/ +#ifdef CONFIG_SPI_CALLBACK #ifdef CONFIG_LPC17_SPI EXTERN int lpc17_spiregister(FAR struct spi_dev_s *dev, spi_mediachange_t callback, void *arg); @@ -669,6 +670,7 @@ EXTERN int lpc17_ssp0register(FAR struct spi_dev_s *dev, EXTERN int lpc17_ssp1register(FAR struct spi_dev_s *dev, spi_mediachange_t callback, void *arg); #endif +#endif /**************************************************************************** * Name: lpc17_dmainitialize diff --git a/arch/arm/src/lpc17xx/lpc17_spi.c b/arch/arm/src/lpc17xx/lpc17_spi.c index e5cc2b3e3f..f0a2b1264b 100755 --- a/arch/arm/src/lpc17xx/lpc17_spi.c +++ b/arch/arm/src/lpc17xx/lpc17_spi.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/lpc17xx/lpc17_spi.c * - * Copyright (C) 2010 Gregory Nutt. All rights reserved. + * Copyright (C) 2010, 2012 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -104,6 +104,8 @@ * Private Types ****************************************************************************/ +/* This structure descibes the state of the SSP driver */ + struct lpc17_spidev_s { struct spi_dev_s spidev; /* Externally visible part of the SPI interface */ @@ -153,7 +155,11 @@ static const struct spi_ops_s g_spiops = .send = spi_send, .sndblock = spi_sndblock, .recvblock = spi_recvblock, +#ifdef CONFIG_SPI_CALLBACK + .registercallback = lpc17_spiregister, /* Provided externally */ +#else .registercallback = 0, /* Not implemented */ +#endif }; static struct lpc17_spidev_s g_spidev = @@ -597,5 +603,6 @@ FAR struct spi_dev_s *up_spiinitialize(int port) #endif return &priv->spidev; } + #endif /* CONFIG_LPC17_SPI */ diff --git a/arch/arm/src/lpc17xx/lpc17_ssp.c b/arch/arm/src/lpc17xx/lpc17_ssp.c index e945ced404..893a1df997 100755 --- a/arch/arm/src/lpc17xx/lpc17_ssp.c +++ b/arch/arm/src/lpc17xx/lpc17_ssp.c @@ -1,7 +1,7 @@ /**************************************************************************** * arch/arm/src/lpc17xx/lpc17_ssp.c * - * Copyright (C) 2010-2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2010-2012 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -108,6 +108,8 @@ * Private Types ****************************************************************************/ +/* This structure descibes the state of the SSP driver */ + struct lpc17_sspdev_s { struct spi_dev_s spidev; /* Externally visible part of the SPI interface */ @@ -235,7 +237,7 @@ static struct lpc17_sspdev_s g_ssp1dev = * Private Functions ****************************************************************************/ -/************************************************************************************ +/**************************************************************************** * Name: ssp_getreg * * Description: @@ -248,14 +250,14 @@ static struct lpc17_sspdev_s g_ssp1dev = * Returned Value: * The contents of the 32-bit register * - ************************************************************************************/ + ****************************************************************************/ static inline uint32_t ssp_getreg(FAR struct lpc17_sspdev_s *priv, uint8_t offset) { return getreg32(priv->sspbase + (uint32_t)offset); } -/************************************************************************************ +/**************************************************************************** * Name: ssp_putreg * * Description: @@ -269,7 +271,7 @@ static inline uint32_t ssp_getreg(FAR struct lpc17_sspdev_s *priv, uint8_t offse * Returned Value: * None * - ************************************************************************************/ + ***************************************************************************/ static inline void ssp_putreg(FAR struct lpc17_sspdev_s *priv, uint8_t offset, uint32_t value) {