Skip to content

Commit c63daa5

Browse files
authored
Merge pull request #12355 from panmasuo/hani_iot_new_target
HANI_IOT: add new target board support
2 parents 5863415 + 66d729a commit c63daa5

File tree

11 files changed

+985
-0
lines changed

11 files changed

+985
-0
lines changed

components/storage/blockdevice/COMPONENT_SPIF/mbed_lib.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@
1313
}
1414
},
1515
"target_overrides": {
16+
"HANI_IOT": {
17+
"SPI_MOSI": "P0_26",
18+
"SPI_MISO": "P1_3",
19+
"SPI_CLK": "P1_2",
20+
"SPI_CS": "P0_20"
21+
},
1622
"LPC54114": {
1723
"SPI_MOSI": "P0_20",
1824
"SPI_MISO": "P0_18",

features/storage/kvstore/conf/global/mbed_lib.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
}
1212
},
1313
"target_overrides": {
14+
"HANI_IOT": {
15+
"storage_type": "TDB_INTERNAL"
16+
},
1417
"K66F": {
1518
"storage_type": "TDB_INTERNAL"
1619
},
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
/* mbed Microcontroller Library
2+
* Copyright (c) 2020 ARM Limited
3+
* SPDX-License-Identifier: Apache-2.0
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
#ifndef MBED_PERIPHERALNAMES_H
18+
#define MBED_PERIPHERALNAMES_H
19+
20+
#include "cmsis.h"
21+
#include "PortNames.h"
22+
23+
#ifdef __cplusplus
24+
extern "C" {
25+
#endif
26+
27+
typedef enum {
28+
OSC32KCLK = 0,
29+
} RTCName;
30+
31+
typedef enum {
32+
UART_0 = Flexcomm0,
33+
UART_1 = Flexcomm2,
34+
UART_2 = Flexcomm6
35+
} UARTName;
36+
37+
#define STDIO_UART_TX USBTX
38+
#define STDIO_UART_RX USBRX
39+
#define STDIO_UART UART_0
40+
41+
typedef enum {
42+
I2C_0 = Flexcomm1,
43+
I2C_1 = Flexcomm4
44+
} I2CName;
45+
46+
#define TPM_SHIFT 8
47+
typedef enum {
48+
PWM_1 = (0 << TPM_SHIFT) | (0), // FTM0 CH0
49+
PWM_2 = (0 << TPM_SHIFT) | (1), // FTM0 CH1
50+
PWM_3 = (0 << TPM_SHIFT) | (2), // FTM0 CH2
51+
PWM_4 = (0 << TPM_SHIFT) | (3), // FTM0 CH3
52+
PWM_5 = (0 << TPM_SHIFT) | (4), // FTM0 CH4
53+
PWM_6 = (0 << TPM_SHIFT) | (5), // FTM0 CH5
54+
PWM_7 = (0 << TPM_SHIFT) | (6), // FTM0 CH6
55+
PWM_8 = (0 << TPM_SHIFT) | (7), // FTM0 CH7
56+
PWM_9 = (1 << TPM_SHIFT) | (0), // FTM1 CH0
57+
PWM_10 = (1 << TPM_SHIFT) | (1), // FTM1 CH1
58+
PWM_11 = (1 << TPM_SHIFT) | (2), // FTM1 CH2
59+
PWM_12 = (1 << TPM_SHIFT) | (3), // FTM1 CH3
60+
PWM_13 = (1 << TPM_SHIFT) | (4), // FTM1 CH4
61+
PWM_14 = (1 << TPM_SHIFT) | (5), // FTM1 CH5
62+
PWM_15 = (1 << TPM_SHIFT) | (6), // FTM1 CH6
63+
PWM_16 = (1 << TPM_SHIFT) | (7), // FTM1 CH7
64+
PWM_17 = (2 << TPM_SHIFT) | (0), // FTM2 CH0
65+
PWM_18 = (2 << TPM_SHIFT) | (1), // FTM2 CH1
66+
PWM_19 = (2 << TPM_SHIFT) | (2), // FTM2 CH2
67+
PWM_20 = (2 << TPM_SHIFT) | (3), // FTM2 CH3
68+
PWM_21 = (2 << TPM_SHIFT) | (4), // FTM2 CH4
69+
PWM_22 = (2 << TPM_SHIFT) | (5), // FTM2 CH5
70+
PWM_23 = (2 << TPM_SHIFT) | (6), // FTM2 CH6
71+
PWM_24 = (2 << TPM_SHIFT) | (7), // FTM2 CH7
72+
PWM_25 = (3 << TPM_SHIFT) | (0), // FTM3 CH0
73+
PWM_26 = (3 << TPM_SHIFT) | (1), // FTM3 CH1
74+
PWM_27 = (3 << TPM_SHIFT) | (2), // FTM3 CH2
75+
PWM_28 = (3 << TPM_SHIFT) | (3), // FTM3 CH3
76+
PWM_29 = (3 << TPM_SHIFT) | (4), // FTM3 CH4
77+
PWM_30 = (3 << TPM_SHIFT) | (5), // FTM3 CH5
78+
PWM_31 = (3 << TPM_SHIFT) | (6), // FTM3 CH6
79+
PWM_32 = (3 << TPM_SHIFT) | (7), // FTM3 CH7
80+
} PWMName;
81+
82+
#define ADC_INSTANCE_SHIFT 8
83+
#define ADC_B_CHANNEL_SHIFT 5
84+
85+
typedef enum {
86+
ADC0_SE0 = 0,
87+
ADC0_SE1 = 1,
88+
ADC0_SE2 = 2,
89+
ADC0_SE3 = 3,
90+
ADC0_SE4 = 4,
91+
ADC0_SE5 = 5,
92+
ADC0_SE6 = 6,
93+
ADC0_SE7 = 7,
94+
ADC0_SE8 = 8,
95+
ADC0_SE9 = 9,
96+
ADC0_SE10 = 10,
97+
ADC0_SE11 = 11,
98+
ADC0_SE12 = 12,
99+
ADC0_SE13 = 13,
100+
ADC0_SE14 = 14,
101+
ADC0_SE15 = 15,
102+
ADC0_SE0_B = (1 << ADC_B_CHANNEL_SHIFT) | 0,
103+
ADC0_SE1_B = (1 << ADC_B_CHANNEL_SHIFT) | 1,
104+
ADC0_SE2_B = (1 << ADC_B_CHANNEL_SHIFT) | 2,
105+
ADC0_SE3_B = (1 << ADC_B_CHANNEL_SHIFT) | 3,
106+
ADC0_SE4_B = (1 << ADC_B_CHANNEL_SHIFT) | 4,
107+
ADC0_SE5_B = (1 << ADC_B_CHANNEL_SHIFT) | 5,
108+
ADC0_SE6_B = (1 << ADC_B_CHANNEL_SHIFT) | 6,
109+
ADC0_SE7_B = (1 << ADC_B_CHANNEL_SHIFT) | 7,
110+
ADC0_SE8_B = (1 << ADC_B_CHANNEL_SHIFT) | 8,
111+
ADC0_SE9_B = (1 << ADC_B_CHANNEL_SHIFT) | 9,
112+
ADC0_SE10_B = (1 << ADC_B_CHANNEL_SHIFT) | 10,
113+
ADC0_SE11_B = (1 << ADC_B_CHANNEL_SHIFT) | 11,
114+
ADC0_SE12_B = (1 << ADC_B_CHANNEL_SHIFT) | 12,
115+
ADC0_SE13_B = (1 << ADC_B_CHANNEL_SHIFT) | 13,
116+
ADC0_SE14_B = (1 << ADC_B_CHANNEL_SHIFT) | 14,
117+
ADC0_SE15_B = (1 << ADC_B_CHANNEL_SHIFT) | 15
118+
} ADCName;
119+
120+
typedef enum {
121+
CAN_0 = 0,
122+
CAN_1 = 1
123+
} CANName;
124+
125+
#define SSELNUM_SHIFT 16
126+
typedef enum {
127+
SPI_0 = Flexcomm3,
128+
SPI_1 = Flexcomm5,
129+
SPI_2 = Flexcomm8
130+
} SPIName;
131+
132+
/* Flexcomm 8 on LPC55S69 is dedicated for HS-SPI and hence uses different naming convention */
133+
#define kFRO12M_to_FLEXCOMM8 (kFRO12M_to_HSLSPI)
134+
#define kFC8_RST_SHIFT_RSTn (kHSLSPI_RST_SHIFT_RSTn)
135+
136+
#ifdef __cplusplus
137+
}
138+
#endif
139+
140+
#endif
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
/* mbed Microcontroller Library
2+
* Copyright (c) 2020 ARM Limited
3+
* SPDX-License-Identifier: Apache-2.0
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
18+
#ifndef MBED_PERIPHERALPINMAPS_H
19+
#define MBED_PERIPHERALPINMAPS_H
20+
21+
#include <mstd_cstddef>
22+
23+
/************RTC***************/
24+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_RTC[] = {
25+
{NC, OSC32KCLK, 0},
26+
};
27+
28+
/************ADC***************/
29+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_ADC[] = {
30+
{P0_23, ADC0_SE0, 0},
31+
{P0_10, ADC0_SE1, 0},
32+
{P0_31, ADC0_SE3, 0},
33+
{P1_8, ADC0_SE4, 0},
34+
{P2_0, ADC0_SE5, 0},
35+
{P2_13, ADC0_SE6, 0},
36+
{P2_11, ADC0_SE7, 0},
37+
{NC , NC , 0}
38+
};
39+
40+
/************CAN***************/
41+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_CAN_TD[] = {
42+
{NC , NC , 0}
43+
};
44+
45+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_CAN_RD[] = {
46+
{NC , NC , 0}
47+
};
48+
49+
50+
/************DAC***************/
51+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_DAC[] = {
52+
{NC , NC , 0}
53+
};
54+
55+
/************I2C***************/
56+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_I2C_SDA[] = {
57+
{P0_13, I2C_0, 1},
58+
{P1_21, I2C_1, 5},
59+
{NC , NC , 0}
60+
};
61+
62+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_I2C_SCL[] = {
63+
{P0_14, I2C_0, 1},
64+
{P1_20, I2C_1, 5},
65+
{NC , NC , 0}
66+
};
67+
68+
/************UART***************/
69+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_UART_TX[] = {
70+
{P0_30, UART_0, 1},
71+
{P1_6, UART_0, 1},
72+
{P0_27, UART_1, 1},
73+
{NC , NC , 0}
74+
};
75+
76+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_UART_RX[] = {
77+
{P0_29, UART_0, 1},
78+
{P1_5, UART_0, 1},
79+
{P1_24, UART_1, 1},
80+
{NC , NC , 0}
81+
};
82+
83+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_UART_CTS[] = {
84+
{P1_8, UART_0, 1},
85+
{P1_26, UART_1, 1},
86+
{NC , NC , 0}
87+
};
88+
89+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_UART_RTS[] = {
90+
{P1_7, UART_0, 1},
91+
{P1_27, UART_1, 1},
92+
{NC , NC , 0}
93+
};
94+
95+
/************SPI***************/
96+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_SPI_SCLK[] = {
97+
{P0_6, SPI_0, 1},
98+
{P0_21, SPI_1, 7},
99+
{P1_2, SPI_2, 6},
100+
{NC , NC , 0}
101+
};
102+
103+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_SPI_MOSI[] = {
104+
{P0_3, SPI_0, 1},
105+
{P0_20, SPI_1, 7},
106+
{P0_26, SPI_2, 9},
107+
{NC , NC , 0}
108+
};
109+
110+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_SPI_MISO[] = {
111+
{P0_2, SPI_0, 1},
112+
{P0_19, SPI_1, 7},
113+
{P1_3, SPI_2, 6},
114+
{NC , NC , 0}
115+
};
116+
117+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_SPI_SSEL[] = {
118+
{P0_4, SPI_0, 8},
119+
{P1_20, SPI_1, ((1 << SSELNUM_SHIFT) | 1)},
120+
{P1_1, SPI_2, ((1 << SSELNUM_SHIFT) | 5)},
121+
{NC , NC , 0}
122+
};
123+
124+
/************PWM***************/
125+
MSTD_CONSTEXPR_OBJ_11 PinMap PinMap_PWM[] = {
126+
{NC , NC , 0}
127+
};
128+
129+
130+
#define PINMAP_ANALOGIN PinMap_ADC
131+
#define PINMAP_ANALOGOUT PinMap_DAC
132+
#define PINMAP_I2C_SDA PinMap_I2C_SDA
133+
#define PINMAP_I2C_SCL PinMap_I2C_SCL
134+
#define PINMAP_UART_TX PinMap_UART_TX
135+
#define PINMAP_UART_RX PinMap_UART_RX
136+
#define PINMAP_UART_CTS PinMap_UART_CTS
137+
#define PINMAP_UART_RTS PinMap_UART_RTS
138+
#define PINMAP_SPI_SCLK PinMap_SPI_SCLK
139+
#define PINMAP_SPI_MOSI PinMap_SPI_MOSI
140+
#define PINMAP_SPI_MISO PinMap_SPI_MISO
141+
#define PINMAP_SPI_SSEL PinMap_SPI_SSEL
142+
#define PINMAP_PWM PinMap_PWM
143+
#define PINMAP_CAN_TD PinMap_CAN_TD
144+
#define PINMAP_CAN_RD PinMap_CAN_RD
145+
146+
#endif
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* mbed Microcontroller Library
2+
* Copyright (c) 2020 ARM Limited
3+
* SPDX-License-Identifier: Apache-2.0
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
18+
#include "PeripheralPins.h"
19+
#include "PeripheralPinMaps.h"

0 commit comments

Comments
 (0)