aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/dts/DIR-300-B1.dts
blob: 0297b8cf929680a61e5ce7d6af78ced036a3b1ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/dts-v1/;

/include/ "rt3050.dtsi"

/ {
	compatible = "DIR-300-B1", "ralink,rt3050-soc";
	model = "D-Link DIR-300 B1";

	palmbus@10000000 {
		sysc@0 {
			ralink,pinmux = "i2c", "spi", "uartlite", "jtag", "mdio", "sdram", "rgmii";
			ralink,uartmux = "gpio";
			ralink,wdtmux = <1>;
		};

		gpio0: gpio@600 {
			status = "okay";
		};

	};

	cfi@1f000000 {
		compatible = "cfi-flash";
		reg = <0x1f000000 0x800000>;

		bank-width = <2>;
		device-width = <2>;
		#address-cells = <1>;
		#size-cells = <1>;

		partition@0 {
			label = "u-boot";
			reg = <0x0 0x30000>;
			read-only;
		};

		partition@30000 {
			label = "devdata";
			reg = <0x30000 0x10000>;
			read-only;
		};

		partition@40000 {
			label = "devconf";
			reg = <0x40000 0x10000>;
			read-only;
		};

		partition@50000 {
			label = "firmware";
			reg = <0x50000 0x3b0000>;
		};
	};

	ethernet@10100000 {
		status = "okay";
	};

	esw@10110000 {
		status = "okay";
		ralink,portmap = <0x2f>;
	};

	gpio-keys-polled {
		compatible = "gpio-keys-polled";
		#address-cells = <1>;
		#size-cells = <0>;
		poll-interval = <20>;
		reset {
			label = "reset";
			gpios = <&gpio0 10 1>;
			linux,code = <0x198>;
		};
		wps {
			label = "wps";
			gpios = <&gpio0 0 1>;
			linux,code = <0x211>;
		};
	};

	wmac@10180000 {
		status = "okay";
	};

	gpio-leds {
		compatible = "gpio-leds";
		status {
			label = "d-link:amber:status";
			gpios = <&gpio0 8 1>;
		};
		status2 {
			label = "d-link:green:status";
			gpios = <&gpio0 9 1>;
		};
		wan {
			label = "d-link:amber:wan";
			gpios = <&gpio0 14 1>;
		};
		wan2 {
			label = "d-link:green:wan";
			gpios = <&gpio0 12 1>;
		};
		wps {
			label = "d-link:blue:wps";
			gpios = <&gpio0 13 1>;
		};
	};
};
ace - May be used in end-application: */ /* Macros: */ /** Error code for some Android Open Accessory Host functions, indicating a logical (and not hardware) error. */ #define AOA_ERROR_LOGICAL_CMD_FAILED 0x80 /* Type Defines: */ /** \brief Android Open Accessory Class Host Mode Configuration and State Structure. * * Class state structure. An instance of this structure should be made within the user application, * and passed to each of the Android Open Accessory class driver functions as the \c AOAInterfaceInfo * parameter. This stores each Android Open Accessory interface's configuration and state information. */ typedef struct { struct { USB_Pipe_Table_t DataINPipe; /**< Data IN Pipe configuration table. */ USB_Pipe_Table_t DataOUTPipe; /**< Data OUT Pipe configuration table. */ char* PropertyStrings[AOA_STRING_TOTAL_STRINGS]; /**< Android Accessory property strings, sent to identify the accessory when the * Android device is switched into Open Accessory mode. */ } Config; /**< Config data for the USB class interface within the device. All elements in this section * <b>must</b> be set or the interface will fail to enumerate and operate correctly. */ struct { bool IsActive; /**< Indicates if the current interface instance is connected to an attached device, valid * after \ref AOA_Host_ConfigurePipes() is called and the Host state machine is in the * Configured state. */ uint8_t InterfaceNumber; /**< Interface index of the AOA interface within the attached device. */ } State; /**< State data for the USB class interface within the device. All elements in this section * <b>may</b> be set to initial values, but may also be ignored to default to sane values when * the interface is enumerated. */ } USB_ClassInfo_AOA_Host_t; /* Enums: */ /** Enum for the possible error codes returned by the \ref AOA_Host_ConfigurePipes() function. */ enum AOA_Host_EnumerationFailure_ErrorCodes_t { AOA_ENUMERROR_NoError = 0, /**< Configuration Descriptor was processed successfully. */ AOA_ENUMERROR_InvalidConfigDescriptor = 1, /**< The device returned an invalid Configuration Descriptor. */ AOA_ENUMERROR_NoCompatibleInterfaceFound = 2, /**< A compatible Android Open Accessory interface was not found in the device's Configuration Descriptor. */ AOA_ENUMERROR_PipeConfigurationFailed = 3, /**< One or more pipes for the specified interface could not be configured correctly. */ }; /* Function Prototypes: */ /** General management task for a given Android Open Accessory host class interface, required for the correct operation of the interface. * This should be called frequently in the main program loop, before the master USB management task \ref USB_USBTask(). * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing an Android Open Accessory Class host configuration and state. */ void AOA_Host_USBTask(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); /** Validates a device descriptor, to check if the device is a valid Android device, and if it is currently in Android Open Accessory mode. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing an AOA Class host configuration and state. * \param[in] DeviceDescriptor Pointer a buffer containing the attached device's Device Descriptor. * \param[out] NeedModeSwitch Pointer to a boolean where the mode switch requirement of the attached device is to be stored. * * \return Boolean \c true if the attached device is a valid Android device, \c false otherwise. */ bool AOA_Host_ValidateAccessoryDevice(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo, const USB_Descriptor_Device_t* const DeviceDescriptor, bool* const NeedModeSwitch) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2) ATTR_NON_NULL_PTR_ARG(3); /** Host interface configuration routine, to configure a given Android Open Accessory host interface instance using the Configuration * Descriptor read from an attached USB device. This function automatically updates the given Android Open Accessory Host instance's * state values and configures the pipes required to communicate with the interface if it is found within the device. This should be * called once after the stack has enumerated the attached device, while the host state machine is in the Addressed state. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing an AOA Class host configuration and state. * \param[in] ConfigDescriptorSize Length of the attached device's Configuration Descriptor. * \param[in] ConfigDescriptorData Pointer to a buffer containing the attached device's Configuration Descriptor. * * \return A value from the \ref AOA_Host_EnumerationFailure_ErrorCodes_t enum. */ uint8_t AOA_Host_ConfigurePipes(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo, uint16_t ConfigDescriptorSize, void* ConfigDescriptorData) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3); /** Starts Accessory Mode in the attached Android device. This function will validate the device's Android Open Accessory protocol * version, send the configured property strings, and request a switch to Android Open Accessory mode. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing an AOA Class host configuration and state. * * \return A value from the \ref USB_Host_SendControlErrorCodes_t enum, or \ref AOA_ERROR_LOGICAL_CMD_FAILED if a logical error occurred.. */ uint8_t AOA_Host_StartAccessoryMode(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); /** Sends a given data buffer to the attached USB device, if connected. If a device is not connected when the function is * called, the data will be discarded. Bytes will be queued for transmission to the device until either the pipe bank * becomes full, or the \ref AOA_Host_Flush() function is called to flush the pending data to the device. This allows for * multiple bytes to be packed into a single pipe packet, increasing data throughput. * * \pre This function must only be called when the Host state machine is in the \ref HOST_STATE_Configured state or the * call will fail. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing a AOA Class host configuration and state. * \param[in] Buffer Pointer to a buffer containing the data to send to the device. * \param[in] Length Length of the data to send to the device. * * \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum. */ uint8_t AOA_Host_SendData(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo, const void* const Buffer, const uint16_t Length) ATTR_NON_NULL_PTR_ARG(1); /** Sends a given null-terminated string to the attached USB device, if connected. If a device is not connected when the * function is called, the string is discarded. Bytes will be queued for transmission to the device until either the pipe * bank becomes full, or the \ref AOA_Host_Flush() function is called to flush the pending data to the device. This allows * for multiple bytes to be packed into a single pipe packet, increasing data throughput. * * \pre This function must only be called when the Host state machine is in the \ref HOST_STATE_Configured state or the * call will fail. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing a AOA Class host configuration and state. * \param[in] String Pointer to the null terminated string to send to the device. * * \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum. */ uint8_t AOA_Host_SendString(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo, const char* const String) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2); /** Sends a given byte to the attached USB device, if connected. If a device is not connected when the function is called, the * byte is discarded. Bytes will be queued for transmission to the device until either the pipe bank becomes full, or the * \ref AOA_Host_Flush() function is called to flush the pending data to the host. This allows for multiple bytes to be * packed into a single pipe packet, increasing data throughput. * * \pre This function must only be called when the Host state machine is in the \ref HOST_STATE_Configured state or the * call will fail. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing a AOA Class host configuration and state. * \param[in] Data Byte of data to send to the device. * * \return A value from the \ref Pipe_WaitUntilReady_ErrorCodes_t enum. */ uint8_t AOA_Host_SendByte(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo, const uint8_t Data) ATTR_NON_NULL_PTR_ARG(1); /** Determines the number of bytes received by the AOA interface from the device, waiting to be read. This indicates the number * of bytes in the IN pipe bank only, and thus the number of calls to \ref AOA_Host_ReceiveByte() which are guaranteed to succeed * immediately. If multiple bytes are to be received, they should be buffered by the user application, as the pipe bank will not be * released back to the USB controller until all bytes are read. * * \pre This function must only be called when the Host state machine is in the \ref HOST_STATE_Configured state or the * call will fail. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing a AOA Class host configuration and state. * * \return Total number of buffered bytes received from the device. */ uint16_t AOA_Host_BytesReceived(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); /** Reads a byte of data from the device. If no data is waiting to be read of if a USB device is not connected, the function * returns a negative value. The \ref AOA_Host_BytesReceived() function may be queried in advance to determine how many bytes * are currently buffered in the AOA interface's data receive pipe. * * \pre This function must only be called when the Host state machine is in the \ref HOST_STATE_Configured state or the * call will fail. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing a AOA Class host configuration and state. * * \return Next received byte from the device, or a negative value if no data received. */ int16_t AOA_Host_ReceiveByte(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); /** Flushes any data waiting to be sent, ensuring that the send buffer is cleared. * * \pre This function must only be called when the Host state machine is in the \ref HOST_STATE_Configured state or the * call will fail. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing a AOA Class host configuration and state. * * \return A value from the \ref Pipe_WaitUntilReady_ErrorCodes_t enum. */ uint8_t AOA_Host_Flush(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); /** Creates a standard character stream for the given AOA Device instance so that it can be used with all the regular * functions in the standard \c <stdio.h> library that accept a \c FILE stream as a destination (e.g. \c fprintf). The created * stream is bidirectional and can be used for both input and output functions. * * Reading data from this stream is non-blocking, i.e. in most instances, complete strings cannot be read in by a single * fetch, as the endpoint will not be ready at some point in the transmission, aborting the transfer. However, this may * be used when the read data is processed byte-per-bye (via \c getc()) or when the user application will implement its own * line buffering. * * \note The created stream can be given as \c stdout if desired to direct the standard output from all \c <stdio.h> functions * to the given AOA interface. * \n\n * * \note This function is not available on all microcontroller architectures. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing a AOA Class configuration and state. * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed. */ void AOA_Host_CreateStream(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo, FILE* const Stream) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2); /** Identical to \ref AOA_Host_CreateStream(), except that reads are blocking until the calling stream function terminates * the transfer. While blocking, the USB and AOA service tasks are called repeatedly to maintain USB communications. * * \note This function is not available on all microcontroller architectures. * * \param[in,out] AOAInterfaceInfo Pointer to a structure containing a AOA Class configuration and state. * \param[in,out] Stream Pointer to a FILE structure where the created stream should be placed. */ void AOA_Host_CreateBlockingStream(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo, FILE* const Stream) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2); /* Private Interface - For use in library only: */ #if !defined(__DOXYGEN__) /* Function Prototypes: */ #if defined(__INCLUDE_FROM_ANDROIDACCESSORY_HOST_C) #if defined(FDEV_SETUP_STREAM) static int AOA_Host_putchar(char c, FILE* Stream) ATTR_NON_NULL_PTR_ARG(2); static int AOA_Host_getchar(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1); static int AOA_Host_getchar_Blocking(FILE* Stream) ATTR_NON_NULL_PTR_ARG(1); #endif static uint8_t AOA_Host_GetAccessoryProtocol(uint16_t* const Protocol) ATTR_NON_NULL_PTR_ARG(1); static uint8_t AOA_Host_SendPropertyString(USB_ClassInfo_AOA_Host_t* const AOAInterfaceInfo, const uint8_t StringIndex) ATTR_NON_NULL_PTR_ARG(1); static uint8_t DCOMP_AOA_Host_NextAndroidAccessoryInterface(void* const CurrentDescriptor) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1); static uint8_t DCOMP_AOA_Host_NextInterfaceBulkEndpoint(void* const CurrentDescriptor) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(1); #endif #endif /* Disable C linkage for C++ Compilers: */ #if defined(__cplusplus) } #endif #endif /** @} */